typescript - Hvordan man streamer svaret fra LangChain QAMapReduceChain
Jeg bruger Langchain til at interagere med et langt stykke tekst. Teksten er opdelt i stykker, som videregives som docs-variablen nedenfor.
Jeg har sat en kæde op, der streamer mit svar, men jeg oplever, at handleLLMNewToken bliver kaldt, mens OpenAI returnerer tokens fra alle generationer, som inkluderer Map-trinnene for hvert dokument.
Dette resulterer i et rodet svar, som er en kombination af alle generationer, i stedet for kun outputgenerationen. Jeg kan ikke finde en metode, der gør det muligt for mig kun at streame det endelige resultat, mens det bliver genereret.
Jeg kan få adgang til den fuldførte prompt, hvis jeg bruger variablen chainResult - men den kan ikke streames i modsætning til callback'en.
const SUMMARISE_MODEL = {
temperature: 0.5,
modelName: "gpt-3.5-turbo-16k",
maxTokens: 5000,
verbose: false,
maxConcurrency: 2,
streaming: true,
}
//...OTHER CODE
const chain = loadQAMapReduceChain(model, {returnIntermediateSteps: true});
const chainResult = await chain.call({
input_documents: docs,
question: templateString,
}, [
{
handleLLMNewToken(token: string) {
updateResponse(token);
},
}
],);