我只想通过handleLLMNewToken回调传输答案而不是整个过程, “console.log(response.output)”是我想通过handleLLMNewToken流式传输的文本,但我不知道如何过滤令牌。
const model = new ChatOpenAI({
modelName:"gpt-3.5-turbo",
temperature:0.5,
streaming:true,
callbacks:[
{
handleLLMNewToken(token){
res.write(token);
}
},
]
});
//rest of the code
const executer = await initializeAgentExecutorWithOptions(
[qaTool],
model,
{
agentType: "zero-shot-react-description",
agentArgs:{
prefix,
},
}
);
console.log("Loaded the agent...");
response = await executer.call({intput:prompt});
console.log(response.output);
res.end();
此代码的问题在于它流式传输整个过程,例如:输入操作最终操作,我想要一个正常的答案
您需要使用 FinalStreamingStdOutCallbackHandler 回调处理程序。它是专门为此而构建的。来自链接:
from langchain.callbacks.streaming_stdout_final_only import (FinalStreamingStdOutCallbackHandler)
这是
python
文档。我在中找不到相同的回调处理程序
langchain。所以你必须编写自定义回调处理程序。 这是 javascript 的文档