History

fix(kimi): reduce redundant payload cloning and simplify translation calls

Luis Pater committed 9 months agov6.8.3

Commit 78ef04f1 parent b7e4f001 file · +9 −7Browse files

Unified · Split

internal/runtime/executor/kimi_executor.go+9−7
@@ -79,10 +79,11 @@ func (e *KimiExecutor) Execute(ctx context.Context, auth *cliproxyauth.Auth, req · 78 unmodified lines
7979 defer reporter.trackFailure(ctx, &err)
8080
8181 to := sdktranslator.FromString("openai")
82− originalPayload := bytes.Clone(req.Payload)
82+ originalPayloadSource := req.Payload
8383 if len(opts.OriginalRequest) > 0 {
84− originalPayload = bytes.Clone(opts.OriginalRequest)
84+ originalPayloadSource = opts.OriginalRequest
8585 }
86+ originalPayload := bytes.Clone(originalPayloadSource)
8687 originalTranslated := sdktranslator.TranslateRequest(from, to, baseModel, originalPayload, false)
8788 body := sdktranslator.TranslateRequest(from, to, baseModel, bytes.Clone(req.Payload), false)
8889
@@ -154,7 +155,7 @@ func (e *KimiExecutor) Execute(ctx context.Context, auth *cliproxyauth.Auth, req · 65 unmodified lines
154155 var param any
155156 // Note: TranslateNonStream uses req.Model (original with suffix) to preserve
156157 // the original model name in the response for client compatibility.
157− out := sdktranslator.TranslateNonStream(ctx, to, from, req.Model, bytes.Clone(opts.OriginalRequest), body, data, &param)
158+ out := sdktranslator.TranslateNonStream(ctx, to, from, req.Model, opts.OriginalRequest, body, data, &param)
158159 resp = cliproxyexecutor.Response{Payload: []byte(out)}
159160 return resp, nil
160161 }
@@ -174,10 +175,11 @@ func (e *KimiExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth.Aut · 13 unmodified lines
174175 defer reporter.trackFailure(ctx, &err)
175176
176177 to := sdktranslator.FromString("openai")
177− originalPayload := bytes.Clone(req.Payload)
178+ originalPayloadSource := req.Payload
178179 if len(opts.OriginalRequest) > 0 {
179− originalPayload = bytes.Clone(opts.OriginalRequest)
180+ originalPayloadSource = opts.OriginalRequest
180181 }
182+ originalPayload := bytes.Clone(originalPayloadSource)
181183 originalTranslated := sdktranslator.TranslateRequest(from, to, baseModel, originalPayload, true)
182184 body := sdktranslator.TranslateRequest(from, to, baseModel, bytes.Clone(req.Payload), true)
183185
@@ -259,12 +261,12 @@ func (e *KimiExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth.Aut · 75 unmodified lines
259261 if detail, ok := parseOpenAIStreamUsage(line); ok {
260262 reporter.publish(ctx, detail)
261263 }
262− chunks := sdktranslator.TranslateStream(ctx, to, from, req.Model, bytes.Clone(opts.OriginalRequest), body, bytes.Clone(line), &param)
264+ chunks := sdktranslator.TranslateStream(ctx, to, from, req.Model, opts.OriginalRequest, body, bytes.Clone(line), &param)
263265 for i := range chunks {
264266 out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunks[i])}
265267 }
266268 }
267− doneChunks := sdktranslator.TranslateStream(ctx, to, from, req.Model, bytes.Clone(opts.OriginalRequest), body, bytes.Clone([]byte("[DONE]")), &param)
269+ doneChunks := sdktranslator.TranslateStream(ctx, to, from, req.Model, opts.OriginalRequest, body, []byte("[DONE]"), &param)
268270 for i := range doneChunks {
269271 out <- cliproxyexecutor.StreamChunk{Payload: []byte(doneChunks[i])}
270272 }