Merge remote-tracking branch 'origin/alpha' into alpha
This commit is contained in:
@@ -126,16 +126,23 @@ func (a *Adaptor) GetRequestURL(info *relaycommon.RelayInfo) (string, error) {
|
|||||||
requestURL = fmt.Sprintf("%s?api-version=%s", requestURL, apiVersion)
|
requestURL = fmt.Sprintf("%s?api-version=%s", requestURL, apiVersion)
|
||||||
task := strings.TrimPrefix(requestURL, "/v1/")
|
task := strings.TrimPrefix(requestURL, "/v1/")
|
||||||
|
|
||||||
|
if info.RelayFormat == relaycommon.RelayFormatClaude {
|
||||||
|
task = strings.TrimPrefix(task, "messages")
|
||||||
|
task = "chat/completions" + task
|
||||||
|
}
|
||||||
|
|
||||||
// 特殊处理 responses API
|
// 特殊处理 responses API
|
||||||
if info.RelayMode == relayconstant.RelayModeResponses {
|
if info.RelayMode == relayconstant.RelayModeResponses {
|
||||||
responsesApiVersion := "preview"
|
responsesApiVersion := "preview"
|
||||||
if info.ChannelOtherSettings.AzureResponsesVersion != "" {
|
|
||||||
responsesApiVersion = info.ChannelOtherSettings.AzureResponsesVersion
|
|
||||||
}
|
|
||||||
|
|
||||||
subUrl := "/openai/v1/responses"
|
subUrl := "/openai/v1/responses"
|
||||||
if strings.Contains(info.BaseUrl, "cognitiveservices.azure.com") {
|
if strings.Contains(info.BaseUrl, "cognitiveservices.azure.com") {
|
||||||
subUrl = "/openai/responses"
|
subUrl = "/openai/responses"
|
||||||
|
responsesApiVersion = apiVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
if info.ChannelOtherSettings.AzureResponsesVersion != "" {
|
||||||
|
responsesApiVersion = info.ChannelOtherSettings.AzureResponsesVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
requestURL = fmt.Sprintf("%s?api-version=%s", subUrl, responsesApiVersion)
|
requestURL = fmt.Sprintf("%s?api-version=%s", subUrl, responsesApiVersion)
|
||||||
@@ -249,34 +256,34 @@ func (a *Adaptor) ConvertOpenAIRequest(c *gin.Context, info *relaycommon.RelayIn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(request.Model, "o") || strings.HasPrefix(request.Model, "gpt-5") {
|
if strings.HasPrefix(info.UpstreamModelName, "o") || strings.HasPrefix(info.UpstreamModelName, "gpt-5") {
|
||||||
if request.MaxCompletionTokens == 0 && request.MaxTokens != 0 {
|
if request.MaxCompletionTokens == 0 && request.MaxTokens != 0 {
|
||||||
request.MaxCompletionTokens = request.MaxTokens
|
request.MaxCompletionTokens = request.MaxTokens
|
||||||
request.MaxTokens = 0
|
request.MaxTokens = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
if strings.HasPrefix(request.Model, "o") {
|
if strings.HasPrefix(info.UpstreamModelName, "o") {
|
||||||
request.Temperature = nil
|
request.Temperature = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if strings.HasPrefix(request.Model, "gpt-5") {
|
if strings.HasPrefix(info.UpstreamModelName, "gpt-5") {
|
||||||
if request.Model != "gpt-5-chat-latest" {
|
if info.UpstreamModelName != "gpt-5-chat-latest" {
|
||||||
request.Temperature = nil
|
request.Temperature = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 转换模型推理力度后缀
|
// 转换模型推理力度后缀
|
||||||
effort, originModel := parseReasoningEffortFromModelSuffix(request.Model)
|
effort, originModel := parseReasoningEffortFromModelSuffix(info.UpstreamModelName)
|
||||||
if effort != "" {
|
if effort != "" {
|
||||||
request.ReasoningEffort = effort
|
request.ReasoningEffort = effort
|
||||||
|
info.UpstreamModelName = originModel
|
||||||
request.Model = originModel
|
request.Model = originModel
|
||||||
}
|
}
|
||||||
|
|
||||||
info.ReasoningEffort = request.ReasoningEffort
|
info.ReasoningEffort = request.ReasoningEffort
|
||||||
info.UpstreamModelName = request.Model
|
|
||||||
|
|
||||||
// o系列模型developer适配(o1-mini除外)
|
// o系列模型developer适配(o1-mini除外)
|
||||||
if !strings.HasPrefix(request.Model, "o1-mini") && !strings.HasPrefix(request.Model, "o1-preview") {
|
if !strings.HasPrefix(info.UpstreamModelName, "o1-mini") && !strings.HasPrefix(info.UpstreamModelName, "o1-preview") {
|
||||||
//修改第一个Message的内容,将system改为developer
|
//修改第一个Message的内容,将system改为developer
|
||||||
if len(request.Messages) > 0 && request.Messages[0].Role == "system" {
|
if len(request.Messages) > 0 && request.Messages[0].Role == "system" {
|
||||||
request.Messages[0].Role = "developer"
|
request.Messages[0].Role = "developer"
|
||||||
|
|||||||
Reference in New Issue
Block a user