Skip to content

Commit 6534396

Browse files
committed
Fixed: #606
fix: unify response field naming across translators Standardize `text` to `delta` and add missing `output` field in all response payloads for consistency across OpenAI, Claude, and Gemini translators.
1 parent 89254cf commit 6534396

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

internal/translator/claude/openai/responses/claude_openai-responses_response.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func ConvertClaudeResponseToOpenAIResponses(ctx context.Context, modelName strin
9595
}
9696
}
9797
// response.created
98-
created := `{"type":"response.created","sequence_number":0,"response":{"id":"","object":"response","created_at":0,"status":"in_progress","background":false,"error":null,"instructions":""}}`
98+
created := `{"type":"response.created","sequence_number":0,"response":{"id":"","object":"response","created_at":0,"status":"in_progress","background":false,"error":null,"output":[]}}`
9999
created, _ = sjson.Set(created, "sequence_number", nextSeq())
100100
created, _ = sjson.Set(created, "response.id", st.ResponseID)
101101
created, _ = sjson.Set(created, "response.created_at", st.CreatedAt)
@@ -197,11 +197,11 @@ func ConvertClaudeResponseToOpenAIResponses(ctx context.Context, modelName strin
197197
if st.ReasoningActive {
198198
if t := d.Get("thinking"); t.Exists() {
199199
st.ReasoningBuf.WriteString(t.String())
200-
msg := `{"type":"response.reasoning_summary_text.delta","sequence_number":0,"item_id":"","output_index":0,"summary_index":0,"text":""}`
200+
msg := `{"type":"response.reasoning_summary_text.delta","sequence_number":0,"item_id":"","output_index":0,"summary_index":0,"delta":""}`
201201
msg, _ = sjson.Set(msg, "sequence_number", nextSeq())
202202
msg, _ = sjson.Set(msg, "item_id", st.ReasoningItemID)
203203
msg, _ = sjson.Set(msg, "output_index", st.ReasoningIndex)
204-
msg, _ = sjson.Set(msg, "text", t.String())
204+
msg, _ = sjson.Set(msg, "delta", t.String())
205205
out = append(out, emitEvent("response.reasoning_summary_text.delta", msg))
206206
}
207207
}

internal/translator/gemini/openai/responses/gemini_openai-responses_response.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ func ConvertGeminiResponseToOpenAIResponses(_ context.Context, modelName string,
117117
st.CreatedAt = time.Now().Unix()
118118
}
119119

120-
created := `{"type":"response.created","sequence_number":0,"response":{"id":"","object":"response","created_at":0,"status":"in_progress","background":false,"error":null}}`
120+
created := `{"type":"response.created","sequence_number":0,"response":{"id":"","object":"response","created_at":0,"status":"in_progress","background":false,"error":null,"output":[]}}`
121121
created, _ = sjson.Set(created, "sequence_number", nextSeq())
122122
created, _ = sjson.Set(created, "response.id", st.ResponseID)
123123
created, _ = sjson.Set(created, "response.created_at", st.CreatedAt)
@@ -160,11 +160,11 @@ func ConvertGeminiResponseToOpenAIResponses(_ context.Context, modelName string,
160160
}
161161
if t := part.Get("text"); t.Exists() && t.String() != "" {
162162
st.ReasoningBuf.WriteString(t.String())
163-
msg := `{"type":"response.reasoning_summary_text.delta","sequence_number":0,"item_id":"","output_index":0,"summary_index":0,"text":""}`
163+
msg := `{"type":"response.reasoning_summary_text.delta","sequence_number":0,"item_id":"","output_index":0,"summary_index":0,"delta":""}`
164164
msg, _ = sjson.Set(msg, "sequence_number", nextSeq())
165165
msg, _ = sjson.Set(msg, "item_id", st.ReasoningItemID)
166166
msg, _ = sjson.Set(msg, "output_index", st.ReasoningIndex)
167-
msg, _ = sjson.Set(msg, "text", t.String())
167+
msg, _ = sjson.Set(msg, "delta", t.String())
168168
out = append(out, emitEvent("response.reasoning_summary_text.delta", msg))
169169
}
170170
return true

internal/translator/openai/openai/responses/openai_openai-responses_response.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ func ConvertOpenAIChatCompletionsResponseToOpenAIResponses(ctx context.Context,
143143
st.ReasoningTokens = 0
144144
st.UsageSeen = false
145145
// response.created
146-
created := `{"type":"response.created","sequence_number":0,"response":{"id":"","object":"response","created_at":0,"status":"in_progress","background":false,"error":null}}`
146+
created := `{"type":"response.created","sequence_number":0,"response":{"id":"","object":"response","created_at":0,"status":"in_progress","background":false,"error":null,"output":[]}}`
147147
created, _ = sjson.Set(created, "sequence_number", nextSeq())
148148
created, _ = sjson.Set(created, "response.id", st.ResponseID)
149149
created, _ = sjson.Set(created, "response.created_at", st.Created)
@@ -216,11 +216,11 @@ func ConvertOpenAIChatCompletionsResponseToOpenAIResponses(ctx context.Context,
216216
}
217217
// Append incremental text to reasoning buffer
218218
st.ReasoningBuf.WriteString(rc.String())
219-
msg := `{"type":"response.reasoning_summary_text.delta","sequence_number":0,"item_id":"","output_index":0,"summary_index":0,"text":""}`
219+
msg := `{"type":"response.reasoning_summary_text.delta","sequence_number":0,"item_id":"","output_index":0,"summary_index":0,"delta":""}`
220220
msg, _ = sjson.Set(msg, "sequence_number", nextSeq())
221221
msg, _ = sjson.Set(msg, "item_id", st.ReasoningID)
222222
msg, _ = sjson.Set(msg, "output_index", st.ReasoningIndex)
223-
msg, _ = sjson.Set(msg, "text", rc.String())
223+
msg, _ = sjson.Set(msg, "delta", rc.String())
224224
out = append(out, emitRespEvent("response.reasoning_summary_text.delta", msg))
225225
}
226226

0 commit comments

Comments
 (0)