From 60b185ff538e898c0a57052618e2e70c18933238 Mon Sep 17 00:00:00 2001 From: Alex Yang <himself65@outlook.com> Date: Thu, 24 Oct 2024 15:55:45 -0700 Subject: [PATCH] fix: source nodes is empty (#1391) --- .changeset/pretty-swans-fly.md | 5 +++++ .../src/response-synthesizers/base-synthesizer.ts | 4 ++-- packages/core/src/response-synthesizers/factory.ts | 11 ++++++----- .../src/schema/type/engine\342\200\223response.ts" | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) create mode 100644 .changeset/pretty-swans-fly.md diff --git a/.changeset/pretty-swans-fly.md b/.changeset/pretty-swans-fly.md new file mode 100644 index 000000000..07bff4615 --- /dev/null +++ b/.changeset/pretty-swans-fly.md @@ -0,0 +1,5 @@ +--- +"@llamaindex/core": patch +--- + +fix: source nodes is empty diff --git a/packages/core/src/response-synthesizers/base-synthesizer.ts b/packages/core/src/response-synthesizers/base-synthesizer.ts index 11c92d2dc..756eddd48 100644 --- a/packages/core/src/response-synthesizers/base-synthesizer.ts +++ b/packages/core/src/response-synthesizers/base-synthesizer.ts @@ -43,9 +43,9 @@ export abstract class BaseSynthesizer extends PromptMixin { let response: EngineResponse | AsyncIterable<EngineResponse>; if (query.nodes.length === 0) { if (stream) { - response = EngineResponse.fromResponse("Empty Response", true); + response = EngineResponse.fromResponse("Empty Response", true, []); } else { - response = EngineResponse.fromResponse("Empty Response", false); + response = EngineResponse.fromResponse("Empty Response", false, []); } } else { const queryMessage: MessageContent = diff --git a/packages/core/src/response-synthesizers/factory.ts b/packages/core/src/response-synthesizers/factory.ts index 85d4d3e5f..0b0ff673d 100644 --- a/packages/core/src/response-synthesizers/factory.ts +++ b/packages/core/src/response-synthesizers/factory.ts @@ -108,10 +108,10 @@ class Refine extends BaseSynthesizer { // fixme: no source nodes provided, cannot fix right now due to lack of context if (typeof response === "string") { - return EngineResponse.fromResponse(response, false); + return EngineResponse.fromResponse(response, false, nodes); } else { return streamConverter(response!, (text) => - EngineResponse.fromResponse(text, true), + EngineResponse.fromResponse(text, true, nodes), ); } } @@ -293,12 +293,13 @@ class TreeSummarize extends BaseSynthesizer { if (stream) { const response = await this.llm.complete({ ...params, stream }); return streamConverter(response, (chunk) => - EngineResponse.fromResponse(chunk.text, true), + EngineResponse.fromResponse(chunk.text, true, nodes), ); } return EngineResponse.fromResponse( (await this.llm.complete(params)).text, false, + nodes, ); } else { const summaries = await Promise.all( @@ -393,13 +394,13 @@ class MultiModal extends BaseSynthesizer { stream, }); return streamConverter(response, ({ text }) => - EngineResponse.fromResponse(text, true), + EngineResponse.fromResponse(text, true, nodes), ); } const response = await llm.complete({ prompt, }); - return EngineResponse.fromResponse(response.text, false); + return EngineResponse.fromResponse(response.text, false, nodes); } } diff --git "a/packages/core/src/schema/type/engine\342\200\223response.ts" "b/packages/core/src/schema/type/engine\342\200\223response.ts" index 4f7086414..e540ad65e 100644 --- "a/packages/core/src/schema/type/engine\342\200\223response.ts" +++ "b/packages/core/src/schema/type/engine\342\200\223response.ts" @@ -26,7 +26,7 @@ export class EngineResponse implements ChatResponse, ChatResponseChunk { static fromResponse( response: string, stream: boolean, - sourceNodes?: NodeWithScore[], + sourceNodes: NodeWithScore[], ): EngineResponse { return new EngineResponse( EngineResponse.toChatResponse(response), -- GitLab