typescript - Hogyan lehet streamelni a választ a LangChain QAMapReduceChain-ből
A Langchain-t használom arra, hogy egy hosszú szöveggel lépjek kapcsolatba. A szöveget darabokra bontják, amelyeket az alábbi docs változóba adnak át.
Beállítottam egy láncot, amely közvetíti a válaszomat, azonban azt tapasztalom, hogy a handleLLMNewToken akkor is hívódik, miközben az OpenAI visszaadja az összes generáció tokenjeit, beleértve az egyes dokumentumok Map lépéseit is.
Ez zavart válaszhoz vezet, amely minden generáció kombinációja, nem csak a kimeneti generáció. Nem találok olyan módszert, amely lehetővé tenné, hogy csak a végső eredményt streameljem, miközben az generálódik.
Hozzáférek a kész feladathoz, ha a chainResult változót használom - de ez nem streamelhető, ellentétben a visszahívással.
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);
},
}
],);