Merge pull request #642 from MartialBE/fix_gemini_thinking

fix: 修复gemini thinking在stream下会内容丢失
This commit is contained in:
Calcium-Ion
2024-12-20 20:32:23 +08:00
committed by GitHub

View File

@@ -236,13 +236,17 @@ func streamResponseGeminiChat2OpenAI(geminiResponse *GeminiChatResponse) *dto.Ch
var choice dto.ChatCompletionsStreamResponseChoice var choice dto.ChatCompletionsStreamResponseChoice
//choice.Delta.SetContentString(geminiResponse.GetResponseText()) //choice.Delta.SetContentString(geminiResponse.GetResponseText())
if len(geminiResponse.Candidates) > 0 && len(geminiResponse.Candidates[0].Content.Parts) > 0 { if len(geminiResponse.Candidates) > 0 && len(geminiResponse.Candidates[0].Content.Parts) > 0 {
respFirst := geminiResponse.Candidates[0].Content.Parts[0] respFirstParts := geminiResponse.Candidates[0].Content.Parts
if respFirst.FunctionCall != nil { if respFirstParts[0].FunctionCall != nil {
// function response // function response
choice.Delta.ToolCalls = getToolCalls(&geminiResponse.Candidates[0]) choice.Delta.ToolCalls = getToolCalls(&geminiResponse.Candidates[0])
} else { } else {
// text response // text response
choice.Delta.SetContentString(respFirst.Text) var texts []string
for _, part := range respFirstParts {
texts = append(texts, part.Text)
}
choice.Delta.SetContentString(strings.Join(texts, "\n"))
} }
} }
var response dto.ChatCompletionsStreamResponse var response dto.ChatCompletionsStreamResponse