mirror of
https://github.com/alibaba/higress.git
synced 2026-06-06 11:17:29 +08:00
Fix the error in the embedding interface under the AI proxy Qwen compatible mode. (#1928)
This commit is contained in:
@@ -22,12 +22,13 @@ import (
|
|||||||
const (
|
const (
|
||||||
qwenResultFormatMessage = "message"
|
qwenResultFormatMessage = "message"
|
||||||
|
|
||||||
qwenDefaultDomain = "dashscope.aliyuncs.com"
|
qwenDefaultDomain = "dashscope.aliyuncs.com"
|
||||||
qwenChatCompletionPath = "/api/v1/services/aigc/text-generation/generation"
|
qwenChatCompletionPath = "/api/v1/services/aigc/text-generation/generation"
|
||||||
qwenTextEmbeddingPath = "/api/v1/services/embeddings/text-embedding/text-embedding"
|
qwenTextEmbeddingPath = "/api/v1/services/embeddings/text-embedding/text-embedding"
|
||||||
qwenCompatiblePath = "/compatible-mode/v1/chat/completions"
|
qwenChatCompatiblePath = "/compatible-mode/v1/chat/completions"
|
||||||
qwenBailianPath = "/api/v1/apps"
|
qwenTextEmbeddingCompatiblePath = "/compatible-mode/v1/embeddings"
|
||||||
qwenMultimodalGenerationPath = "/api/v1/services/aigc/multimodal-generation/generation"
|
qwenBailianPath = "/api/v1/apps"
|
||||||
|
qwenMultimodalGenerationPath = "/api/v1/services/aigc/multimodal-generation/generation"
|
||||||
|
|
||||||
qwenTopPMin = 0.000001
|
qwenTopPMin = 0.000001
|
||||||
qwenTopPMax = 0.999999
|
qwenTopPMax = 0.999999
|
||||||
@@ -51,15 +52,22 @@ func (m *qwenProviderInitializer) ValidateConfig(config *ProviderConfig) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *qwenProviderInitializer) DefaultCapabilities() map[string]string {
|
func (m *qwenProviderInitializer) DefaultCapabilities(qwenEnableCompatible bool) map[string]string {
|
||||||
return map[string]string{
|
if qwenEnableCompatible {
|
||||||
string(ApiNameChatCompletion): qwenChatCompletionPath,
|
return map[string]string{
|
||||||
string(ApiNameEmbeddings): qwenTextEmbeddingPath,
|
string(ApiNameChatCompletion): qwenChatCompatiblePath,
|
||||||
|
string(ApiNameEmbeddings): qwenTextEmbeddingCompatiblePath,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return map[string]string{
|
||||||
|
string(ApiNameChatCompletion): qwenChatCompletionPath,
|
||||||
|
string(ApiNameEmbeddings): qwenTextEmbeddingPath,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *qwenProviderInitializer) CreateProvider(config ProviderConfig) (Provider, error) {
|
func (m *qwenProviderInitializer) CreateProvider(config ProviderConfig) (Provider, error) {
|
||||||
config.setDefaultCapabilities(m.DefaultCapabilities())
|
config.setDefaultCapabilities(m.DefaultCapabilities(config.qwenEnableCompatible))
|
||||||
return &qwenProvider{
|
return &qwenProvider{
|
||||||
config: config,
|
config: config,
|
||||||
contextCache: createContextCache(&config),
|
contextCache: createContextCache(&config),
|
||||||
@@ -79,10 +87,7 @@ func (m *qwenProvider) TransformRequestHeaders(ctx wrapper.HttpContext, apiName
|
|||||||
}
|
}
|
||||||
util.OverwriteRequestAuthorizationHeader(headers, "Bearer "+m.config.GetApiTokenInUse(ctx))
|
util.OverwriteRequestAuthorizationHeader(headers, "Bearer "+m.config.GetApiTokenInUse(ctx))
|
||||||
|
|
||||||
if m.config.IsOriginal() {
|
if !m.config.IsOriginal() {
|
||||||
} else if m.config.qwenEnableCompatible {
|
|
||||||
util.OverwriteRequestPathHeader(headers, qwenCompatiblePath)
|
|
||||||
} else if apiName == ApiNameChatCompletion || apiName == ApiNameEmbeddings {
|
|
||||||
util.OverwriteRequestPathHeaderByCapability(headers, string(apiName), m.config.capabilities)
|
util.OverwriteRequestPathHeaderByCapability(headers, string(apiName), m.config.capabilities)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -667,9 +672,10 @@ func (m *qwenProvider) GetApiName(path string) ApiName {
|
|||||||
case strings.Contains(path, qwenChatCompletionPath),
|
case strings.Contains(path, qwenChatCompletionPath),
|
||||||
strings.Contains(path, qwenMultimodalGenerationPath),
|
strings.Contains(path, qwenMultimodalGenerationPath),
|
||||||
strings.Contains(path, qwenBailianPath),
|
strings.Contains(path, qwenBailianPath),
|
||||||
strings.Contains(path, qwenCompatiblePath):
|
strings.Contains(path, qwenChatCompatiblePath):
|
||||||
return ApiNameChatCompletion
|
return ApiNameChatCompletion
|
||||||
case strings.Contains(path, qwenTextEmbeddingPath):
|
case strings.Contains(path, qwenTextEmbeddingPath),
|
||||||
|
strings.Contains(path, qwenTextEmbeddingCompatiblePath):
|
||||||
return ApiNameEmbeddings
|
return ApiNameEmbeddings
|
||||||
default:
|
default:
|
||||||
return ""
|
return ""
|
||||||
|
|||||||
Reference in New Issue
Block a user