History

refactor(image): avoid using json.Marshal

TinyCoder committed 10 months ago

Commit a7fc2ee1 parent 671558a3 files · +16 −47Browse files

Unified · Split

3 files
  1. internal/translator/antigravity/openai/chat-completions/antigravity_openai_response.go +4 −12
  2. internal/translator/gemini-cli/openai/chat-completions/gemini-cli_openai_response.go +4 −12
  3. internal/translator/gemini/openai/chat-completions/gemini_openai_response.go +8 −23
internal/translator/antigravity/openai/chat-completions/antigravity_openai_response.go+4−12
@@ -8,7 +8,6 @@ package chat_completions · 7 unmodified lines
88 import (
99 "bytes"
1010 "context"
11− "encoding/json"
1211 "fmt"
1312 "strings"
1413 "sync/atomic"
@@ -187,18 +186,11 @@ func ConvertAntigravityResponseToOpenAI(_ context.Context, _ string, originalReq · 172 unmodified lines
187186 template, _ = sjson.SetRaw(template, "choices.0.delta.images", `[]`)
188187 }
189188 imageIndex := len(gjson.Get(template, "choices.0.delta.images").Array())
190− imagePayload, err := json.Marshal(map[string]any{
191− "index": imageIndex,
192− "type": "image_url",
193− "image_url": map[string]string{
194− "url": imageURL,
195− },
196− })
197− if err != nil {
198− continue
199− }
189+ imagePayload := `{"type":"image_url","image_url":{"url":""}}`
190+ imagePayload, _ = sjson.Set(imagePayload, "index", imageIndex)
191+ imagePayload, _ = sjson.Set(imagePayload, "image_url.url", imageURL)
200192 template, _ = sjson.Set(template, "choices.0.delta.role", "assistant")
201− template, _ = sjson.SetRaw(template, "choices.0.delta.images.-1", string(imagePayload))
193+ template, _ = sjson.SetRaw(template, "choices.0.delta.images.-1", imagePayload)
202194 }
203195 }
204196 }
internal/translator/gemini-cli/openai/chat-completions/gemini-cli_openai_response.go+4−12
@@ -8,7 +8,6 @@ package chat_completions · 7 unmodified lines
88 import (
99 "bytes"
1010 "context"
11− "encoding/json"
1211 "fmt"
1312 "strings"
1413 "sync/atomic"
@@ -176,18 +175,11 @@ func ConvertCliResponseToOpenAI(_ context.Context, _ string, originalRequestRawJ · 161 unmodified lines
176175 template, _ = sjson.SetRaw(template, "choices.0.delta.images", `[]`)
177176 }
178177 imageIndex := len(gjson.Get(template, "choices.0.delta.images").Array())
179− imagePayload, err := json.Marshal(map[string]any{
180− "index": imageIndex,
181− "type": "image_url",
182− "image_url": map[string]string{
183− "url": imageURL,
184− },
185− })
186− if err != nil {
187− continue
188− }
178+ imagePayload := `{"type":"image_url","image_url":{"url":""}}`
179+ imagePayload, _ = sjson.Set(imagePayload, "index", imageIndex)
180+ imagePayload, _ = sjson.Set(imagePayload, "image_url.url", imageURL)
189181 template, _ = sjson.Set(template, "choices.0.delta.role", "assistant")
190− template, _ = sjson.SetRaw(template, "choices.0.delta.images.-1", string(imagePayload))
182+ template, _ = sjson.SetRaw(template, "choices.0.delta.images.-1", imagePayload)
191183 }
192184 }
193185 }
internal/translator/gemini/openai/chat-completions/gemini_openai_response.go+8−23
@@ -8,7 +8,6 @@ package chat_completions · 7 unmodified lines
88 import (
99 "bytes"
1010 "context"
11− "encoding/json"
1211 "fmt"
1312 "strings"
1413 "sync/atomic"
@@ -188,18 +187,11 @@ func ConvertGeminiResponseToOpenAI(_ context.Context, _ string, originalRequestR · 173 unmodified lines
188187 template, _ = sjson.SetRaw(template, "choices.0.delta.images", `[]`)
189188 }
190189 imageIndex := len(gjson.Get(template, "choices.0.delta.images").Array())
191− imagePayload, err := json.Marshal(map[string]any{
192− "index": imageIndex,
193− "type": "image_url",
194− "image_url": map[string]string{
195− "url": imageURL,
196− },
197− })
198− if err != nil {
199− continue
200− }
190+ imagePayload := `{"type":"image_url","image_url":{"url":""}}`
191+ imagePayload, _ = sjson.Set(imagePayload, "index", imageIndex)
192+ imagePayload, _ = sjson.Set(imagePayload, "image_url.url", imageURL)
201193 template, _ = sjson.Set(template, "choices.0.delta.role", "assistant")
202− template, _ = sjson.SetRaw(template, "choices.0.delta.images.-1", string(imagePayload))
194+ template, _ = sjson.SetRaw(template, "choices.0.delta.images.-1", imagePayload)
203195 }
204196 }
205197 }
@@ -331,18 +323,11 @@ func ConvertGeminiResponseToOpenAINonStream(_ context.Context, _ string, origina · 125 unmodified lines
331323 template, _ = sjson.SetRaw(template, "choices.0.message.images", `[]`)
332324 }
333325 imageIndex := len(gjson.Get(template, "choices.0.message.images").Array())
334− imagePayload, err := json.Marshal(map[string]any{
335− "index": imageIndex,
336− "type": "image_url",
337− "image_url": map[string]string{
338− "url": imageURL,
339− },
340− })
341− if err != nil {
342− continue
343− }
326+ imagePayload := `{"type":"image_url","image_url":{"url":""}}`
327+ imagePayload, _ = sjson.Set(imagePayload, "index", imageIndex)
328+ imagePayload, _ = sjson.Set(imagePayload, "image_url.url", imageURL)
344329 template, _ = sjson.Set(template, "choices.0.message.role", "assistant")
345− template, _ = sjson.SetRaw(template, "choices.0.message.images.-1", string(imagePayload))
330+ template, _ = sjson.SetRaw(template, "choices.0.message.images.-1", imagePayload)
346331 }
347332 }
348333 }