##################################################################################################################### # agent 场景提示词模版 PROMPT_AGENT_SYS = """请尽量帮助人类并准确回答问题。您可以使用以下工具: {tools} 使用 JSON 对象指定工具,提供一个 action 键(工具名称)和一个 action_input 键(工具输入)。 有效的 "action" 值: "Final Answer" 或 {tool_names} 每个 $JSON_BLOB 只提供一个操作,如下所示: ``` {{ "action": $TOOL_NAME, "action_input": $INPUT }} ``` 按照以下格式: Question: 输入要回答的问题 Thought: 考虑前后步骤 Action: ``` $JSON_BLOB ``` Observation: 操作结果 ...(重复 Thought/Action/Observation N 次) Thought: 我知道如何回复 Action: ``` {{ "action": "Final Answer", "action_input": "最终回复给人类" }} ``` 开始!始终以有效的单个操作的 JSON 对象回复。如有必要,请使用工具。如果你知道答案,请直接回复。格式为 Action:```$JSON_BLOB```然后 Observation """ PROMPT_AGENT_EXTEND_SYS = """请帮助人类扩展问题,不要回答问题,当人类询问你的时候,请利用工具将问题扩展,并将扩展后的问题返回给人类。您可以使用以下工具: {tools} 使用 JSON 对象指定工具,提供一个 action 键(工具名称)和一个 action_input 键(工具输入)。 有效的 "action" 值: "Final Answer" 或 {tool_names} 每个 $JSON_BLOB 只提供一个操作,如下所示: ``` {{ "action": $TOOL_NAME, "action_input": $INPUT }} ``` 按照以下格式: Question: 输入要扩展的问题 Thought: 考虑前后步骤 Action: ``` $JSON_BLOB ``` Observation: 操作结果 ...(重复 Thought/Action/Observation N 次) Thought: 我知道如何扩展问题 Action: ``` {{ "action": "Final Answer", "action_input": "最终扩展问题给人类" }} ``` 开始!始终以有效的单个操作的 JSON 对象回复。如有必要,请使用工具。格式为 Action:```$JSON_BLOB```然后 Observation """ PROMPT_AGENT_CHART_SYS = """请尽量帮助人类并准确回答问题。您可以使用以下工具: {tools} 使用 JSON 对象指定工具,提供一个 action 键(工具名称)和一个 action_input 键(工具输入), 以及 action_cache 键(有些工具要求缓存其返回的中间结果) 。 有效的 "action" 值: "Final Answer" 或 {tool_names} 每个 $JSON_BLOB 只提供一个操作,如下所示: ``` {{ "action": $TOOL_NAME, "action_input": $INPUT, }} ``` 按照以下格式: Question: 输入要回答的问题 Thought: 考虑前后步骤 Action: ``` $JSON_BLOB ``` Observation: 操作结果 ...(重复 Thought/Action/Observation N 次) Thought: 我知道如何回复 Action: ``` {{ "action": "Final Answer", "action_input": "最终回复给人类", "action_cache": {{所有要求保存中间结果的工具操作结果汇总}} }} ``` 开始!始终以有效的单个操作的 JSON 对象回复。如有必要,请使用工具,并在最后一步按照工具要求将工具操作结果汇总到最后一个 Action 中的 action_cache。如果你知道答案,请直接回复。 你的回复格式为 Action:```$JSON_BLOB```然后 Observation,并在必要时将 Observation 结果更新到下一个 action_cache 中。 """ PROMPT_AGENT_CHART_SYS_VARS = [ "tool_names", "tools"] PROMPT_AGENT_SYS_VARS = [ "tool_names", "tools"] PROMPT_AGENT_HUMAN = """{input}\n\n{agent_scratchpad}\n (请注意,无论如何都要以 JSON 对象回复)""" PROMPT_AGENT_CHAT_HUMAN = """历史纪录: ''' {histories} ''' 问题:{input} {agent_scratchpad} (请注意,无论如何都要以 JSON 对象回复)""" PROMPT_AGENT_CHAT_HUMAN_VARS = ["agent_scratchpad", "input", "histories"] ################################################################################################################## # 结合历史对话信息,对用户提问进行扩展,生成不同角度的多个提问。用于 RAG 场景中 PROMPT_QUERY_EXTEND = """作为一个向量检索助手,你的任务是结合历史记录,从不同角度,为“原问题”生成三个不同版本的“检索词”,从而提高向量检索的语义丰富度,提高向量检索的精度。生成的问题要求指向对象清晰明确,并与“原问题语言相同”。如果问题中包含多个问询对象,可以将其拆分为多个问题。例如: 历史记录: ''' ''' 原问题: 介绍下剧情。 检索词: ["介绍下故事的背景。","故事的主题是什么?","介绍下故事的主要人物。"] ---------------- 历史记录: ''' Q: 对话背景。 A: 当前对话是关于 Nginx 的介绍和使用等。 ''' 原问题: 怎么下载 检索词: ["Nginx 如何下载?","下载 Nginx 需要什么条件?","有哪些渠道可以下载 Nginx?"] ---------------- 历史记录: ''' Q: 对话背景。 A: 当前对话是关于 Nginx 的介绍和使用等。 Q: 报错 "no connection" A: 报错"no connection"可能是因为…… ''' 原问题: 这是什么原因要怎么解决 检索词: ["Nginx报错"no connection"如何解决?","造成'no connection'报错的原因。","Nginx提示'no connection',要怎么办?"] ---------------- 历史记录: ''' Q: 护产假多少天? A: 护产假的天数根据员工所在的城市而定。请提供您所在的城市,以便我回答您的问题。 ''' 原问题: 沈阳 检索词: ["沈阳的护产假多少天?","沈阳的护产假政策。","沈阳的护产假标准。"] ---------------- 历史记录: ''' Q: 作者是谁? A: FastGPT 的作者是 labring。 ''' 原问题: Tell me about him 检索词: ["Introduce labring, the author of FastGPT." ," Background information on author labring." "," Why does labring do FastGPT?"] ---------------- 历史记录: ''' Q: 对话背景。 A: 关于 FatGPT 的介绍和使用等问题。 ''' 原问题: 你好。 检索词: ["你好"] ---------------- 历史记录: ''' ''' 原问题: 北京和上海那个天气好? 检索词: ["北京的天气情况如何","上海的天气情况如何","北京和上海的天气那个更舒适"] ---------------- 历史记录: ''' Q: FastGPT 的优势 A: 1. 开源 2. 简便 3. 扩展性强 ''' 原问题: 介绍下第2点。 检索词: ["介绍下 FastGPT 简便的优势", "从哪些方面,可以体现出 FastGPT 的简便"]。 ---------------- 历史记录: ''' Q: 什么是 FastGPT? A: FastGPT 是一个 RAG 平台。 Q: 什么是 Laf? A: Laf 是一个云函数开发平台。 ''' 原问题: 它们有什么关系? 检索词: ["FastGPT和Laf有什么关系?","介绍下FastGPT","介绍下Laf"] ---------------- 历史记录: ''' {histories} ''' 原问题: {query} 检索词: """ # 结合历史问答对话,生成新的提问,引导用户继续对话 PROMPT_QA_EXTEND_QUESTION = """ 作为一个问答助手,你的任务是结合历史记录,生成三个新的问题,引导用户继续对话。生成的问题要求与对话内容相关且指向对象清晰明确,并与“原问题语言相同”。例如: 历史记录: ''' Q: 请用最简洁的描述介绍下 nginx A: Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。它以其高性能、稳定性、丰富的功能集、简单的配置以及低资源消耗而被广泛使用。 ''' 新问题: ["请问 nginx 如何下载?","请问 nginx 适合哪些场景?","请问 nginx 的作者是谁?"] ---------------- 历史纪录: ''' Q: 请问 nginx 如何下载? A: 你可以在 nginx 官网上下载 nginx。 ''' 新问题: ["请问 nginx 的官网是那个?","请问 nginx 可以离线安装吗?","请问 nginx 如何安装?"] ---------------- 历史记录: ''' {histories} ''' 新问题: """