大语言模型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 小时前
【机器学习】机器学习算法
人工智能·机器学习
Blossom.1182 小时前
把 AI 塞进「自行车码表」——基于 MEMS 的 3D 地形预测码表
人工智能·python·深度学习·opencv·机器学习·计算机视觉·3d
小鹿的工作手帐5 小时前
有鹿机器人:为城市描绘清洁新图景的智能使者
人工智能·科技·机器人
蒋星熠6 小时前
区块链技术探索与应用:从密码学奇迹到产业变革引擎
python·语言模型·web3·去中心化·区块链·密码学·智能合约
TechubNews6 小时前
香港数字资产交易市场蓬勃发展,监管与创新并驾齐驱
人工智能·区块链
DogDaoDao7 小时前
用PyTorch实现多类图像分类:从原理到实际操作
图像处理·人工智能·pytorch·python·深度学习·分类·图像分类
小和尚同志7 小时前
450 star 的神级提示词管理工具 AI-Gist,让提示词不再吃灰
人工智能·aigc
IT古董8 小时前
第四章:大模型(LLM)】07.Prompt工程-(12)评估prompt的有效性
prompt
金井PRATHAMA8 小时前
大脑的藏宝图——神经科学如何为自然语言处理(NLP)的深度语义理解绘制新航线
人工智能·自然语言处理
大学生毕业题目8 小时前
毕业项目推荐:28-基于yolov8/yolov5/yolo11的电塔危险物品检测识别系统(Python+卷积神经网络)
人工智能·python·yolo·cnn·pyqt·电塔·危险物品