Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -10,6 +10,7 @@ from nest_asyncio import apply
|
|
10 |
from os import environ
|
11 |
from pickle import load as pickle_load
|
12 |
from bs4 import BeautifulSoup
|
|
|
13 |
import flask
|
14 |
class AIBook:
|
15 |
embed_model:HuggingFaceInferenceAPIEmbedding
|
@@ -26,20 +27,10 @@ class AIBook:
|
|
26 |
self.retriever = self.index.as_retriever(similarity_top_k=srcnum,vector_store_query_mode="default")
|
27 |
def retrieve(self,query:str):
|
28 |
return self.retriever.retrieve(query)
|
29 |
-
|
30 |
-
@classmethod
|
31 |
-
def nodes_to_guj(cls,nodes:list[TextNode])->list[str]:
|
32 |
-
return [node.node.relationships[NodeRelationship("1")].metadata["maintext"] for node in nodes]
|
33 |
-
@classmethod
|
34 |
-
def nodes_to_eng(cls,nodes:list[TextNode])->list[str]:
|
35 |
-
return [node.node.text for node in nodes]
|
36 |
-
@classmethod
|
37 |
-
def nodes_to_page_with_bookname(cls,nodes:list[TextNode])->list[Dict]:
|
38 |
-
return [{"page":int(node.node.relationships[NodeRelationship("1")].metadata["page"]),"bookname":node.node.relationships[NodeRelationship("1")].metadata["book"]} for node in nodes]
|
39 |
@classmethod
|
40 |
def translate_to_eng(cls,text:str)->str:
|
41 |
return "".join([i[0] for i in reqget(f"https://translate.googleapis.com/translate_a/single?client=gtx&sl=gu&tl=en&dt=t&q={text}").json()[0]])
|
42 |
-
|
43 |
apply()
|
44 |
app = flask.Flask(__name__)
|
45 |
book = AIBook()
|
@@ -47,10 +38,10 @@ book = AIBook()
|
|
47 |
def function():
|
48 |
question = flask.request.args.get("question")
|
49 |
if question is None:
|
50 |
-
return """
|
51 |
if question == "":
|
52 |
return ""
|
53 |
-
return
|
54 |
|
55 |
@app.route("/changeToken")
|
56 |
def function2():
|
@@ -60,34 +51,9 @@ def function2():
|
|
60 |
def function3():
|
61 |
book.changesrcnum(int(flask.request.args.get("srcnum")))
|
62 |
return "srcnum changed"
|
63 |
-
@app.route(
|
64 |
-
def
|
65 |
-
|
66 |
-
return "Error"
|
67 |
-
file = flask.request.files['file']
|
68 |
-
if file.filename.endswith(".book"):
|
69 |
-
book.index.insert(pickle_load(file))
|
70 |
-
return "inserted" + file.filename
|
71 |
-
else:
|
72 |
-
return "not inserted because file is not a book"
|
73 |
-
@app.route("/fulldetails")
|
74 |
-
def function5():
|
75 |
-
question = flask.request.args.get("question")
|
76 |
-
if question:
|
77 |
-
return flask.jsonify([{"text":i.get_text(),"score":i.get_score(),"metadata":i.node.relationships[NodeRelationship("1")].metadata} for i in book.retrieve(AIBook.translate_to_eng(question))])
|
78 |
-
else:
|
79 |
-
return "please provide a question parameter https://shethjenil-apiofbookai.hf.space/fulldetails?question=પ્રભુ છે કે નહિ"
|
80 |
-
@app.route("/getbookimage/<bookid>/<page>")
|
81 |
-
def function6(bookid,page):
|
82 |
-
# response = reqget(BeautifulSoup(reqget(f"https://jainqq.org/explore/{bookid}/{page}").content, "html.parser").find("img",class_="img-fluid").get("src"))
|
83 |
-
# return flask.send_file(BytesIO(response.content), mimetype=response.headers['Content-Type'])
|
84 |
-
return flask.redirect(BeautifulSoup(reqget(f"https://jainqq.org/explore/{bookid}/{page}").content, "html.parser").find("img",class_="img-fluid").get("src"))
|
85 |
-
@app.route("/question_to_img")
|
86 |
-
def function7():
|
87 |
-
question = flask.request.args.get("question")
|
88 |
-
if question:
|
89 |
-
meta = book.retrieve(AIBook.translate_to_eng(question))[0].node.relationships[NodeRelationship("1")].metadata
|
90 |
-
return flask.redirect(BeautifulSoup(reqget(f"https://jainqq.org/explore/{meta['bookid']}/{meta['page']}").content, "html.parser").find("img",class_="img-fluid").get("src"))
|
91 |
|
92 |
if __name__ == '__main__':
|
93 |
-
app.run("0.0.0.0",7860)
|
|
|
10 |
from os import environ
|
11 |
from pickle import load as pickle_load
|
12 |
from bs4 import BeautifulSoup
|
13 |
+
import json
|
14 |
import flask
|
15 |
class AIBook:
|
16 |
embed_model:HuggingFaceInferenceAPIEmbedding
|
|
|
27 |
self.retriever = self.index.as_retriever(similarity_top_k=srcnum,vector_store_query_mode="default")
|
28 |
def retrieve(self,query:str):
|
29 |
return self.retriever.retrieve(query)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
@classmethod
|
31 |
def translate_to_eng(cls,text:str)->str:
|
32 |
return "".join([i[0] for i in reqget(f"https://translate.googleapis.com/translate_a/single?client=gtx&sl=gu&tl=en&dt=t&q={text}").json()[0]])
|
33 |
+
|
34 |
apply()
|
35 |
app = flask.Flask(__name__)
|
36 |
book = AIBook()
|
|
|
38 |
def function():
|
39 |
question = flask.request.args.get("question")
|
40 |
if question is None:
|
41 |
+
return """?question=hi"""
|
42 |
if question == "":
|
43 |
return ""
|
44 |
+
return flask.redirect(f"/file/images/page-{str(book.retrieve(AIBook.translate_to_eng(question))[0].node.metadata['page']).zfill(3)}.png")
|
45 |
|
46 |
@app.route("/changeToken")
|
47 |
def function2():
|
|
|
51 |
def function3():
|
52 |
book.changesrcnum(int(flask.request.args.get("srcnum")))
|
53 |
return "srcnum changed"
|
54 |
+
@app.route('/file/<path:filename>')
|
55 |
+
def serve_image(filename):
|
56 |
+
return flask.send_from_directory(filename)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
|
58 |
if __name__ == '__main__':
|
59 |
+
app.run("0.0.0.0",7860)
|