feat(*): 模型渠道 - 支持系统模型图标并升级 Agnes 视频协议
This commit is contained in:
@@ -67,6 +67,28 @@ func TestAuthorizeCustomRelayAllowsModelsAndAgentEndpoints(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestAuthorizeCustomRelayAllowsOnlyOfficialAgnesPollQuery(t *testing.T) {
|
||||
target, err := url.Parse("https://apihub.agnes-ai.com/agnesapi?video_id=video-1&model_name=agnes-video-2.5")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := authorizeCustomRelay(http.MethodGet, target, "openai", ""); err != nil {
|
||||
t.Fatalf("authorizeCustomRelay() Agnes poll error = %v", err)
|
||||
}
|
||||
for _, raw := range []string{
|
||||
"https://apihub.agnes-ai.com/agnesapi?video_id=video-1",
|
||||
"https://apihub.agnes-ai.com/agnesapi?video_id=video-1&model_name=agnes-video-2.5&extra=1",
|
||||
} {
|
||||
invalid, parseErr := url.Parse(raw)
|
||||
if parseErr != nil {
|
||||
t.Fatal(parseErr)
|
||||
}
|
||||
if err := authorizeCustomRelay(http.MethodGet, invalid, "openai", ""); err == nil {
|
||||
t.Fatalf("authorizeCustomRelay(%q) should fail", raw)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestAuthorizeCustomRelayRejectsArbitraryRequestsAndCredentialQueries(t *testing.T) {
|
||||
tests := []struct {
|
||||
method string
|
||||
@@ -148,6 +170,23 @@ func TestAuthorizeSystemProxyMiniMaxVideoCreateAndPoll(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestAuthorizeSystemProxyAgnesVideoCreateAndPoll(t *testing.T) {
|
||||
channel := &model.ModelChannel{APIFormat: "openai", ModelsJSON: `["agnes-video-2.5"]`}
|
||||
createBody := []byte(`{"model":"agnes-video-2.5","prompt":"test","mode":"text","seconds":"5","size":"720P"}`)
|
||||
if err := authorizeSystemProxy(channel, model.ChannelInterfaceAgnesVideo, http.MethodPost, "/videos", "application/json", createBody); err != nil {
|
||||
t.Fatalf("Agnes create authorization error = %v", err)
|
||||
}
|
||||
if err := authorizeSystemProxy(channel, model.ChannelInterfaceAgnesVideo, http.MethodGet, "/agnesapi", "", nil); err != nil {
|
||||
t.Fatalf("Agnes poll authorization error = %v", err)
|
||||
}
|
||||
if err := authorizeSystemProxy(channel, model.ChannelInterfaceAgnesVideo, http.MethodPost, "/videos", "multipart/form-data; boundary=test", createBody); err == nil {
|
||||
t.Fatal("expected Agnes multipart create to be rejected")
|
||||
}
|
||||
if err := authorizeSystemProxy(channel, model.ChannelInterfaceAgnesVideo, http.MethodGet, "/videos/task-1", "", nil); err == nil {
|
||||
t.Fatal("expected unsupported Agnes poll path to be rejected")
|
||||
}
|
||||
}
|
||||
|
||||
func TestAuthorizeSystemProxyVolcengineArkImageOnlyAllowsGenerations(t *testing.T) {
|
||||
body := []byte(`{"model":"doubao-seedream-test"}`)
|
||||
channel := &model.ModelChannel{APIFormat: "openai", ModelsJSON: `["doubao-seedream-test"]`}
|
||||
|
||||
Reference in New Issue
Block a user