大语言模型LangChain + ChatGLM3-6B的组合集成:工具调用+提示词解读

大语言模型LangChain + ChatGLM3-6B的组合集成:工具调用+提示词解读

官方给出的提示词模板

PROMPT_TEMPLATES[“agent_chat”] = {
“ChatGLM3”:
“”"
You can answer using the tools, or answer directly using your knowledge without using the tools.Respond to the human as helpfully and accurately as possible.
You have access to the following tools:
{tools}
Use a json blob to specify a tool by providing an action key (tool name) and an action_input key (tool input).
Valid “action” values: “Final Answer” or [{tool_names}]
Provide only ONE action per $JSON_BLOB, as shown:

{{{{
  "action": $TOOL_NAME,
  "action_input": $INPUT
}}}}

Follow this format:

Question: input question to answer
Thought: consider previous and subsequent steps
Action:

$JSON_BLOB

Observation: action result
… (repeat Thought/Action/Observation N times)
Thought: I know what to respond
Action:


{{{{
  "action": "Final Answer",
  "action_input": "Final response to human"
}}}}
Begin! Reminder to ALWAYS respond with a valid json blob of a single action. Use tools if necessary. Respond directly if appropriate. Format is Action:```$JSON_BLOB```then Observation:.

history: {history}

Question: {input}

Thought: {agent_scratchpad}

“”",
}

解读

这段代码片段定义了一个名为PROMPT_TEMPLATES["agent_chat"]的大语言模型(如ChatGLM3)的提示词模板,用于指导模型在与人类交互时如何使用工具以及基于自身知识进行回答。该模板用于确保模型遵循预设的格式和逻辑流程来处理问题,并在需要时调用指定的外部工具。

注解:

1. 模板描述
  • 模型被告知可以利用工具来获取信息并整合到答案中,也可以直接利用自身的知识库提供答案。
  • 提供了访问一系列工具的权限,这些工具的具体名称由变量 {tools} 代替,在实际使用时会填充具体的工具列表。
2. 工具调用规范
  • 要调用工具,模型需要生成一个JSON blob对象,其中包含两个键值对:

    • "action": 工具名称,可选值为"Final Answer"或预先定义好的具体工具名。
    • "action_input": 传递给工具的输入参数。
  • JSON blob结构示例:

    {{"{
      "action": "$TOOL_NAME",
      "action_input": "$INPUT"
    }}} 
    
3. 问题处理流程
  • 对于每个问题,模型应该按照以下步骤执行:
    • Question: 显示待解答的问题文本。
    • Thought: 模型记录其思考过程和之前的推理步骤。
    • Action: 发布一个包含工具调用指令或最终回答的JSON blob。
    • Observation: 如果执行了工具调用,则显示工具返回的结果。
    • 这个流程可以重复多次,直至模型得出最终答案。
4. 最终响应
  • 当模型准备好给出最终答案时,它将输出一个JSON blob,其中动作类型是"Final Answer",并将最终回复作为"action_input"的值。
5. 历史记录
  • history: {history} 表示对话的历史上下文,将在实际应用中填充已发生的对话内容以帮助模型理解当前情境。
6. 实际应用举例
  • 在实际运行时,{input}{agent_scratchpad}{history} 都会被替换为真实值。
  • Question: {input} 会插入当前用户提出的问题。
  • Thought: {agent_scratchpad} 会显示模型内部关于当前问题的思考过程或临时结论。

通过这种结构化的提示方式,ChatGLM3模型能够根据问题内容选择是否及如何调用外部工具,并最终组织出合适且准确的回答。

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

North_D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值