如何只直播答案而不直播整个过程?

问题描述 投票:0回答:1

我只想通过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();

此代码的问题在于它流式传输整个过程,例如:输入操作最终操作,我想要一个正常的答案

javascript stream chatbot openai-api langchain
1个回答
0
投票

您需要使用 FinalStreamingStdOutCallbackHandler 回调处理程序。它是专门为此而构建的。来自链接:

from langchain.callbacks.streaming_stdout_final_only import (FinalStreamingStdOutCallbackHandler)

这是

python
文档。我在中找不到相同的回调处理程序 langchain。所以你必须编写自定义回调处理程序。 这是 javascript 的文档

© www.soinside.com 2019 - 2024. All rights reserved.