2024-02-17 16:15:31 +00:00
|
|
|
package gemini
|
|
|
|
|
|
|
|
type ChatRequest struct {
|
|
|
|
Contents []ChatContent `json:"contents"`
|
|
|
|
SafetySettings []ChatSafetySettings `json:"safety_settings,omitempty"`
|
|
|
|
GenerationConfig ChatGenerationConfig `json:"generation_config,omitempty"`
|
|
|
|
Tools []ChatTools `json:"tools,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type InlineData struct {
|
|
|
|
MimeType string `json:"mimeType"`
|
|
|
|
Data string `json:"data"`
|
|
|
|
}
|
|
|
|
|
2024-04-24 13:26:45 +00:00
|
|
|
type FunctionCall struct {
|
|
|
|
FunctionName string `json:"name"`
|
|
|
|
Arguments any `json:"args"`
|
|
|
|
}
|
|
|
|
|
2024-02-17 16:15:31 +00:00
|
|
|
type Part struct {
|
2024-04-24 13:26:45 +00:00
|
|
|
Text string `json:"text,omitempty"`
|
|
|
|
InlineData *InlineData `json:"inlineData,omitempty"`
|
|
|
|
FunctionCall *FunctionCall `json:"functionCall,omitempty"`
|
2024-02-17 16:15:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type ChatContent struct {
|
|
|
|
Role string `json:"role,omitempty"`
|
|
|
|
Parts []Part `json:"parts"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type ChatSafetySettings struct {
|
|
|
|
Category string `json:"category"`
|
|
|
|
Threshold string `json:"threshold"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type ChatTools struct {
|
2024-04-24 13:26:45 +00:00
|
|
|
FunctionDeclarations any `json:"function_declarations,omitempty"`
|
2024-02-17 16:15:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type ChatGenerationConfig struct {
|
|
|
|
Temperature float64 `json:"temperature,omitempty"`
|
|
|
|
TopP float64 `json:"topP,omitempty"`
|
|
|
|
TopK float64 `json:"topK,omitempty"`
|
|
|
|
MaxOutputTokens int `json:"maxOutputTokens,omitempty"`
|
|
|
|
CandidateCount int `json:"candidateCount,omitempty"`
|
|
|
|
StopSequences []string `json:"stopSequences,omitempty"`
|
|
|
|
}
|