fix: assistant message

Kujtim Hoxha created

Change summary

internal/llm/provider/openai.go | 39 +++++++++-------------------------
1 file changed, 11 insertions(+), 28 deletions(-)

Detailed changes

internal/llm/provider/openai.go 🔗

@@ -125,33 +125,7 @@ func (o *openaiClient) convertMessages(messages []message.Message) (openaiMessag
 				Role: "assistant",
 			}
 
-			hasContent := false
-			if msg.Content().String() != "" {
-				hasContent = true
-				textBlock := openai.ChatCompletionContentPartTextParam{Text: msg.Content().String()}
-				if cache && !o.providerOptions.disableCache && isAnthropicModel {
-					textBlock.SetExtraFields(map[string]any{
-						"cache_control": map[string]string{
-							"type": "ephemeral",
-						},
-					})
-				}
-				assistantMsg.Content = openai.ChatCompletionAssistantMessageParamContentUnion{
-					OfArrayOfContentParts: []openai.ChatCompletionAssistantMessageParamContentArrayOfContentPartUnion{
-						{
-							OfText: &textBlock,
-						},
-					},
-				}
-				if !isAnthropicModel {
-					assistantMsg.Content = openai.ChatCompletionAssistantMessageParamContentUnion{
-						OfString: param.NewOpt(msg.Content().String()),
-					}
-				}
-			}
-
 			if len(msg.ToolCalls()) > 0 {
-				hasContent = true
 				assistantMsg.ToolCalls = make([]openai.ChatCompletionMessageToolCallParam, len(msg.ToolCalls()))
 				for i, call := range msg.ToolCalls() {
 					assistantMsg.ToolCalls[i] = openai.ChatCompletionMessageToolCallParam{
@@ -164,10 +138,19 @@ func (o *openaiClient) convertMessages(messages []message.Message) (openaiMessag
 					}
 				}
 			}
-			if !hasContent {
-				continue
+			if msg.Content().String() != "" {
+				assistantMsg.Content = openai.ChatCompletionAssistantMessageParamContentUnion{
+					OfString: param.NewOpt(msg.Content().Text),
+				}
 			}
 
+			if cache && !o.providerOptions.disableCache && isAnthropicModel {
+				assistantMsg.SetExtraFields(map[string]any{
+					"cache_control": map[string]string{
+						"type": "ephemeral",
+					},
+				})
+			}
 			openaiMessages = append(openaiMessages, openai.ChatCompletionMessageParamUnion{
 				OfAssistant: &assistantMsg,
 			})