|
|
@ -12,8 +12,8 @@ COLLECTION_ROUTE_PROMPT = """ |
|
|
|
请你选择可能与问题相关的合集名称,并返回一个字符串列表。 |
|
|
|
如果没有相关合集,请返回一个空列表。 |
|
|
|
|
|
|
|
"Query": {query} |
|
|
|
"COLLECTION_INFO": {collection_info} |
|
|
|
"问题": {query} |
|
|
|
"合集信息": {collection_info} |
|
|
|
|
|
|
|
使用的语言与问题相同 |
|
|
|
你需要返回的格式是 a python list of str without any addtional content: |
|
|
@ -25,18 +25,18 @@ SUB_QUERY_PROMPT = """ |
|
|
|
如果原问题本身非常简单,没有必要进行拆分,则保留输出原问题本身 |
|
|
|
需要保证每个子问题都具体、清晰、不可分(原子性),最终返回一个字符串列表 |
|
|
|
|
|
|
|
Original Question: {original_query} |
|
|
|
原问题: {original_query} |
|
|
|
|
|
|
|
<EXAMPLE> |
|
|
|
示例输入: |
|
|
|
"Explain deep learning" |
|
|
|
"请解释机器学习" |
|
|
|
|
|
|
|
示例输出: |
|
|
|
示例输出(例子中的数量不是要求): |
|
|
|
[ |
|
|
|
"What is deep learning?", |
|
|
|
"What is deep learning's purpose?", |
|
|
|
"What is the difference between deep learning and machine learning?", |
|
|
|
"What is the history of deep learning?" |
|
|
|
"什么是机器学习?", |
|
|
|
"机器学习的使用目的是什么?", |
|
|
|
"机器学习和深度学习的区别是什么?", |
|
|
|
"机器学习的历史演进过程?" |
|
|
|
] |
|
|
|
|
|
|
|
</EXAMPLE> |
|
|
@ -47,15 +47,16 @@ Original Question: {original_query} |
|
|
|
|
|
|
|
|
|
|
|
RERANK_PROMPT = """ |
|
|
|
根据当前的问题和获取到的文档片段,请你对当前获取到的文档是否能帮助回答这个问题给出一个快速判断 |
|
|
|
对于每一个文档片段,你只应该返回"YES"或者"NO" |
|
|
|
根据当前的问题和获取到的文档片段 |
|
|
|
请你对当前获取到的文档是否能帮助回答这个问题(直接或间接,全面或部分,都可以)给出一个快速判断 |
|
|
|
对于每一个文档片段,你只应该返回"YES"或者"NO"(需要注意顺序和数量) |
|
|
|
|
|
|
|
Query: {query} |
|
|
|
问题: {query} |
|
|
|
|
|
|
|
Retrieved Chunks: |
|
|
|
检索到的文档片段: |
|
|
|
{chunks} |
|
|
|
|
|
|
|
例如,对于4个chunks,返回: ["YES", "NO", "YES", "YES"] |
|
|
|
例如,给定4个chunks(实际检索到的文档片段不一定是4个),返回: ["YES", "NO", "YES", "YES"] |
|
|
|
使用的语言与问题相同 |
|
|
|
你需要返回的是 a python list of str without any addtional content: |
|
|
|
""" |
|
|
@ -67,11 +68,11 @@ REFLECT_PROMPT = """ |
|
|
|
你可以尝试生成相似但些许不同的问题来尝试重新检索,但是也可以根据获得到的文档片段进行批评思考,生成新的问题来保证原问题的回答的准确和全面 |
|
|
|
如果没有真的必要继续研究(取决于你的判断),返回一个空列表 |
|
|
|
|
|
|
|
Original Query: {original_query} |
|
|
|
原问题: {original_query} |
|
|
|
|
|
|
|
Previous Sub Queries: {all_sub_queries} |
|
|
|
子问题: {all_sub_queries} |
|
|
|
|
|
|
|
Related Chunks: |
|
|
|
检索到的文档片段: |
|
|
|
{chunks} |
|
|
|
|
|
|
|
使用的语言与原问题相同 |
|
|
@ -91,23 +92,20 @@ SUMMARY_PROMPT = """ |
|
|
|
<EXAMPLE> |
|
|
|
|
|
|
|
文内引用示例(使用markdown和html的混合语法,格式必须和例子一致): |
|
|
|
"XGBoost is a powerful ensemble learning method [<sup>[2]</sup>](#2)" |
|
|
|
(必须使用 "[<sup>[index]</sup>](#index)" 而不是 "[index]",注意不要遗漏"(#index)") |
|
|
|
"XGBoost是非常强大的集成学习模型[<sup>[2]</sup>](#2)" |
|
|
|
(必须使用 "[<sup>[index]</sup>](#index)" 而不是 "[index]",注意不要遗漏"(#index)",这里的index是chunk对应的reference的id) |
|
|
|
|
|
|
|
|
|
|
|
文末参考资料列表 (超链接必须和href属性一致,不允许简化): |
|
|
|
前文输入: |
|
|
|
<reference id="2" href="href="files/docs/chap_001_003_models.md"><chunk id="1">...</chunk></reference> |
|
|
|
参考输出: |
|
|
|
文末引用示例 (需要href与前文参考中的一致,不需要对每个chunk分配一个引用,而是每一个referecen共用一个引用): |
|
|
|
<div id="2"><a href="files/docs/chap_001_003_models.md" style="text-decoration: none;>[2] chap_001_models.md</a></div> |
|
|
|
|
|
|
|
</EXAMPLE> |
|
|
|
|
|
|
|
原始问题: {original_query} |
|
|
|
原问题: {original_query} |
|
|
|
|
|
|
|
已经拆分出的子问题: {all_sub_queries} |
|
|
|
子问题: {all_sub_queries} |
|
|
|
|
|
|
|
相关片段: |
|
|
|
检索到的文档片段: |
|
|
|
{chunks} |
|
|
|
|
|
|
|
注意,你需要使用与原始问题的相同的语言来回答 |
|
|
@ -175,7 +173,7 @@ class DeepSearch(BaseAgent): |
|
|
|
collection_infos = self.vector_db.list_collections(dim=dim) |
|
|
|
if len(collection_infos) == 0: |
|
|
|
log.color_print( |
|
|
|
"数据库中没有找到任何合集!" |
|
|
|
"No collection found in the vector database!" |
|
|
|
) |
|
|
|
return [] |
|
|
|
if len(collection_infos) == 1: |
|
|
@ -421,9 +419,9 @@ class DeepSearch(BaseAgent): |
|
|
|
chunks = [] |
|
|
|
chunk_count = 0 |
|
|
|
for i, reference in enumerate(references): |
|
|
|
formated = f"<reference id='{i}' href='{reference}'>\n" + "".join( |
|
|
|
formated = f"<reference id='{i + 1}' href='{reference}'>\n" + "".join( |
|
|
|
[ |
|
|
|
f"<chunk id='{j + chunk_count}'>\n{chunk}\n</chunk>\n" |
|
|
|
f"<chunk id='{j + 1 + chunk_count}'>\n{chunk}\n</chunk>\n" |
|
|
|
for j, chunk in enumerate(references[reference]) |
|
|
|
] |
|
|
|
) + "</reference>\n" |
|
|
|