on main help sign in
fix: fix openai provider
b5cbb38Kujtim Hoxha
internal/llm/provider/openai.go+7
@@ -77,13 +77,16 @@ func (o *openaiClient) convertMessages(messages []message.Message) (openaiMessag
77 Role: "assistant",
77 Role: "assistant",
78 }
78 }
79
79
80+ hasContent := false
80 if msg.Content().String() != "" {
81 if msg.Content().String() != "" {
82+ hasContent = true
81 assistantMsg.Content = openai.ChatCompletionAssistantMessageParamContentUnion{
83 assistantMsg.Content = openai.ChatCompletionAssistantMessageParamContentUnion{
82 OfString: openai.String(msg.Content().String()),
84 OfString: openai.String(msg.Content().String()),
83 }
85 }
84 }
86 }
85
87
86 if len(msg.ToolCalls()) > 0 {
88 if len(msg.ToolCalls()) > 0 {
89+ hasContent = true
87 assistantMsg.ToolCalls = make([]openai.ChatCompletionMessageToolCallParam, len(msg.ToolCalls()))
90 assistantMsg.ToolCalls = make([]openai.ChatCompletionMessageToolCallParam, len(msg.ToolCalls()))
88 for i, call := range msg.ToolCalls() {
91 for i, call := range msg.ToolCalls() {
89 assistantMsg.ToolCalls[i] = openai.ChatCompletionMessageToolCallParam{
92 assistantMsg.ToolCalls[i] = openai.ChatCompletionMessageToolCallParam{
@@ -96,6 +99,10 @@ func (o *openaiClient) convertMessages(messages []message.Message) (openaiMessag
96 }
99 }
97 }
100 }
98 }
101 }
102+ if !hasContent {
103+ slog.Warn("There is a message without content, investigate, this should not happen")
104+ continue
105+ }
99
106
100 openaiMessages = append(openaiMessages, openai.ChatCompletionMessageParamUnion{
107 openaiMessages = append(openaiMessages, openai.ChatCompletionMessageParamUnion{
101 OfAssistant: &assistantMsg,
108 OfAssistant: &assistantMsg,