Ont*_*nio 5 python langchain large-language-model
我正在使用 Langchain 0.0.345。我无法使用LCEL 方法构建链来获得幕后发生的情况的详细输出。
我有这个代码:
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema.output_parser import StrOutputParser
from langchain.globals import set_verbose
set_verbose(True)
prompt = ChatPromptTemplate.from_template("tell me a joke about {topic}")
model = ChatOpenAI()
output_parser = StrOutputParser()
chain = prompt | model | output_parser
chain.invoke({"topic": "ice cream"})
Run Code Online (Sandbox Code Playgroud)
根据文档,使用的set_verbose是显示中间步骤、提示构建等的详细输出的方法。但是该脚本的输出只是一个字符串,没有任何中间步骤。实际上, API 文档langchain.globals中甚至没有提及该模块。
我也尝试过verbose=True在模型创建中设置参数,但也不起作用。这用于与前一种方法一起使用类等进行构建。
建议和当前的方法是如何记录输出以便您了解发生了什么?
谢谢!
您可以将回调处理程序添加到invoke方法的配置中。
from langchain.callbacks.tracers import ConsoleCallbackHandler
# ...your code
chain.invoke({"topic": "ice cream"}, config={'callbacks': [ConsoleCallbackHandler()]})
Run Code Online (Sandbox Code Playgroud)
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema.output_parser import StrOutputParser
from langchain.callbacks.tracers import ConsoleCallbackHandler
prompt = ChatPromptTemplate.from_template("tell me a joke about {topic}")
model = ChatOpenAI()
output_parser = StrOutputParser()
chain = prompt | model | output_parser
chain.invoke({"topic": "ice cream"}, config={'callbacks': [ConsoleCallbackHandler()]})
Run Code Online (Sandbox Code Playgroud)
输出与原始的“详细模式”不同,但这是最接近的替代方案。
尝试将回调处理程序附加到特定对象。例如:
ChatOpenAI().with_config({'callbacks': [ConsoleCallbackHandler()]})
Run Code Online (Sandbox Code Playgroud)
您可以在此处了解有关自定义回调的更多信息
全局调试仍然适用于 LCEL:
from langchain.globals import set_debug
set_debug(True)
# your code
Run Code Online (Sandbox Code Playgroud)
您可以使用权重和偏差或langsmith