mirror of
https://github.com/alibaba/higress.git
synced 2026-06-09 04:37:31 +08:00
@@ -602,6 +602,51 @@ provider:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 使用original协议代理百炼智能体应用
|
||||||
|
**配置信息**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
provider:
|
||||||
|
type: qwen
|
||||||
|
apiTokens:
|
||||||
|
- "YOUR_DASHSCOPE_API_TOKEN"
|
||||||
|
protocol: original
|
||||||
|
```
|
||||||
|
|
||||||
|
**请求实例**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"input": {
|
||||||
|
"prompt": "介绍一下Dubbo"
|
||||||
|
},
|
||||||
|
"parameters": {},
|
||||||
|
"debug": {}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**响应实例**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"output": {
|
||||||
|
"finish_reason": "stop",
|
||||||
|
"session_id": "677e7e8fbb874e1b84792b65042e1599",
|
||||||
|
"text": "Apache Dubbo 是一个..."
|
||||||
|
},
|
||||||
|
"usage": {
|
||||||
|
"models": [
|
||||||
|
{
|
||||||
|
"output_tokens": 449,
|
||||||
|
"model_id": "qwen-max",
|
||||||
|
"input_tokens": 282
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"request_id": "b59e45e3-5af4-91df-b7c6-9d746fd3297c"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### 使用月之暗面配合其原生的文件上下文
|
### 使用月之暗面配合其原生的文件上下文
|
||||||
|
|
||||||
提前上传文件至月之暗面,以文件内容作为上下文使用其 AI 服务。
|
提前上传文件至月之暗面,以文件内容作为上下文使用其 AI 服务。
|
||||||
|
|||||||
@@ -64,7 +64,8 @@ func onHttpRequestHeader(ctx wrapper.HttpContext, pluginConfig config.PluginConf
|
|||||||
rawPath := ctx.Path()
|
rawPath := ctx.Path()
|
||||||
path, _ := url.Parse(rawPath)
|
path, _ := url.Parse(rawPath)
|
||||||
apiName := getOpenAiApiName(path.Path)
|
apiName := getOpenAiApiName(path.Path)
|
||||||
if apiName == "" {
|
providerConfig := pluginConfig.GetProviderConfig()
|
||||||
|
if apiName == "" && !providerConfig.IsOriginal() {
|
||||||
log.Debugf("[onHttpRequestHeader] unsupported path: %s", path.Path)
|
log.Debugf("[onHttpRequestHeader] unsupported path: %s", path.Path)
|
||||||
_ = util.SendResponse(404, "ai-proxy.unknown_api", util.MimeTypeTextPlain, "API not found: "+path.Path)
|
_ = util.SendResponse(404, "ai-proxy.unknown_api", util.MimeTypeTextPlain, "API not found: "+path.Path)
|
||||||
return types.ActionContinue
|
return types.ActionContinue
|
||||||
|
|||||||
@@ -314,6 +314,10 @@ func (c *ProviderConfig) GetRandomToken() string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *ProviderConfig) IsOriginal() bool {
|
||||||
|
return c.protocol == protocolOriginal
|
||||||
|
}
|
||||||
|
|
||||||
func CreateProvider(pc ProviderConfig) (Provider, error) {
|
func CreateProvider(pc ProviderConfig) (Provider, error) {
|
||||||
initializer, has := providerInitializers[pc.typ]
|
initializer, has := providerInitializers[pc.typ]
|
||||||
if !has {
|
if !has {
|
||||||
|
|||||||
@@ -68,7 +68,13 @@ func (m *qwenProvider) GetProviderType() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *qwenProvider) OnRequestHeaders(ctx wrapper.HttpContext, apiName ApiName, log wrapper.Log) (types.Action, error) {
|
func (m *qwenProvider) OnRequestHeaders(ctx wrapper.HttpContext, apiName ApiName, log wrapper.Log) (types.Action, error) {
|
||||||
if m.config.qwenEnableCompatible {
|
_ = util.OverwriteRequestHost(qwenDomain)
|
||||||
|
_ = util.OverwriteRequestAuthorization("Bearer " + m.config.GetRandomToken())
|
||||||
|
|
||||||
|
if m.config.protocol == protocolOriginal {
|
||||||
|
ctx.DontReadRequestBody()
|
||||||
|
return types.ActionContinue, nil
|
||||||
|
} else if m.config.qwenEnableCompatible {
|
||||||
_ = util.OverwriteRequestPath(qwenCompatiblePath)
|
_ = util.OverwriteRequestPath(qwenCompatiblePath)
|
||||||
} else if apiName == ApiNameChatCompletion {
|
} else if apiName == ApiNameChatCompletion {
|
||||||
_ = util.OverwriteRequestPath(qwenChatCompletionPath)
|
_ = util.OverwriteRequestPath(qwenChatCompletionPath)
|
||||||
@@ -77,12 +83,6 @@ func (m *qwenProvider) OnRequestHeaders(ctx wrapper.HttpContext, apiName ApiName
|
|||||||
} else {
|
} else {
|
||||||
return types.ActionContinue, errUnsupportedApiName
|
return types.ActionContinue, errUnsupportedApiName
|
||||||
}
|
}
|
||||||
_ = util.OverwriteRequestHost(qwenDomain)
|
|
||||||
_ = util.OverwriteRequestAuthorization("Bearer " + m.config.GetRandomToken())
|
|
||||||
|
|
||||||
if m.config.protocol == protocolOriginal {
|
|
||||||
return types.ActionContinue, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
_ = proxywasm.RemoveHttpRequestHeader("Accept-Encoding")
|
_ = proxywasm.RemoveHttpRequestHeader("Accept-Encoding")
|
||||||
_ = proxywasm.RemoveHttpRequestHeader("Content-Length")
|
_ = proxywasm.RemoveHttpRequestHeader("Content-Length")
|
||||||
|
|||||||
Reference in New Issue
Block a user