Skip to content

Commit

Permalink
refactor: Simplify Gemini function parameter handling
Browse files Browse the repository at this point in the history
- Removed redundant checks for non-empty properties in function parameters.
- Set function parameters to nil when no properties are needed, streamlining the logic for handling Gemini requests.
- Improved code clarity and maintainability by eliminating unnecessary complexity.
  • Loading branch information
Calcium-Ion committed Dec 22, 2024
1 parent 53ab2aa commit 656e809
Showing 1 changed file with 1 addition and 20 deletions.
21 changes: 1 addition & 20 deletions relay/channel/gemini/relay-gemini.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,30 +56,12 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest) (*GeminiChatReque
googleSearch = true
continue
}
// Ensure parameters has non-empty properties
if tool.Function.Parameters != nil {
params, ok := tool.Function.Parameters.(map[string]interface{})
if ok {
if props, hasProps := params["properties"].(map[string]interface{}); hasProps {
if len(props) == 0 {
// Add an empty property if no parameters needed
params["properties"] = map[string]interface{}{
"_": map[string]interface{}{
"type": "string",
"description": "No parameters needed",
},
}
// Update required field to match the property
params["required"] = []string{"_"}
} else {
// If properties exist, ensure required field matches existing properties
existingProps := make([]string, 0)
for propName := range props {
existingProps = append(existingProps, propName)
}
if len(existingProps) > 0 {
params["required"] = []string{existingProps[0]}
}
tool.Function.Parameters = nil
}
}
}
Expand All @@ -105,7 +87,6 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest) (*GeminiChatReque
},
}
}

if textRequest.ResponseFormat != nil && (textRequest.ResponseFormat.Type == "json_schema" || textRequest.ResponseFormat.Type == "json_object") {
geminiRequest.GenerationConfig.ResponseMimeType = "application/json"

Expand Down

0 comments on commit 656e809

Please sign in to comment.