This commit is contained in:
andy committed 2026-08-18 18:23:11 +08:00
1 parent 648b274c55
commit 18cb51670c
14 files changed
+420 -171

No files matched your search

+5 -1
View File
@@ -94,7 +94,11 @@ func NewBailian(c Config, client HTTPClient) *Bailian {
parameters["thinking_mode"] = true
}
return map[string]any{"model": requestModel(r, c.Model), "input": map[string]any{"messages": []any{map[string]any{"role": "user", "content": content}}}, "parameters": parameters}
}, headers: func(r *http.Request) { r.Header.Set("X-DashScope-Async", "enable") }, decode: decodeBailian}
}, headers: func(r *http.Request) {
if r.Method == http.MethodPost {
r.Header.Set("X-DashScope-Async", "enable")
}
}, decode: decodeBailian}
return &Bailian{a}
}
func (a *Bailian) Submit(c context.Context, r Request) (Result, error) { return a.submit(c, r) }
@@ -61,6 +61,36 @@ func TestHTTPAdaptersMapRequestsAndResponses(t *testing.T) {
}
}
func TestBailianOnlyEnablesAsyncModeWhenSubmitting(t *testing.T) {
var requests []*http.Request
client := roundTripFunc(func(request *http.Request) (*http.Response, error) {
requests = append(requests, request.Clone(request.Context()))
return &http.Response{
StatusCode: http.StatusOK,
Body: io.NopCloser(strings.NewReader(`{"output":{"task_id":"task-1","task_status":"PENDING"}}`)),
Header: http.Header{},
}, nil
})
adapter := NewBailian(Config{BaseURL: "https://b.test", APIKey: "secret", Model: "wan"}, client)
if _, err := adapter.Submit(context.Background(), Request{Capability: "image.generate", Prompt: "hello"}); err != nil {
t.Fatal(err)
}
if _, err := adapter.Query(context.Background(), "task-1"); err != nil {
t.Fatal(err)
}
if len(requests) != 2 {
t.Fatalf("requests=%d want=2", len(requests))
}
if got := requests[0].Header.Get("X-DashScope-Async"); got != "enable" {
t.Fatalf("submit X-DashScope-Async=%q want=enable", got)
}
if got := requests[1].Header.Get("X-DashScope-Async"); got != "" {
t.Fatalf("query X-DashScope-Async=%q want empty", got)
}
}
func TestVolcengineSignsSubmitAndMapsResult(t *testing.T) {
var request *http.Request
client := roundTripFunc(func(r *http.Request) (*http.Response, error) {