Spaces:
Sleeping
Sleeping
UPDATE: trainChatbot
Browse files
app.py
CHANGED
@@ -264,7 +264,7 @@ async def loadPDF(vectorstore: str, pdf: UploadFile = File(...)):
|
|
264 |
"output": text,
|
265 |
"source": source
|
266 |
}
|
267 |
-
numTokens = len(" ".join([text[x] for x in text]).translate(str.maketrans('', '', string.punctuation)).split(" "))
|
268 |
dct = json.dumps(dct, indent=1).encode("utf-8")
|
269 |
fileName = createDataSourceName(sourceName=source)
|
270 |
response = supabase.storage.from_("ConversAI").upload(file=dct, path=f"{fileName}_data.json")
|
@@ -295,12 +295,14 @@ async def loadImagePDF(vectorstore: str, pdf: UploadFile = File(...)):
|
|
295 |
}
|
296 |
dct = json.dumps(dct, indent=1).encode("utf-8")
|
297 |
fileName = createDataSourceName(sourceName=source)
|
|
|
298 |
response = supabase.storage.from_("ConversAI").upload(file=dct, path=f"{fileName}_data.json")
|
299 |
response = (
|
300 |
supabase.table("ConversAI_ChatbotDataSources")
|
301 |
.insert({"username": username,
|
302 |
"chatbotName": chatbotName,
|
303 |
"dataSourceName": fileName,
|
|
|
304 |
"sourceEndpoint": "/loadImagePDF",
|
305 |
"sourceContentURL": os.path.join(os.environ["SUPABASE_PUBLIC_BASE_URL"], f"{fileName}_data.json")})
|
306 |
.execute()
|
@@ -319,10 +321,12 @@ class AddText(BaseModel):
|
|
319 |
async def loadText(addTextConfig: AddText):
|
320 |
vectorstore, text = addTextConfig.vectorstore, addTextConfig.text
|
321 |
username, chatbotName = vectorstore.split("$")[1], vectorstore.split("$")[2]
|
|
|
322 |
dct = {
|
323 |
-
"output":
|
324 |
"source": "Text"
|
325 |
}
|
|
|
326 |
dct = json.dumps(dct, indent=1).encode("utf-8")
|
327 |
fileName = createDataSourceName(sourceName="Text")
|
328 |
response = supabase.storage.from_("ConversAI").upload(file=dct, path=f"{fileName}_data.json")
|
@@ -331,6 +335,7 @@ async def loadText(addTextConfig: AddText):
|
|
331 |
.insert({"username": username,
|
332 |
"chatbotName": chatbotName,
|
333 |
"dataSourceName": fileName,
|
|
|
334 |
"sourceEndpoint": "/loadText",
|
335 |
"sourceContentURL": os.path.join(os.environ["SUPABASE_PUBLIC_BASE_URL"], f"{fileName}_data.json")})
|
336 |
.execute()
|
@@ -380,6 +385,7 @@ async def loadWebURLs(loadWebsite: LoadWebsite):
|
|
380 |
"output": text,
|
381 |
"source": source
|
382 |
}
|
|
|
383 |
dct = json.dumps(dct, indent=1).encode("utf-8")
|
384 |
fileName = createDataSourceName(sourceName=source)
|
385 |
response = supabase.storage.from_("ConversAI").upload(file=dct, path=f"{fileName}_data.json")
|
@@ -388,6 +394,7 @@ async def loadWebURLs(loadWebsite: LoadWebsite):
|
|
388 |
.insert({"username": username,
|
389 |
"chatbotName": chatbotName,
|
390 |
"dataSourceName": fileName,
|
|
|
391 |
"sourceEndpoint": "/loadWebURLs",
|
392 |
"sourceContentURL": os.path.join(os.environ["SUPABASE_PUBLIC_BASE_URL"], f"{fileName}_data.json")})
|
393 |
.execute()
|
@@ -458,6 +465,7 @@ async def loadYoutubeTranscript(ytTranscript: YtTranscript):
|
|
458 |
"output": text,
|
459 |
"source": "www.youtube.com"
|
460 |
}
|
|
|
461 |
dct = json.dumps(dct, indent=1).encode("utf-8")
|
462 |
fileName = createDataSourceName(sourceName="youtube")
|
463 |
response = supabase.storage.from_("ConversAI").upload(file=dct, path=f"{fileName}_data.json")
|
@@ -466,6 +474,7 @@ async def loadYoutubeTranscript(ytTranscript: YtTranscript):
|
|
466 |
.insert({"username": username,
|
467 |
"chatbotName": chatbotName,
|
468 |
"dataSourceName": fileName,
|
|
|
469 |
"sourceEndpoint": "/getYoutubeTranscript",
|
470 |
"sourceContentURL": os.path.join(os.environ["SUPABASE_PUBLIC_BASE_URL"], f"{fileName}_data.json")})
|
471 |
.execute()
|
|
|
264 |
"output": text,
|
265 |
"source": source
|
266 |
}
|
267 |
+
numTokens = len(" ".join([base64.b64decode(text[x].encode("utf-8")).decode("utf-8") for x in text]).translate(str.maketrans('', '', string.punctuation)).split(" "))
|
268 |
dct = json.dumps(dct, indent=1).encode("utf-8")
|
269 |
fileName = createDataSourceName(sourceName=source)
|
270 |
response = supabase.storage.from_("ConversAI").upload(file=dct, path=f"{fileName}_data.json")
|
|
|
295 |
}
|
296 |
dct = json.dumps(dct, indent=1).encode("utf-8")
|
297 |
fileName = createDataSourceName(sourceName=source)
|
298 |
+
numTokens = len(" ".join([base64.b64decode(text[x].encode("utf-8")).decode("utf-8") for x in text]).translate(str.maketrans('', '', string.punctuation)).split(" "))
|
299 |
response = supabase.storage.from_("ConversAI").upload(file=dct, path=f"{fileName}_data.json")
|
300 |
response = (
|
301 |
supabase.table("ConversAI_ChatbotDataSources")
|
302 |
.insert({"username": username,
|
303 |
"chatbotName": chatbotName,
|
304 |
"dataSourceName": fileName,
|
305 |
+
"numTokens": numTokens,
|
306 |
"sourceEndpoint": "/loadImagePDF",
|
307 |
"sourceContentURL": os.path.join(os.environ["SUPABASE_PUBLIC_BASE_URL"], f"{fileName}_data.json")})
|
308 |
.execute()
|
|
|
321 |
async def loadText(addTextConfig: AddText):
|
322 |
vectorstore, text = addTextConfig.vectorstore, addTextConfig.text
|
323 |
username, chatbotName = vectorstore.split("$")[1], vectorstore.split("$")[2]
|
324 |
+
text = cleanText(text = text)
|
325 |
dct = {
|
326 |
+
"output": text,
|
327 |
"source": "Text"
|
328 |
}
|
329 |
+
numTokens = len(" ".join([base64.b64decode(text[x].encode("utf-8")).decode("utf-8") for x in text]).translate(str.maketrans('', '', string.punctuation)).split(" "))
|
330 |
dct = json.dumps(dct, indent=1).encode("utf-8")
|
331 |
fileName = createDataSourceName(sourceName="Text")
|
332 |
response = supabase.storage.from_("ConversAI").upload(file=dct, path=f"{fileName}_data.json")
|
|
|
335 |
.insert({"username": username,
|
336 |
"chatbotName": chatbotName,
|
337 |
"dataSourceName": fileName,
|
338 |
+
"numTokens": numTokens,
|
339 |
"sourceEndpoint": "/loadText",
|
340 |
"sourceContentURL": os.path.join(os.environ["SUPABASE_PUBLIC_BASE_URL"], f"{fileName}_data.json")})
|
341 |
.execute()
|
|
|
385 |
"output": text,
|
386 |
"source": source
|
387 |
}
|
388 |
+
numTokens = len(" ".join([base64.b64decode(text[x].encode("utf-8")).decode("utf-8") for x in text]).translate(str.maketrans('', '', string.punctuation)).split(" "))
|
389 |
dct = json.dumps(dct, indent=1).encode("utf-8")
|
390 |
fileName = createDataSourceName(sourceName=source)
|
391 |
response = supabase.storage.from_("ConversAI").upload(file=dct, path=f"{fileName}_data.json")
|
|
|
394 |
.insert({"username": username,
|
395 |
"chatbotName": chatbotName,
|
396 |
"dataSourceName": fileName,
|
397 |
+
"numTokens": numTokens,
|
398 |
"sourceEndpoint": "/loadWebURLs",
|
399 |
"sourceContentURL": os.path.join(os.environ["SUPABASE_PUBLIC_BASE_URL"], f"{fileName}_data.json")})
|
400 |
.execute()
|
|
|
465 |
"output": text,
|
466 |
"source": "www.youtube.com"
|
467 |
}
|
468 |
+
numTokens = len(" ".join([base64.b64decode(text[x].encode("utf-8")).decode("utf-8") for x in text]).translate(str.maketrans('', '', string.punctuation)).split(" "))
|
469 |
dct = json.dumps(dct, indent=1).encode("utf-8")
|
470 |
fileName = createDataSourceName(sourceName="youtube")
|
471 |
response = supabase.storage.from_("ConversAI").upload(file=dct, path=f"{fileName}_data.json")
|
|
|
474 |
.insert({"username": username,
|
475 |
"chatbotName": chatbotName,
|
476 |
"dataSourceName": fileName,
|
477 |
+
"numTokens": numTokens,
|
478 |
"sourceEndpoint": "/getYoutubeTranscript",
|
479 |
"sourceContentURL": os.path.join(os.environ["SUPABASE_PUBLIC_BASE_URL"], f"{fileName}_data.json")})
|
480 |
.execute()
|
temp.json
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"vectorstore": "convai$dot$testingEdits2",
|
3 |
-
"dataSourceName": "100-pages-001.pdf",
|
4 |
-
"sourceEndpoint": "loadPDF",
|
5 |
-
"jsonData": {
|
6 |
-
"output": {
|
7 |
-
"1": "RnJvbnQgTWF0dGVyIEZyb20gdGhlIERpcmVjdG9yIG9mIHRoZSBGb2xnZXIgU2hha2VzcGVhcmUgTGlicmFyeSBUZXh0dWFsIEludHJvZHVjdGlvbiBTeW5vcHNpcyBDaGFyYWN0ZXJzIGluIHRoZSBQbGF5IEFDVCAxIFNjZW5lIDEgU2NlbmUgMiBTY2VuZSAzIFNjZW5lIDQgU2NlbmUgNSBBQ1QgMiBTY2VuZSAxIFNjZW5lIDIgQUNUIDMgU2NlbmUgMSBTY2VuZSAyIFNjZW5lIDMgU2NlbmUgNCBBQ1QgNCBTY2VuZSAxIFNjZW5lIDIgU2NlbmUgMyBTY2VuZSA0IFNjZW5lIDUgU2NlbmUgNiBTY2VuZSA3IEFDVCA1IFNjZW5lIDEgU2NlbmUgMiBDb250ZW50cyA=",
|
8 |
-
"2": "TWljaGFlbCBXaXRtb3JlIERpcmVjdG9yIEZvbGdlciBTaGFrZXNwZWFyZSBMaWJyYXJ5IEl0IGlzIGhhcmQgdG8gaW1hZ2luZSBhIHdvcmxkIHdpdGhvdXQgU2hha2VzcGVhcmUuIFNpbmNlIHRoZWlyIGNvbXBvc2l0aW9uIGZvdXIgaHVuZHJlZCB5ZWFycyBhZ28gU2hha2VzcGVhcmXigJlzIHBsYXlzIGFuZCBwb2VtcyBoYXZlIHRyYXZlbGVkIHRoZSBnbG9iZSBpbnZpdGluZyB0aG9zZSB3aG8gc2VlIGFuZCByZWFkIGhpcyB3b3JrcyB0byBtYWtlIHRoZW0gdGhlaXIgb3duLiBSZWFkZXJzIG9mIHRoZSBOZXcgRm9sZ2VyIEVkaXRpb25zIGFyZSBwYXJ0IG9mIHRoaXMgb25nb2luZyBwcm9jZXNzIG9mIOKAnHRha2luZyB1cCBTaGFrZXNwZWFyZeKAnSBmaW5kaW5nIG91ciBvd24gdGhvdWdodHMgYW5kIGZlZWxpbmdzIGluIGxhbmd1YWdlIHRoYXQgc3RyaWtlcyB1cyBhcyBvbGQgb3IgdW51c3VhbCBhbmQgZm9yIHRoYXQgdmVyeSByZWFzb24gbmV3LiBXZSBzdGlsbCBzdHJ1Z2dsZSB0byBrZWVwIHVwIHdpdGggYSB3cml0ZXIgd2hvIGNvdWxkIHRoaW5rIGEgbWlsZSBhIG1pbnV0ZSB3aG9zZSB3b3JkcyBwYWludCBwaWN0dXJlcyB0aGF0IHNoaWZ0IGxpa2UgY2xvdWRzLiBUaGVzZSBleHBlcnRseSBlZGl0ZWQgdGV4dHMgYXJlIHByZXNlbnRlZCB0byB0aGUgcHVibGljIGFzIGEgcmVzb3VyY2UgZm9yIHN0dWR5IGFydGlzdGljIGFkYXB0YXRpb24gYW5kIGVuam95bWVudC4gQnkgbWFraW5nIHRoZSBjbGFzc2ljIHRleHRzIG9mIHRoZSBOZXcgRm9sZ2VyIEVkaXRpb25zIGF2YWlsYWJsZSBpbiBlbGVjdHJvbmljIGZvcm0gYXMgRm9sZ2VyIERpZ2l0YWwgVGV4dHMgd2UgcGxhY2UgYSB0cnVzdGVkIHJlc291cmNlIGluIHRoZSBoYW5kcyBvZiBhbnlvbmUgd2hvIHdhbnRzIHRoZW0uIFRoZSBOZXcgRm9sZ2VyIEVkaXRpb25zIG9mIFNoYWtlc3BlYXJl4oCZcyBwbGF5cyB3aGljaCBhcmUgdGhlIGJhc2lzIGZvciB0aGUgdGV4dHMgcmVhbGl6ZWQgaGVyZSBpbiBkaWdpdGFsIGZvcm0gYXJlIHNwZWNpYWwgYmVjYXVzZSBvZiB0aGVpciBvcmlnaW4uIFRoZSBGb2xnZXIgU2hha2VzcGVhcmUgTGlicmFyeSBpbiBXYXNoaW5ndG9uIERDIGlzIHRoZSBzaW5nbGUgZ3JlYXRlc3QgZG9jdW1lbnRhcnkgc291cmNlIG9mIFNoYWtlc3BlYXJl4oCZcyB3b3Jrcy4gQW4gdW5wYXJhbGxlbGVkIGNvbGxlY3Rpb24gb2YgZWFybHkgbW9kZXJuIGJvb2tzIG1hbnVzY3JpcHRzIGFuZCBhcnR3b3JrIGNvbm5lY3RlZCB0byBTaGFrZXNwZWFyZSB0aGUgRm9sZ2Vy4oCZcyBob2xkaW5ncyBoYXZlIGJlZW4gY29uc3VsdGVkIGV4dGVuc2l2ZWx5IGluIHRoZSBwcmVwYXJhdGlvbiBvZiB0aGVzZSB0ZXh0cy4gVGhlIEVkaXRpb25zIGFsc28gcmVmbGVjdCB0aGUgZXhwZXJ0aXNlIGdhaW5lZCB0aHJvdWdoIHRoZSByZWd1bGFyIHBlcmZvcm1hbmNlIG9mIFNoYWtlc3BlYXJl4oCZcyB3b3JrcyBpbiB0aGUgRm9sZ2Vy4oCZcyBFbGl6YWJldGhhbiBUaGVhdGVyLiBJIHdhbnQgdG8gZXhwcmVzcyBteSBkZWVwIHRoYW5rcyB0byBlZGl0b3JzIEJhcmJhcmEgTW93YXQgYW5kIFBhdWwgV2Vyc3RpbmUgZm9yIGNyZWF0aW5nIHRoZXNlIGluZGlzcGVuc2FibGUgZWRpdGlvbnMgb2YgU2hha2VzcGVhcmXigJlzIHdvcmtzIHdoaWNoIGluY29ycG9yYXRlIHRoZSBiZXN0IG9mIHRleHR1YWwgc2Nob2xhcnNoaXAgd2l0aCBhIHJpY2huZXNzIG9mIGNvbW1lbnRhcnkgdGhhdCBpcyBib3RoIGluc3BpcmVkIGFuZCBlbmdhZ2luZy4gUmVhZGVycyB3aG8gd2FudCB0byBrbm93IG1vcmUgYWJvdXQgU2hha2VzcGVhcmUgYW5kIGhpcyBwbGF5cyBjYW4gZm9sbG93IHRoZSBwYXRocyB0aGVzZSBkaXN0aW5ndWlzaGVkIHNjaG9sYXJzIGhhdmUgdHJlYWQgYnkgdmlzaXRpbmcgdGhlIEZvbGdlciBlaXRoZXIgaW5wZXJzb24gb3Igb25saW5lIHdoZXJlIGEgcmFuZ2Ugb2YgcGh5c2ljYWwgYW5kIGRpZ2l0YWwgcmVzb3VyY2VzIGV4aXN0cyB0byBzdXBwbGVtZW50IHRoZSBtYXRlcmlhbCBpbiB0aGVzZSB0ZXh0cy4gSSBjb21tZW5kIHRvIHlvdSB0aGVzZSB3b3JkcyBhbmQgaG9wZSB0aGF0IHRoZXkgaW5zcGlyZS4gRnJvbSB0aGUgRGlyZWN0b3Igb2YgdGhlIEZvbGdlciBTaGFrZXNwZWFyZSBMaWJyYXJ5IA==",
|
9 |
-
"3": "VW50aWwgbm93IHdpdGggdGhlIHJlbGVhc2Ugb2YgdGhlIEZvbGdlciBEaWdpdGFsIFRleHRzIHJlYWRlcnMgaW4gc2VhcmNoIG9mIGEgZnJlZSBvbmxpbmUgdGV4dCBvZiBTaGFrZXNwZWFyZeKAmXMgcGxheXMgaGFkIHRvIGJlIGNvbnRlbnQgcHJpbWFyaWx5IHdpdGggdXNpbmcgdGhlIE1vYnnihKIgVGV4dCB3aGljaCByZXByb2R1Y2VzIGEgbGF0ZSBuaW5ldGVlbnRoIGNlbnR1cnkgdmVyc2lvbiBvZiB0aGUgcGxheXMuIFdoYXQgaXMgdGhlIGRpZmZlcmVuY2UgTWFueSBvcmRpbmFyeSByZWFkZXJzIGFzc3VtZSB0aGF0IHRoZXJlIGlzIGEgc2luZ2xlIHRleHQgZm9yIHRoZSBwbGF5cyB3aGF0IFNoYWtlc3BlYXJlIHdyb3RlLiBCdXQgU2hha2VzcGVhcmXigJlzIHBsYXlzIHdlcmUgbm90IHB1Ymxpc2hlZCB0aGUgd2F5IG1vZGVybiBub3ZlbHMgb3IgcGxheXMgYXJlIHB1Ymxpc2hlZCB0b2RheSBhcyBhIHNpbmdsZSBhdXRob3JpdGF0aXZlIHRleHQuIEluIHNvbWUgY2FzZXMgdGhlIHBsYXlzIGhhdmUgY29tZSBkb3duIHRvIHVzIGluIG11bHRpcGxlIHB1Ymxpc2hlZCB2ZXJzaW9ucyByZXByZXNlbnRlZCBieSB2YXJpb3VzIFF1YXJ0b3MgUXEgYW5kIGJ5IHRoZSBncmVhdCBjb2xsZWN0aW9uIHB1dCB0b2dldGhlciBieSBoaXMgY29sbGVhZ3VlcyBpbiAxNjIzIGNhbGxlZCB0aGUgRmlyc3QgRm9saW8gRi4gVGhlcmUgYXJlIGZvciBleGFtcGxlIHRocmVlIHZlcnkgZGlmZmVyZW50IHZlcnNpb25zIG9mIEhhbWxldCB0d28gb2YgS2luZyBMZWFyIEhlbnJ5IFYgUm9tZW8gYW5kIEp1bGlldCBhbmQgb3RoZXJzLiBFZGl0b3JzIGNob29zZSB3aGljaCB2ZXJzaW9uIHRvIHVzZSBhcyB0aGVpciBiYXNlIHRleHQgYW5kIHRoZW4gYW1lbmQgdGhhdCB0ZXh0IHdpdGggd29yZHMgbGluZXMgb3Igc3BlZWNoIHByZWZpeGVzIGZyb20gdGhlIG90aGVyIHZlcnNpb25zIHRoYXQgaW4gdGhlaXIganVkZ21lbnQgbWFrZSBmb3IgYSBiZXR0ZXIgb3IgbW9yZSBhY2N1cmF0ZSB0ZXh0LiBPdGhlciBlZGl0b3JpYWwgZGVjaXNpb25zIGludm9sdmUgY2hvaWNlcyBhYm91dCB3aGV0aGVyIGFuIHVuZmFtaWxpYXIgd29yZCBjb3VsZCBiZSB1bmRlcnN0b29kIGluIGxpZ2h0IG9mIG90aGVyIHdyaXRpbmdzIG9mIHRoZSBwZXJpb2Qgb3Igd2hldGhlciBpdCBzaG91bGQgYmUgY2hhbmdlZCBkZWNpc2lvbnMgYWJvdXQgd29yZHMgdGhhdCBtYWRlIGl0IGludG8gU2hha2VzcGVhcmXigJlzIHRleHQgYnkgYWNjaWRlbnQgdGhyb3VnaCBmb3VyIGh1bmRyZWQgeWVhcnMgb2YgcHJpbnRpbmdzIGFuZCBtaXNwcmludGluZyBhbmQgZXZlbiBkZWNpc2lvbnMgYmFzZWQgb24gY3VsdHVyYWwgcHJlZmVyZW5jZSBhbmQgdGFzdGUuIFdoZW4gdGhlIE1vYnnihKIgVGV4dCB3YXMgY3JlYXRlZCBmb3IgZXhhbXBsZSBpdCB3YXMgZGVlbWVkIOKAnGltcHJvcGVy4oCdIGFuZCDigJxpbmRlY2VudOKAnSBmb3IgTWlyYW5kYSB0byBjaGFzdGlzZSBDYWxpYmFuIGZvciBoYXZpbmcgYXR0ZW1wdGVkIHRvIHJhcGUgaGVyLiBTZWUgVGhlIFRlbXBlc3QgMS4yIOKAnEFiaG9ycmVkIHNsYXZlV2hpY2ggYW55IHByaW50IG9mIGdvb2RuZXNzIHdpbHQgbm90IHRha2VCZWluZyBjYXBhYmxlIG9mIGFsbCBpbGwgSSBwaXRpZWQgdGhlZeKApuKAnS4gQWxsIFNoYWtlc3BlYXJlIGVkaXRvcnMgYXQgdGhlIHRpbWUgdG9vayB0aGUgc3BlZWNoIGF3YXkgZnJvbSBoZXIgYW5kIGdhdmUgaXQgdG8gaGVyIGZhdGhlciBQcm9zcGVyby4gVGhlIGVkaXRvcnMgb2YgdGhlIE1vYnnihKIgU2hha2VzcGVhcmUgcHJvZHVjZWQgdGhlaXIgdGV4dCBsb25nIGJlZm9yZSBzY2hvbGFycyBmdWxseSB1bmRlcnN0b29kIHRoZSBwcm9wZXIgZ3JvdW5kcyBvbiB3aGljaCB0byBtYWtlIHRoZSB0aG91c2FuZHMgb2YgZGVjaXNpb25zIHRoYXQgU2hha2VzcGVhcmUgZWRpdG9ycyBmYWNlLiBUaGUgRm9sZ2VyIExpYnJhcnkgU2hha2VzcGVhcmUgRWRpdGlvbnMgb24gd2hpY2ggdGhlIEZvbGdlciBEaWdpdGFsIFRleHRzIGRlcGVuZCBtYWtlIHRoaXMgZWRpdG9yaWFsIHByb2Nlc3MgYXMgbmVhcmx5IHRyYW5zcGFyZW50IGFzIGlzIHBvc3NpYmxlIGluIGNvbnRyYXN0IHRvIG9sZGVyIHRleHRzIGxpa2UgdGhlIE1vYnnihKIgd2hpY2ggaGlkZSBlZGl0b3JpYWwgaW50ZXJ2ZW50aW9ucy4gVGhlIHJlYWRlciBvZiB0aGUgRm9sZ2VyIFNoYWtlc3BlYXJlIGtub3dzIHdoZXJlIHRoZSB0ZXh0IGhhcyBiZWVuIGFsdGVyZWQgYmVjYXVzZSBlZGl0b3JpYWwgaW50ZXJ2ZW50aW9ucyBhcmUgc2lnbmFsZWQgYnkgc3F1YXJlIGJyYWNrZXRzIGZvciBleGFtcGxlIGZyb20gT3RoZWxsbyDigJwgSWYgc2hlIGluIFRleHR1YWwgSW50cm9kdWN0aW9uIEJ5IEJhcmJhcmEgTW93YXQgYW5kIFBhdWwgV2Vyc3RpbmUg",
|
10 |
-
"4": "Y2hhaW5zIG9mIG1hZ2ljIHdlcmUgbm90IGJvdW5kIOKAnSBoYWxmc3F1YXJlIGJyYWNrZXRzIGZvciBleGFtcGxlIGZyb20gSGVucnkgViDigJxXaXRoIGJsb29kICBhbmQgc3dvcmQgYW5kIGZpcmUgdG8gd2luIHlvdXIgcmlnaHTigJ0gb3IgYW5nbGUgYnJhY2tldHMgZm9yIGV4YW1wbGUgZnJvbSBIYW1sZXQg4oCcTyBmYXJld2VsbCBob25lc3Qgc29sZGllci4gIFdobyBoYXRoIHJlbGlldmVkeW914oCdLiBBdCBhbnkgcG9pbnQgaW4gdGhlIHRleHQgeW91IGNhbiBob3ZlciB5b3VyIGN1cnNvciBvdmVyIGEgYnJhY2tldCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gQmVjYXVzZSB0aGUgRm9sZ2VyIERpZ2l0YWwgVGV4dHMgYXJlIGVkaXRlZCBpbiBhY2NvcmQgd2l0aCB0d2VudHlmaXJzdCBjZW50dXJ5IGtub3dsZWRnZSBhYm91dCBTaGFrZXNwZWFyZeKAmXMgdGV4dHMgdGhlIEZvbGdlciBoZXJlIHByb3ZpZGVzIHRoZW0gdG8gcmVhZGVycyBzY2hvbGFycyB0ZWFjaGVycyBhY3RvcnMgZGlyZWN0b3JzIGFuZCBzdHVkZW50cyBmcmVlIG9mIGNoYXJnZSBjb25maWRlbnQgb2YgdGhlaXIgcXVhbGl0eSBhcyB0ZXh0cyBvZiB0aGUgcGxheXMgYW5kIHBsZWFzZWQgdG8gYmUgYWJsZSB0byBtYWtlIHRoaXMgY29udHJpYnV0aW9uIHRvIHRoZSBzdHVkeSBhbmQgZW5qb3ltZW50IG9mIFNoYWtlc3BlYXJlLiA=",
|
11 |
-
"5": "RXZlbnRzIGJlZm9yZSB0aGUgc3RhcnQgb2YgSGFtbGV0IHNldCB0aGUgc3RhZ2UgZm9yIHRyYWdlZHkuIFdoZW4gdGhlIGtpbmcgb2YgRGVubWFyayBQcmluY2UgSGFtbGV04oCZcyBmYXRoZXIgc3VkZGVubHkgZGllcyBIYW1sZXTigJlzIG1vdGhlciBHZXJ0cnVkZSBtYXJyaWVzIGhpcyB1bmNsZSBDbGF1ZGl1cyB3aG8gYmVjb21lcyB0aGUgbmV3IGtpbmcuIEEgc3Bpcml0IHdobyBjbGFpbXMgdG8gYmUgdGhlIGdob3N0IG9mIEhhbWxldOKAmXMgZmF0aGVyIGRlc2NyaWJlcyBoaXMgbXVyZGVyIGF0IHRoZSBoYW5kcyBvZiBDbGF1ZGl1cyBhbmQgZGVtYW5kcyB0aGF0IEhhbWxldCBhdmVuZ2UgdGhlIGtpbGxpbmcuIFdoZW4gdGhlIGNvdW5jaWxvciBQb2xvbml1cyBsZWFybnMgZnJvbSBoaXMgZGF1Z2h0ZXIgT3BoZWxpYSB0aGF0IEhhbWxldCBoYXMgdmlzaXRlZCBoZXIgaW4gYW4gYXBwYXJlbnRseSBkaXN0cmFjdGVkIHN0YXRlIFBvbG9uaXVzIGF0dHJpYnV0ZXMgdGhlIHByaW5jZeKAmXMgY29uZGl0aW9uIHRvIGxvdmVzaWNrbmVzcyBhbmQgaGUgc2V0cyBhIHRyYXAgZm9yIEhhbWxldCB1c2luZyBPcGhlbGlhIGFzIGJhaXQuIFRvIGNvbmZpcm0gQ2xhdWRpdXPigJlzIGd1aWx0IEhhbWxldCBhcnJhbmdlcyBmb3IgYSBwbGF5IHRoYXQgbWltaWNzIHRoZSBtdXJkZXIgQ2xhdWRpdXPigJlzIHJlYWN0aW9uIGlzIHRoYXQgb2YgYSBndWlsdHkgbWFuLiBIYW1sZXQgbm93IGZyZWUgdG8gYWN0IG1pc3Rha2VubHkga2lsbHMgUG9sb25pdXMgdGhpbmtpbmcgaGUgaXMgQ2xhdWRpdXMuIENsYXVkaXVzIHNlbmRzIEhhbWxldCBhd2F5IGFzIHBhcnQgb2YgYSBkZWFkbHkgcGxvdC4gQWZ0ZXIgUG9sb25pdXPigJlzIGRlYXRoIE9waGVsaWEgZ29lcyBtYWQgYW5kIGxhdGVyIGRyb3ducy4gSGFtbGV0IHdobyBoYXMgcmV0dXJuZWQgc2FmZWx5IHRvIGNvbmZyb250IHRoZSBraW5nIGFncmVlcyB0byBhIGZlbmNpbmcgbWF0Y2ggd2l0aCBPcGhlbGlh4oCZcyBicm90aGVyIExhZXJ0ZXMgd2hvIHNlY3JldGx5IHBvaXNvbnMgaGlzIG93biByYXBpZXIuIEF0IHRoZSBtYXRjaCBDbGF1ZGl1cyBwcmVwYXJlcyBwb2lzb25lZCB3aW5lIGZvciBIYW1sZXQgd2hpY2ggR2VydHJ1ZGUgdW5rbm93aW5nbHkgZHJpbmtzIGFzIHNoZSBkaWVzIHNoZSBhY2N1c2VzIENsYXVkaXVzIHdob20gSGFtbGV0IGtpbGxzLiBUaGVuIGZpcnN0IExhZXJ0ZXMgYW5kIHRoZW4gSGFtbGV0IGRpZSBib3RoIHZpY3RpbXMgb2YgTGFlcnRlc+KAmSByYXBpZXIuIFN5bm9wc2lzIA=="
|
12 |
-
},
|
13 |
-
"source": "100-pages-001.pdf_data.json"
|
14 |
-
}
|
15 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|