cmagganas commited on
Commit
c6f52c7
·
1 Parent(s): 7221a72

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -29
app.py CHANGED
@@ -199,41 +199,35 @@ def init():
199
  msg.send()
200
 
201
  @cl.on_message
202
- def main(message):
203
-
204
- # msg = cl.Message(content=f"Thinking...")
205
- # await msg.send()
206
-
207
  chain = cl.user_session.get("chain")
208
- cb = cl.LangchainCallbackHandler(
209
  stream_final_answer=False, answer_prefix_tokens=["FINAL", "ANSWER"]
210
  )
211
  cb.answer_reached = True
212
- res = chain.__call__(message, callbacks=[cb], )
213
-
214
- # print(res.keys()) # keys are "input" and "output"
215
-
216
- answer = res["output"]
217
  source_elements = []
218
- # visited_sources = set()
219
 
220
- # # Get the documents from the user session
221
- # docs = res["source_documents"]
222
- # metadatas = [doc.metadata for doc in docs]
223
- # all_sources = [m["source"] for m in metadatas]
224
 
225
- # for source in all_sources:
226
- # if source in visited_sources:
227
- # continue
228
- # visited_sources.add(source)
229
- # # Create the text element referenced in the message
230
- # source_elements.append(
231
- # cl.Text(content="https://www.imdb.com" + source, name="Review URL")
232
- # )
233
 
234
- # if source_elements:
235
- # answer += f"\nSources: {', '.join([e.content.decode('utf-8') for e in source_elements])}"
236
- # else:
237
- # answer += "\nNo sources found"
238
 
239
- cl.Message(content=answer, elements=source_elements).send()
 
199
  msg.send()
200
 
201
  @cl.on_message
202
+ async def main(message):
 
 
 
 
203
  chain = cl.user_session.get("chain")
204
+ cb = cl.AsyncLangchainCallbackHandler(
205
  stream_final_answer=False, answer_prefix_tokens=["FINAL", "ANSWER"]
206
  )
207
  cb.answer_reached = True
208
+ res = await chain.acall(message, callbacks=[cb], )
209
+
210
+ answer = res["result"]
 
 
211
  source_elements = []
212
+ visited_sources = set()
213
 
214
+ # Get the documents from the user session
215
+ docs = res["source_documents"]
216
+ metadatas = [doc.metadata for doc in docs]
217
+ all_sources = [m["source"] for m in metadatas]
218
 
219
+ for source in all_sources:
220
+ if source in visited_sources:
221
+ continue
222
+ visited_sources.add(source)
223
+ # Create the text element referenced in the message
224
+ source_elements.append(
225
+ cl.Text(content="https://www.imdb.com" + source, name="Review URL")
226
+ )
227
 
228
+ if source_elements:
229
+ answer += f"\nSources: {', '.join([e.content.decode('utf-8') for e in source_elements])}"
230
+ else:
231
+ answer += "\nNo sources found"
232
 
233
+ await cl.Message(content=answer, elements=source_elements).send()