typescript - Hur man strömmar svaret från LangChain QAMapReduceChain
Jag använder Langchain för att interagera med en lång text. Texten är uppdelad i delar, som skickas in som docs-variabeln nedan.
Jag har satt upp en kedja som strömmar mitt svar, men jag upptäcker att handleLLMNewToken anropas medan OpenAI returnerar token från alla generationer som inkluderar Map-stegen för varje dokument.
Detta resulterar i ett rörigt svar som är en kombination av alla generationer, snarare än enbart utdata-generationen. Jag kan inte hitta en metod som gör att jag endast kan strömma det slutliga resultatet medan det genereras.
Jag kan komma åt den färdiga prompten om jag använder variabeln chainResult - men den är inte strömbar till skillnad från callbacken.
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);
},
}
],);