Update app.py
Browse files
app.py
CHANGED
@@ -83,21 +83,39 @@ async def init():
|
|
83 |
async def main(message):
|
84 |
chain = cl.user_session.get("chain")
|
85 |
cb = cl.AsyncLangchainCallbackHandler(
|
86 |
-
stream_final_answer=True,
|
|
|
87 |
)
|
88 |
cb.answer_reached = True
|
89 |
-
res = await chain.acall(message, callbacks=[cb]
|
90 |
|
91 |
answer = res["result"]
|
92 |
source_elements = []
|
93 |
visited_sources = set()
|
94 |
-
#return
|
95 |
|
96 |
# --documents, user session
|
97 |
docs = res["source_documents"]
|
98 |
metadatas = [doc.metadata for doc in docs]
|
99 |
all_sources = [m["source"] for m in metadatas]
|
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
"""
|
102 |
for source in all_sources:
|
103 |
if source in visited_sources:
|
@@ -133,4 +151,3 @@ async def main(message):
|
|
133 |
answer += "\nNo sources found"
|
134 |
|
135 |
await cl.Message(content=answer, elements=source_elements).send()
|
136 |
-
|
|
|
83 |
async def main(message):
|
84 |
chain = cl.user_session.get("chain")
|
85 |
cb = cl.AsyncLangchainCallbackHandler(
|
86 |
+
stream_final_answer=True,
|
87 |
+
answer_prefix_tokens=["FINAL", "ANSWER"]
|
88 |
)
|
89 |
cb.answer_reached = True
|
90 |
+
res = await chain.acall(message, callbacks=[cb])
|
91 |
|
92 |
answer = res["result"]
|
93 |
source_elements = []
|
94 |
visited_sources = set()
|
|
|
95 |
|
96 |
# --documents, user session
|
97 |
docs = res["source_documents"]
|
98 |
metadatas = [doc.metadata for doc in docs]
|
99 |
all_sources = [m["source"] for m in metadatas]
|
100 |
|
101 |
+
for doc, metadata in zip(docs, metadatas):
|
102 |
+
row_index = metadata.get("row_index", -1) # --when row_index@metadata
|
103 |
+
if row_index in [2, 8, 14]: # --incl. only rows 2, 8, and 14
|
104 |
+
source = metadata.get("source", "")
|
105 |
+
if source and source not in visited_sources:
|
106 |
+
visited_sources.add(source)
|
107 |
+
source_elements.append(
|
108 |
+
cl.Text(content="https://www.daysoff.no" + source, name="Info_Url")
|
109 |
+
)
|
110 |
+
|
111 |
+
if source_elements:
|
112 |
+
answer += f"\nSources: {', '.join([e.content for e in source_elements])}"
|
113 |
+
else:
|
114 |
+
answer += "\nNo sources found"
|
115 |
+
|
116 |
+
await cl.Message(content=answer, elements=source_elements).send()
|
117 |
+
|
118 |
+
|
119 |
"""
|
120 |
for source in all_sources:
|
121 |
if source in visited_sources:
|
|
|
151 |
answer += "\nNo sources found"
|
152 |
|
153 |
await cl.Message(content=answer, elements=source_elements).send()
|
|