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

相关推荐
智购无人售货机厂家2 分钟前
2026自动售货机品类拓展逻辑:从饮料零食到鲜食药品文创的工程实践~YH
服务器·人工智能·单片机·线性代数·矩阵
泡茶喝茶写代码3 分钟前
量化数据开发实战系列(第 25 篇):基金基础接口实战:基金列表、ETF-LOF 分类、基金概况、净值数据
java·数据库·人工智能·python·mysql
张小姐的猫7 分钟前
【AI大模型接入SDK】 —— 数据管理 & 与Session模块进行联动
数据结构·数据库·c++·人工智能·python·chatgpt
m4Rk_12 分钟前
【论文阅读】Agent 记忆机制(67):MemPO——用记忆级信用分配训练 Agent 主动管理长程上下文
论文阅读·人工智能·学习·开源·github
Ai思想家17 分钟前
企业AI网关的跨可用区容灾与多活设计
人工智能
Mr数据杨21 分钟前
基于企业交易数据的OKVED行业分类实战解析
人工智能·数据分析·kaggle竞赛
AI推荐率27 分钟前
品牌的核心能力只写在图片里,公开资料该怎样补充文字解释?
人工智能
能源革命31 分钟前
DeepAR(概率自回归模型)介绍
人工智能·数据挖掘·回归
IvorySQL37 分钟前
PostgreSQL 日报|大模型破解在线校验和(9 月 15 日)
数据库·人工智能·postgresql
人工智能AI技术1 小时前
模型越强越翻车?GPT-6 旧配置踩坑深度避坑指南
人工智能