feat(runtime): 适配推理模式开关
This commit is contained in:
@@ -138,6 +138,27 @@ func TestWriteCompatibleTaskResponseReturnsJSONWhenStreamIsFalse(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestWriteCompatibleTaskResponseMapsInvalidParameterToBadRequest(t *testing.T) {
|
||||
executor := &fakeTaskExecutor{
|
||||
runErr: &clients.ClientError{
|
||||
Code: "invalid_parameter",
|
||||
Message: "reasoning_effort must be one of: none, minimal, low, medium, high, xhigh",
|
||||
Retryable: false,
|
||||
},
|
||||
}
|
||||
req := httptest.NewRequest(http.MethodPost, "/api/v1/chat/completions", nil)
|
||||
recorder := httptest.NewRecorder()
|
||||
|
||||
writeCompatibleTaskResponse(context.Background(), recorder, req, executor, "chat.completions", "gpt-test", store.GatewayTask{ID: "task-test"}, &auth.User{}, false, false)
|
||||
|
||||
if recorder.Code != http.StatusBadRequest {
|
||||
t.Fatalf("status=%d want=%d body=%s", recorder.Code, http.StatusBadRequest, recorder.Body.String())
|
||||
}
|
||||
if !strings.Contains(recorder.Body.String(), "invalid_parameter") {
|
||||
t.Fatalf("response should include invalid_parameter code: %s", recorder.Body.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestWriteCompatibleTaskResponseReturnsSSEWhenStreamIsTrue(t *testing.T) {
|
||||
executor := &fakeTaskExecutor{
|
||||
deltas: []clients.StreamDeltaEvent{{Text: "hel"}, {Text: "lo"}},
|
||||
@@ -284,15 +305,22 @@ type fakeTaskExecutor struct {
|
||||
streamCalls int
|
||||
deltas []clients.StreamDeltaEvent
|
||||
output map[string]any
|
||||
runErr error
|
||||
}
|
||||
|
||||
func (f *fakeTaskExecutor) Execute(context.Context, store.GatewayTask, *auth.User) (runner.Result, error) {
|
||||
f.executeCalls++
|
||||
if f.runErr != nil {
|
||||
return runner.Result{}, f.runErr
|
||||
}
|
||||
return runner.Result{Output: f.output}, nil
|
||||
}
|
||||
|
||||
func (f *fakeTaskExecutor) ExecuteStream(_ context.Context, _ store.GatewayTask, _ *auth.User, onDelta clients.StreamDelta) (runner.Result, error) {
|
||||
f.streamCalls++
|
||||
if f.runErr != nil {
|
||||
return runner.Result{}, f.runErr
|
||||
}
|
||||
for _, delta := range f.deltas {
|
||||
if err := onDelta(delta); err != nil {
|
||||
return runner.Result{}, err
|
||||
|
||||
Reference in New Issue
Block a user