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

文章目录

  • [大语言模型LangChain + ChatGLM3-6B的组合集成:工具调用+提示词解读](#大语言模型LangChain + ChatGLM3-6B的组合集成:工具调用+提示词解读)
    • 官方给出的提示词模板
    • 解读
      • 注解:
        • [1. 模板描述](#1. 模板描述)
        • [2. 工具调用规范](#2. 工具调用规范)
        • [3. 问题处理流程](#3. 问题处理流程)
        • [4. 最终响应](#4. 最终响应)
        • [5. 历史记录](#5. 历史记录)
        • [6. 实际应用举例](#6. 实际应用举例)

大语言模型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模型能够根据问题内容选择是否及如何调用外部工具,并最终组织出合适且准确的回答。

相关推荐
字节数据平台32 分钟前
iDA:从 ChatBI 到专业数据分析助手的演进之路
大数据·人工智能·机器学习·数据分析
warpdrivelabs44 分钟前
Codex 开源 harness 全面了解
开发语言·人工智能
mit6.8241 小时前
微软如何交付企业级Agent
人工智能
Mininglamp_27181 小时前
明略科技携手海康机器人亮相世界机器人大会,以“Agent+具身“联合进入商业机器人场景
人工智能·科技·机器人·开源·agent·ai agent
2401_894915531 小时前
GEO 优化源码全解析:从搜索引擎到 AI 引擎的底层改写逻辑
java·服务器·前端·数据库·人工智能·分布式·搜索引擎
MobotStone2 小时前
从“听得懂”到“干得了”:工业大模型落地工厂的三层进化路线
人工智能
wangruofeng3 小时前
GLM-5.3-Flash 发布:追平 Opus 4.8 的智力,1/40 的价格,跑在国产芯片上
人工智能·aigc·chatglm (智谱)
皮皮虾❀5 小时前
钉钉AI服务商×教育行业:AI现代产业学院共建一体化实战——从“高校AI教学缺平台”到“校企共建AI产业学院培养数字化人才
人工智能·钉钉
火山引擎开发者社区5 小时前
【议程来了】火山引擎开发者社区技术日・NVIDIA 独家赞助-成都站
人工智能
三声三视5 小时前
从崩溃日志到 AI 技能:tri-god 蒸馏实战
人工智能·ai·aigc·agent