fix(provider/gemini): prevent empty parts in assistant messages
This commit is contained in:
parent
d4c8d057e4
commit
18f020cacd
1 changed files with 9 additions and 7 deletions
|
|
@ -69,19 +69,16 @@ func (g *geminiClient) convertMessages(messages []message.Message) []*genai.Cont
|
|||
Role: "user",
|
||||
})
|
||||
case message.Assistant:
|
||||
content := &genai.Content{
|
||||
Role: "model",
|
||||
Parts: []*genai.Part{},
|
||||
}
|
||||
var assistantParts []*genai.Part
|
||||
|
||||
if msg.Content().String() != "" {
|
||||
content.Parts = append(content.Parts, &genai.Part{Text: msg.Content().String()})
|
||||
assistantParts = append(assistantParts, &genai.Part{Text: msg.Content().String()})
|
||||
}
|
||||
|
||||
if len(msg.ToolCalls()) > 0 {
|
||||
for _, call := range msg.ToolCalls() {
|
||||
args, _ := parseJsonToMap(call.Input)
|
||||
content.Parts = append(content.Parts, &genai.Part{
|
||||
assistantParts = append(assistantParts, &genai.Part{
|
||||
FunctionCall: &genai.FunctionCall{
|
||||
Name: call.Name,
|
||||
Args: args,
|
||||
|
|
@ -90,7 +87,12 @@ func (g *geminiClient) convertMessages(messages []message.Message) []*genai.Cont
|
|||
}
|
||||
}
|
||||
|
||||
history = append(history, content)
|
||||
if len(assistantParts) > 0 {
|
||||
history = append(history, &genai.Content{
|
||||
Role: "model",
|
||||
Parts: assistantParts,
|
||||
})
|
||||
}
|
||||
|
||||
case message.Tool:
|
||||
for _, result := range msg.ToolResults() {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue