Update app.py
Browse files
app.py
CHANGED
|
@@ -89,12 +89,11 @@ def load_file(file_obj):
|
|
| 89 |
|
| 90 |
return f"已加载 {len(docs)} 个文本块", None
|
| 91 |
|
| 92 |
-
# ===== RAG 查询 =====
|
| 93 |
def rag_query(query):
|
| 94 |
if index is None or not docs:
|
| 95 |
return "请先上传文件并构建知识库"
|
| 96 |
q_emb = embed_text(query).reshape(1, -1)
|
| 97 |
-
D, I = index.search(q_emb, k=8)
|
| 98 |
retrieved = [docs[i]["text"] for i in I[0]]
|
| 99 |
context = "\n".join([f"[{idx+1}] {txt}" for idx, txt in enumerate(retrieved)])
|
| 100 |
|
|
@@ -103,17 +102,18 @@ def rag_query(query):
|
|
| 103 |
|
| 104 |
问题:{query}
|
| 105 |
|
| 106 |
-
|
| 107 |
-
1.
|
| 108 |
-
2.
|
| 109 |
-
3.
|
| 110 |
"""
|
| 111 |
|
| 112 |
-
result = generator(prompt, max_length=
|
| 113 |
answer = result[0]["generated_text"]
|
| 114 |
|
| 115 |
return f"回答:\n{answer}\n\n参考片段:\n{context}"
|
| 116 |
|
|
|
|
| 117 |
# ===== Gradio 界面 =====
|
| 118 |
with gr.Blocks() as demo:
|
| 119 |
gr.Markdown("## 📚 完整性增强版 RAG(PDF/TXT/EPUB 支持 + 引用显示)")
|
|
|
|
| 89 |
|
| 90 |
return f"已加载 {len(docs)} 个文本块", None
|
| 91 |
|
|
|
|
| 92 |
def rag_query(query):
|
| 93 |
if index is None or not docs:
|
| 94 |
return "请先上传文件并构建知识库"
|
| 95 |
q_emb = embed_text(query).reshape(1, -1)
|
| 96 |
+
D, I = index.search(q_emb, k=8)
|
| 97 |
retrieved = [docs[i]["text"] for i in I[0]]
|
| 98 |
context = "\n".join([f"[{idx+1}] {txt}" for idx, txt in enumerate(retrieved)])
|
| 99 |
|
|
|
|
| 102 |
|
| 103 |
问题:{query}
|
| 104 |
|
| 105 |
+
输出要求:
|
| 106 |
+
1. 先用 2-3 句话总结所有引用片段的关键信息,形成一个完整结论
|
| 107 |
+
2. 再分段详细说明,并在细节中标注引用编号
|
| 108 |
+
3. 无法回答时直接说“我不知道”
|
| 109 |
"""
|
| 110 |
|
| 111 |
+
result = generator(prompt, max_length=600, do_sample=False)
|
| 112 |
answer = result[0]["generated_text"]
|
| 113 |
|
| 114 |
return f"回答:\n{answer}\n\n参考片段:\n{context}"
|
| 115 |
|
| 116 |
+
|
| 117 |
# ===== Gradio 界面 =====
|
| 118 |
with gr.Blocks() as demo:
|
| 119 |
gr.Markdown("## 📚 完整性增强版 RAG(PDF/TXT/EPUB 支持 + 引用显示)")
|