diff --git a/plugins/wasm-go/extensions/ai-proxy/provider/azure.go b/plugins/wasm-go/extensions/ai-proxy/provider/azure.go index 1021ebe86..2dcba2f8f 100644 --- a/plugins/wasm-go/extensions/ai-proxy/provider/azure.go +++ b/plugins/wasm-go/extensions/ai-proxy/provider/azure.go @@ -55,19 +55,21 @@ func (m *azureProvider) GetProviderType() string { } func (m *azureProvider) OnRequestHeaders(ctx wrapper.HttpContext, apiName ApiName, log wrapper.Log) (types.Action, error) { - if apiName != ApiNameChatCompletion { - return types.ActionContinue, errUnsupportedApiName - } _ = util.OverwriteRequestPath(m.serviceUrl.RequestURI()) _ = util.OverwriteRequestHost(m.serviceUrl.Host) _ = proxywasm.ReplaceHttpRequestHeader("api-key", m.config.apiTokens[0]) - _ = proxywasm.RemoveHttpRequestHeader("Content-Length") + if apiName == ApiNameChatCompletion { + _ = proxywasm.RemoveHttpRequestHeader("Content-Length") + } else { + ctx.DontReadRequestBody() + } return types.ActionContinue, nil } func (m *azureProvider) OnRequestBody(ctx wrapper.HttpContext, apiName ApiName, body []byte, log wrapper.Log) (types.Action, error) { if apiName != ApiNameChatCompletion { - return types.ActionContinue, errUnsupportedApiName + // We don't need to process the request body for other APIs. + return types.ActionContinue, nil } request := &chatCompletionRequest{} if err := decodeChatCompletionRequest(body, request); err != nil { diff --git a/plugins/wasm-go/extensions/ai-proxy/provider/openai.go b/plugins/wasm-go/extensions/ai-proxy/provider/openai.go index 321ccc0dd..dc989bf0c 100644 --- a/plugins/wasm-go/extensions/ai-proxy/provider/openai.go +++ b/plugins/wasm-go/extensions/ai-proxy/provider/openai.go @@ -62,6 +62,7 @@ func (m *openaiProvider) OnRequestHeaders(ctx wrapper.HttpContext, apiName ApiNa case ApiNameChatCompletion: _ = util.OverwriteRequestPath(defaultOpenaiChatCompletionPath) case ApiNameEmbeddings: + ctx.DontReadRequestBody() _ = util.OverwriteRequestPath(defaultOpenaiEmbeddingsPath) } } else {