Fixed gemini system prompt handling

This commit is contained in:
Matt Low 2024-06-01 19:47:08 +00:00
parent 60a474d516
commit 2580087b4d
2 changed files with 15 additions and 6 deletions

View File

@ -158,8 +158,7 @@ func createGenerateContentRequest(
} }
request := &GenerateContentRequest{ request := &GenerateContentRequest{
Contents: requestContents, Contents: requestContents,
SystemInstructions: system,
GenerationConfig: &GenerationConfig{ GenerationConfig: &GenerationConfig{
MaxOutputTokens: &params.MaxTokens, MaxOutputTokens: &params.MaxTokens,
Temperature: &params.Temperature, Temperature: &params.Temperature,
@ -167,6 +166,16 @@ func createGenerateContentRequest(
}, },
} }
if system != "" {
request.SystemInstruction = &Content{
Parts: []ContentPart{
{
Text: system,
},
},
}
}
if len(params.ToolBag) > 0 { if len(params.ToolBag) > 0 {
request.Tools = convertTools(params.ToolBag) request.Tools = convertTools(params.ToolBag)
} }

View File

@ -34,10 +34,10 @@ type GenerationConfig struct {
} }
type GenerateContentRequest struct { type GenerateContentRequest struct {
Contents []Content `json:"contents"` Contents []Content `json:"contents"`
Tools []Tool `json:"tools,omitempty"` Tools []Tool `json:"tools,omitempty"`
SystemInstructions string `json:"systemInstructions,omitempty"` SystemInstruction *Content `json:"systemInstruction,omitempty"`
GenerationConfig *GenerationConfig `json:"generationConfig,omitempty"` GenerationConfig *GenerationConfig `json:"generationConfig,omitempty"`
} }
type Candidate struct { type Candidate struct {