diff --git a/.changeset/seven-days-occur.md b/.changeset/seven-days-occur.md
new file mode 100644
index 0000000000000000000000000000000000000000..c398c614ae9a3a28270fa4ce0262c9544915f9b6
--- /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 413e4e2a350b5e91c4a09da2129cc42c2604f58f..9239d44d17ce01c7e20b826b56de30248ff345f6 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>;