You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用LangChain的LLMChain获取发送给LLM的完整请求文本(Python)

如何获取LangChain LLMChain发送给模型的完整请求文本

你可以通过以下几种方式直接获取填充后的完整请求文本,无需手动拼接模板:

方法1:开启verbose调试模式

给LLMChain添加verbose=True参数,调用时会在控制台打印出发送给模型的完整提示内容:

from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

llm = OpenAI(model_name="gpt-3.5-turbo-0613")
prompt = PromptTemplate(input_variables=["a", "b"], template="Hello {a} and {b}")
# 开启verbose模式
chain = LLMChain(llm=llm, prompt=prompt, verbose=True)
result = chain.call({"a": "some text", "b": "some other text"})

运行后控制台会输出格式化后的完整提示词。

方法2:通过PromptTemplate直接生成

利用PromptTemplate的format方法传入参数,直接得到填充后的完整文本:

formatted_prompt = prompt.format(a="some text", b="some other text")
print(formatted_prompt)  # 输出:Hello some text and some other text

方法3:用回调函数捕获运行时的提示文本

如果想在调用chain的过程中自动捕获完整请求文本,无需手动调用format,可以自定义回调类:

from langchain.callbacks.base import BaseCallbackHandler
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

class PromptCaptureCallback(BaseCallbackHandler):
    def __init__(self):
        self.captured_prompt = None

    def on_llm_start(self, serialized, prompts, **kwargs):
        # 捕获第一个prompt(LLMChain只会生成一个)
        self.captured_prompt = prompts[0]

# 初始化回调实例
prompt_capture = PromptCaptureCallback()

# 将回调传入LLM
llm = OpenAI(model_name="gpt-3.5-turbo-0613", callbacks=[prompt_capture])
prompt = PromptTemplate(input_variables=["a", "b"], template="Hello {a} and {b}")
chain = LLMChain(llm=llm, prompt=prompt)

result = chain.call({"a": "some text", "b": "some other text"})

# 获取捕获到的完整请求文本
print(prompt_capture.captured_prompt)

补充说明

你之前尝试的return_final_only=True仅控制是否只返回最终生成结果,include_run_info=True返回的是运行元数据(如耗时、模型信息),均不包含格式化后的完整提示文本。

内容的提问来源于stack exchange,提问作者cserpell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 18:50:05