فهرست منبع

Merge pull request #672 from Yan-Zero/main

fix: add index in the tool calls when chat by stream (gemini)
Calcium-Ion 1 سال پیش
والد
کامیت
458dd1bd9d
2فایلهای تغییر یافته به همراه5 افزوده شده و 1 حذف شده
  1. 4 0
      dto/openai_response.go
  2. 1 1
      relay/channel/gemini/relay-gemini.go

+ 4 - 0
dto/openai_response.go

@@ -86,6 +86,10 @@ type ToolCall struct {
 	Function FunctionCall `json:"function"`
 }
 
+func (c *ToolCall) SetIndex(i int) {
+	c.Index = &i
+}
+
 type FunctionCall struct {
 	Description string `json:"description,omitempty"`
 	Name        string `json:"name,omitempty"`

+ 1 - 1
relay/channel/gemini/relay-gemini.go

@@ -370,7 +370,6 @@ func responseGeminiChat2OpenAI(response *GeminiChatResponse) *dto.OpenAITextResp
 				choice.Message.SetToolCalls(tool_calls)
 				is_tool_call = true
 			}
-			// 过滤掉空行
 
 			choice.Message.SetStringContent(strings.Join(texts, "\n"))
 
@@ -425,6 +424,7 @@ func streamResponseGeminiChat2OpenAI(geminiResponse *GeminiChatResponse) (*dto.C
 			if part.FunctionCall != nil {
 				isTools = true
 				if call := getToolCall(&part); call != nil {
+					call.SetIndex(len(choice.Delta.ToolCalls))
 					choice.Delta.ToolCalls = append(choice.Delta.ToolCalls, *call)
 				}
 			} else {