diff --git a/plugins/wasm-go/extensions/ai-proxy/provider/openai.go b/plugins/wasm-go/extensions/ai-proxy/provider/openai.go index 4f51a49c2..f5e0d487b 100644 --- a/plugins/wasm-go/extensions/ai-proxy/provider/openai.go +++ b/plugins/wasm-go/extensions/ai-proxy/provider/openai.go @@ -40,6 +40,7 @@ func (m *openaiProviderInitializer) DefaultCapabilities() map[string]string { string(ApiNameBatches): PathOpenAIBatches, string(ApiNameRetrieveBatch): PathOpenAIRetrieveBatch, string(ApiNameCancelBatch): PathOpenAICancelBatch, + string(ApiNameResponses): PathOpenAIResponses, } } @@ -47,7 +48,11 @@ func isDirectPath(path string) bool { return strings.HasSuffix(path, "/completions") || strings.HasSuffix(path, "/embeddings") || strings.HasSuffix(path, "/audio/speech") || - strings.HasSuffix(path, "/images/generations") + strings.HasSuffix(path, "/images/generations") || + strings.HasSuffix(path, "/images/variations") || + strings.HasSuffix(path, "/images/edits") || + strings.HasSuffix(path, "/models") || + strings.HasSuffix(path, "/responses") } func (m *openaiProviderInitializer) CreateProvider(config ProviderConfig) (Provider, error) { @@ -101,15 +106,14 @@ func (m *openaiProvider) OnRequestHeaders(ctx wrapper.HttpContext, apiName ApiNa } func (m *openaiProvider) TransformRequestHeaders(ctx wrapper.HttpContext, apiName ApiName, headers http.Header) { - if m.customPath != "" { - if m.isDirectCustomPath || apiName == "" { - util.OverwriteRequestPathHeader(headers, m.customPath) - } else { - util.OverwriteRequestPathHeaderByCapability(headers, string(apiName), m.config.capabilities) - } - } else { + if m.isDirectCustomPath { + util.OverwriteRequestPathHeader(headers, m.customPath) + } + + if apiName != "" { util.OverwriteRequestPathHeaderByCapability(headers, string(apiName), m.config.capabilities) } + if m.customDomain != "" { util.OverwriteRequestHostHeader(headers, m.customDomain) } else { diff --git a/plugins/wasm-go/extensions/ai-proxy/provider/provider.go b/plugins/wasm-go/extensions/ai-proxy/provider/provider.go index 3d6e08b00..81a4c0add 100644 --- a/plugins/wasm-go/extensions/ai-proxy/provider/provider.go +++ b/plugins/wasm-go/extensions/ai-proxy/provider/provider.go @@ -41,6 +41,7 @@ const ( ApiNameRetrieveBatch ApiName = "openai/v1/retrievebatch" ApiNameCancelBatch ApiName = "openai/v1/cancelbatch" ApiNameModels ApiName = "openai/v1/models" + ApiNameResponses ApiName = "openai/v1/responses" PathOpenAICompletions = "/v1/completions" PathOpenAIChatCompletions = "/v1/chat/completions" @@ -56,6 +57,7 @@ const ( PathOpenAIImageEdit = "/v1/images/edits" PathOpenAIImageVariation = "/v1/images/variations" PathOpenAIAudioSpeech = "/v1/audio/speech" + PathOpenAIResponses = "/v1/responses" // TODO: 以下是一些非标准的API名称,需要进一步确认是否支持 ApiNameCohereV1Rerank ApiName = "cohere/v1/rerank"