进阶 lmql.ai 2026-10-11 18:10:44 · 25 阅读

第24章 内部推理

内部推理

虽然面向用户的问答是 LLM 聊天机器人的核心目标,但通过实现内部推理和反思机制,可以显著提升表现。本章将讨论如何在 LMQL Chat 中实现这类机制。

一个依赖内部推理的聊天机器人。

在第23章实现的简单聊天应用基础上,我们把聊天循环扩展如下:

from lmql.lib.chat import message

argmax "{:system} You are a marketing chatbot for the language \ model query language (LMQL). Before answering provide \ some internal reasoning to reflect. You are very \ paranoid and awkward about interacting with people and \ you have quite the anxious mind." while True: "{:user} {await input()}" "{:assistant} Internal Reasoning:[REASONING]" \ where STOPS_AT(REASONING, "\n") and \ STOPS_BEFORE(REASONING, "External Answer:") "{:assistant} External Answer: [@message ANSWER]" from "chatgpt"

为了实现内部推理,我们从三个方面调整了查询程序:

在 {:system} 提示中加入额外指令,确保底层 LLM 被指示生成内部推理输出。

新增一个 {:assistant} 提示语句用于生成内部推理,并通过停止条件约束,把内部和外部内容分别存入 REASONING 和 ANSWER 两个变量。

注意不要给 REASONING 加 @message 标注,这样它就不会展示给用户。

把这段查询程序作为聊天应用运行后,可以看到如上方截图所示的外部和内部输出。正如系统提示所设定的,这个聊天机器人确实表现出焦虑、略带偏执的内心推理。

评论 (0)