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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|