Update app.py
Browse files
app.py
CHANGED
|
@@ -21,14 +21,11 @@ system_template = """Use the following pieces of context to answer the users que
|
|
| 21 |
If you don't know the answer, just say that you don't know, don't try to make up an answer.
|
| 22 |
ALWAYS return a "SOURCES" part in your answer.
|
| 23 |
The "SOURCES" part should be a reference to the source of the document from which you got your answer.
|
| 24 |
-
|
| 25 |
Example of your response should be:
|
| 26 |
-
|
| 27 |
```
|
| 28 |
The answer is foo
|
| 29 |
SOURCES: xyz
|
| 30 |
```
|
| 31 |
-
|
| 32 |
Begin!
|
| 33 |
----------------
|
| 34 |
{summaries}"""
|
|
@@ -47,6 +44,9 @@ async def start():
|
|
| 47 |
# path = r'assets/ChatPDFAvatar.jpg'
|
| 48 |
).send()
|
| 49 |
|
|
|
|
|
|
|
|
|
|
| 50 |
files = None
|
| 51 |
|
| 52 |
# Wait for the user to upload a file
|
|
@@ -117,21 +117,14 @@ async def start():
|
|
| 117 |
cl.user_session.set("texts", pages)
|
| 118 |
|
| 119 |
# Let the user know that the system is ready
|
| 120 |
-
msg.content
|
| 121 |
-
await msg.update()
|
| 122 |
|
| 123 |
-
cl.user_session.set('chain', chain)
|
| 124 |
|
|
|
|
| 125 |
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
cb = cl.AsyncLangchainCallbackHandler(
|
| 130 |
-
stream_final_answer=True, answer_prefix_tokens=["FINAL", "ANSWER"]
|
| 131 |
-
)
|
| 132 |
-
cb.answer_reached = True
|
| 133 |
-
res = await chain.acall(message, callbacks=[cb])
|
| 134 |
-
|
| 135 |
answer = res["answer"]
|
| 136 |
source_documents = res['source_documents']
|
| 137 |
content = [source_documents[i].page_content for i in range(len(source_documents))]
|
|
@@ -145,8 +138,5 @@ async def process_response(message):
|
|
| 145 |
else:
|
| 146 |
answer += "\n\nNo sources found"
|
| 147 |
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
await cb.final_stream.update()
|
| 151 |
-
else:
|
| 152 |
-
await cl.Message(content=answer, elements=source_elements).send()
|
|
|
|
| 21 |
If you don't know the answer, just say that you don't know, don't try to make up an answer.
|
| 22 |
ALWAYS return a "SOURCES" part in your answer.
|
| 23 |
The "SOURCES" part should be a reference to the source of the document from which you got your answer.
|
|
|
|
| 24 |
Example of your response should be:
|
|
|
|
| 25 |
```
|
| 26 |
The answer is foo
|
| 27 |
SOURCES: xyz
|
| 28 |
```
|
|
|
|
| 29 |
Begin!
|
| 30 |
----------------
|
| 31 |
{summaries}"""
|
|
|
|
| 44 |
# path = r'assets/ChatPDFAvatar.jpg'
|
| 45 |
).send()
|
| 46 |
|
| 47 |
+
|
| 48 |
+
@cl.langchain_factory(use_async=True)
|
| 49 |
+
async def init():
|
| 50 |
files = None
|
| 51 |
|
| 52 |
# Wait for the user to upload a file
|
|
|
|
| 117 |
cl.user_session.set("texts", pages)
|
| 118 |
|
| 119 |
# Let the user know that the system is ready
|
| 120 |
+
await msg.update(content=f''' "{file.name}" processed. You can now ask questions!''')
|
|
|
|
| 121 |
|
|
|
|
| 122 |
|
| 123 |
+
return chain
|
| 124 |
|
| 125 |
+
|
| 126 |
+
@cl.langchain_postprocess
|
| 127 |
+
async def process_response(res):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 128 |
answer = res["answer"]
|
| 129 |
source_documents = res['source_documents']
|
| 130 |
content = [source_documents[i].page_content for i in range(len(source_documents))]
|
|
|
|
| 138 |
else:
|
| 139 |
answer += "\n\nNo sources found"
|
| 140 |
|
| 141 |
+
await cl.Message(content=answer, elements=source_elements).send()
|
| 142 |
+
# await cl.Message(content=answer).send()
|
|
|
|
|
|
|
|
|