From e8c41c5c27c4bdf1dd5a7d8f981ad0fd2dde07b2 Mon Sep 17 00:00:00 2001
From: Thuc Pham <51660321+thucpn@users.noreply.github.com>
Date: Thu, 2 May 2024 08:39:57 +0700
Subject: [PATCH] fix: wrong gemini streaming chat response (#791)

---
 .changeset/seven-days-occur.md  |  5 +++++
 packages/core/src/llm/gemini.ts | 10 ++++------
 2 files changed, 9 insertions(+), 6 deletions(-)
 create mode 100644 .changeset/seven-days-occur.md

diff --git a/.changeset/seven-days-occur.md b/.changeset/seven-days-occur.md
new file mode 100644
index 000000000..c398c614a
--- /dev/null
+++ b/.changeset/seven-days-occur.md
@@ -0,0 +1,5 @@
+---
+"llamaindex": patch
+---
+
+fix: wrong gemini streaming chat response
diff --git a/packages/core/src/llm/gemini.ts b/packages/core/src/llm/gemini.ts
index 413e4e2a3..9239d44d1 100644
--- a/packages/core/src/llm/gemini.ts
+++ b/packages/core/src/llm/gemini.ts
@@ -302,12 +302,10 @@ export class Gemini extends ToolCallLLM<GeminiAdditionalChatOptions> {
   ): GeminiChatStreamResponse {
     const { chat, messageContent } = this.prepareChat(params);
     const result = await chat.sendMessageStream(messageContent);
-    return streamConverter(result.stream, (response) => {
-      return {
-        text: response.text(),
-        raw: response,
-      };
-    });
+    yield* streamConverter(result.stream, (response) => ({
+      delta: response.text(),
+      raw: response,
+    }));
   }
 
   chat(params: GeminiChatParamsStreaming): Promise<GeminiChatStreamResponse>;
-- 
GitLab