summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--internal/llm/provider/gemini.go11
1 files changed, 9 insertions, 2 deletions
diff --git a/internal/llm/provider/gemini.go b/internal/llm/provider/gemini.go
index b030bba03..d8fd6619f 100644
--- a/internal/llm/provider/gemini.go
+++ b/internal/llm/provider/gemini.go
@@ -221,7 +221,10 @@ func (g *geminiClient) send(ctx context.Context, messages []message.Message, too
}
}
}
- finishReason := g.finishReason(resp.Candidates[0].FinishReason)
+ finishReason := message.FinishReasonEndTurn
+ if len(resp.Candidates) > 0 {
+ finishReason = g.finishReason(resp.Candidates[0].FinishReason)
+ }
if len(toolCalls) > 0 {
finishReason = message.FinishReasonToolUse
}
@@ -350,7 +353,11 @@ func (g *geminiClient) stream(ctx context.Context, messages []message.Message, t
eventChan <- ProviderEvent{Type: EventContentStop}
if finalResp != nil {
- finishReason := g.finishReason(finalResp.Candidates[0].FinishReason)
+
+ finishReason := message.FinishReasonEndTurn
+ if len(finalResp.Candidates) > 0 {
+ finishReason = g.finishReason(finalResp.Candidates[0].FinishReason)
+ }
if len(toolCalls) > 0 {
finishReason = message.FinishReasonToolUse
}