diff --git a/dto/gemini.go b/dto/gemini.go index 03e0671f..d7e598db 100644 --- a/dto/gemini.go +++ b/dto/gemini.go @@ -141,6 +141,8 @@ func (r *GeminiChatRequest) SetTools(tools []GeminiChatTool) { type GeminiThinkingConfig struct { IncludeThoughts bool `json:"includeThoughts,omitempty"` ThinkingBudget *int `json:"thinkingBudget,omitempty"` + // TODO Conflict with thinkingbudget. + // ThinkingLevel json.RawMessage `json:"thinkingLevel,omitempty"` } func (c *GeminiThinkingConfig) SetThinkingBudget(budget int) { @@ -206,12 +208,15 @@ type GeminiFileData struct { } type GeminiPart struct { - Text string `json:"text,omitempty"` - Thought bool `json:"thought,omitempty"` - InlineData *GeminiInlineData `json:"inlineData,omitempty"` - FunctionCall *FunctionCall `json:"functionCall,omitempty"` - ThoughtSignature json.RawMessage `json:"thoughtSignature,omitempty"` - FunctionResponse *GeminiFunctionResponse `json:"functionResponse,omitempty"` + Text string `json:"text,omitempty"` + Thought bool `json:"thought,omitempty"` + InlineData *GeminiInlineData `json:"inlineData,omitempty"` + FunctionCall *FunctionCall `json:"functionCall,omitempty"` + ThoughtSignature json.RawMessage `json:"thoughtSignature,omitempty"` + FunctionResponse *GeminiFunctionResponse `json:"functionResponse,omitempty"` + // Optional. Media resolution for the input media. + MediaResolution json.RawMessage `json:"mediaResolution,omitempty"` + VideoMetadata json.RawMessage `json:"videoMetadata,omitempty"` FileData *GeminiFileData `json:"fileData,omitempty"` ExecutableCode *GeminiPartExecutableCode `json:"executableCode,omitempty"` CodeExecutionResult *GeminiPartCodeExecutionResult `json:"codeExecutionResult,omitempty"`