feat: update MaxTokens handling
This commit is contained in:
@@ -161,7 +161,7 @@ func testChannel(channel *model.Channel, testModel string) testResult {
|
|||||||
logInfo.ApiKey = ""
|
logInfo.ApiKey = ""
|
||||||
common.SysLog(fmt.Sprintf("testing channel %d with model %s , info %+v ", channel.Id, testModel, logInfo))
|
common.SysLog(fmt.Sprintf("testing channel %d with model %s , info %+v ", channel.Id, testModel, logInfo))
|
||||||
|
|
||||||
priceData, err := helper.ModelPriceHelper(c, info, 0, int(request.MaxTokens))
|
priceData, err := helper.ModelPriceHelper(c, info, 0, int(request.GetMaxTokens()))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return testResult{
|
return testResult{
|
||||||
context: c,
|
context: c,
|
||||||
|
|||||||
@@ -99,8 +99,11 @@ type StreamOptions struct {
|
|||||||
IncludeUsage bool `json:"include_usage,omitempty"`
|
IncludeUsage bool `json:"include_usage,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *GeneralOpenAIRequest) GetMaxTokens() int {
|
func (r *GeneralOpenAIRequest) GetMaxTokens() uint {
|
||||||
return int(r.MaxTokens)
|
if r.MaxCompletionTokens != 0 {
|
||||||
|
return r.MaxCompletionTokens
|
||||||
|
}
|
||||||
|
return r.MaxTokens
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *GeneralOpenAIRequest) ParseInput() []string {
|
func (r *GeneralOpenAIRequest) ParseInput() []string {
|
||||||
|
|||||||
@@ -34,9 +34,9 @@ func requestOpenAI2Baidu(request dto.GeneralOpenAIRequest) *BaiduChatRequest {
|
|||||||
EnableCitation: false,
|
EnableCitation: false,
|
||||||
UserId: request.User,
|
UserId: request.User,
|
||||||
}
|
}
|
||||||
if request.MaxTokens != 0 {
|
if request.GetMaxTokens() != 0 {
|
||||||
maxTokens := int(request.MaxTokens)
|
maxTokens := int(request.GetMaxTokens())
|
||||||
if request.MaxTokens == 1 {
|
if request.GetMaxTokens() == 1 {
|
||||||
maxTokens = 2
|
maxTokens = 2
|
||||||
}
|
}
|
||||||
baiduRequest.MaxOutputTokens = &maxTokens
|
baiduRequest.MaxOutputTokens = &maxTokens
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*dto.Cla
|
|||||||
|
|
||||||
claudeRequest := dto.ClaudeRequest{
|
claudeRequest := dto.ClaudeRequest{
|
||||||
Model: textRequest.Model,
|
Model: textRequest.Model,
|
||||||
MaxTokens: textRequest.MaxTokens,
|
MaxTokens: textRequest.GetMaxTokens(),
|
||||||
StopSequences: nil,
|
StopSequences: nil,
|
||||||
Temperature: textRequest.Temperature,
|
Temperature: textRequest.Temperature,
|
||||||
TopP: textRequest.TopP,
|
TopP: textRequest.TopP,
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import "one-api/dto"
|
|||||||
type CfRequest struct {
|
type CfRequest struct {
|
||||||
Messages []dto.Message `json:"messages,omitempty"`
|
Messages []dto.Message `json:"messages,omitempty"`
|
||||||
Lora string `json:"lora,omitempty"`
|
Lora string `json:"lora,omitempty"`
|
||||||
MaxTokens int `json:"max_tokens,omitempty"`
|
MaxTokens uint `json:"max_tokens,omitempty"`
|
||||||
Prompt string `json:"prompt,omitempty"`
|
Prompt string `json:"prompt,omitempty"`
|
||||||
Raw bool `json:"raw,omitempty"`
|
Raw bool `json:"raw,omitempty"`
|
||||||
Stream bool `json:"stream,omitempty"`
|
Stream bool `json:"stream,omitempty"`
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ type CohereRequest struct {
|
|||||||
ChatHistory []ChatHistory `json:"chat_history"`
|
ChatHistory []ChatHistory `json:"chat_history"`
|
||||||
Message string `json:"message"`
|
Message string `json:"message"`
|
||||||
Stream bool `json:"stream"`
|
Stream bool `json:"stream"`
|
||||||
MaxTokens int `json:"max_tokens"`
|
MaxTokens uint `json:"max_tokens"`
|
||||||
SafetyMode string `json:"safety_mode,omitempty"`
|
SafetyMode string `json:"safety_mode,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest, info *relaycommon
|
|||||||
GenerationConfig: dto.GeminiChatGenerationConfig{
|
GenerationConfig: dto.GeminiChatGenerationConfig{
|
||||||
Temperature: textRequest.Temperature,
|
Temperature: textRequest.Temperature,
|
||||||
TopP: textRequest.TopP,
|
TopP: textRequest.TopP,
|
||||||
MaxOutputTokens: textRequest.MaxTokens,
|
MaxOutputTokens: textRequest.GetMaxTokens(),
|
||||||
Seed: int64(textRequest.Seed),
|
Seed: int64(textRequest.Seed),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ func requestOpenAI2Mistral(request *dto.GeneralOpenAIRequest) *dto.GeneralOpenAI
|
|||||||
Messages: messages,
|
Messages: messages,
|
||||||
Temperature: request.Temperature,
|
Temperature: request.Temperature,
|
||||||
TopP: request.TopP,
|
TopP: request.TopP,
|
||||||
MaxTokens: request.MaxTokens,
|
MaxTokens: request.GetMaxTokens(),
|
||||||
Tools: request.Tools,
|
Tools: request.Tools,
|
||||||
ToolChoice: request.ToolChoice,
|
ToolChoice: request.ToolChoice,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ func requestOpenAI2Ollama(request *dto.GeneralOpenAIRequest) (*OllamaRequest, er
|
|||||||
TopK: request.TopK,
|
TopK: request.TopK,
|
||||||
Stop: Stop,
|
Stop: Stop,
|
||||||
Tools: request.Tools,
|
Tools: request.Tools,
|
||||||
MaxTokens: request.MaxTokens,
|
MaxTokens: request.GetMaxTokens(),
|
||||||
ResponseFormat: request.ResponseFormat,
|
ResponseFormat: request.ResponseFormat,
|
||||||
FrequencyPenalty: request.FrequencyPenalty,
|
FrequencyPenalty: request.FrequencyPenalty,
|
||||||
PresencePenalty: request.PresencePenalty,
|
PresencePenalty: request.PresencePenalty,
|
||||||
|
|||||||
@@ -18,30 +18,6 @@ import (
|
|||||||
// https://developers.generativeai.google/api/rest/generativelanguage/models/generateMessage#request-body
|
// https://developers.generativeai.google/api/rest/generativelanguage/models/generateMessage#request-body
|
||||||
// https://developers.generativeai.google/api/rest/generativelanguage/models/generateMessage#response-body
|
// https://developers.generativeai.google/api/rest/generativelanguage/models/generateMessage#response-body
|
||||||
|
|
||||||
func requestOpenAI2PaLM(textRequest dto.GeneralOpenAIRequest) *PaLMChatRequest {
|
|
||||||
palmRequest := PaLMChatRequest{
|
|
||||||
Prompt: PaLMPrompt{
|
|
||||||
Messages: make([]PaLMChatMessage, 0, len(textRequest.Messages)),
|
|
||||||
},
|
|
||||||
Temperature: textRequest.Temperature,
|
|
||||||
CandidateCount: textRequest.N,
|
|
||||||
TopP: textRequest.TopP,
|
|
||||||
TopK: textRequest.MaxTokens,
|
|
||||||
}
|
|
||||||
for _, message := range textRequest.Messages {
|
|
||||||
palmMessage := PaLMChatMessage{
|
|
||||||
Content: message.StringContent(),
|
|
||||||
}
|
|
||||||
if message.Role == "user" {
|
|
||||||
palmMessage.Author = "0"
|
|
||||||
} else {
|
|
||||||
palmMessage.Author = "1"
|
|
||||||
}
|
|
||||||
palmRequest.Prompt.Messages = append(palmRequest.Prompt.Messages, palmMessage)
|
|
||||||
}
|
|
||||||
return &palmRequest
|
|
||||||
}
|
|
||||||
|
|
||||||
func responsePaLM2OpenAI(response *PaLMChatResponse) *dto.OpenAITextResponse {
|
func responsePaLM2OpenAI(response *PaLMChatResponse) *dto.OpenAITextResponse {
|
||||||
fullTextResponse := dto.OpenAITextResponse{
|
fullTextResponse := dto.OpenAITextResponse{
|
||||||
Choices: make([]dto.OpenAITextResponseChoice, 0, len(response.Candidates)),
|
Choices: make([]dto.OpenAITextResponseChoice, 0, len(response.Candidates)),
|
||||||
|
|||||||
@@ -16,6 +16,6 @@ func requestOpenAI2Perplexity(request dto.GeneralOpenAIRequest) *dto.GeneralOpen
|
|||||||
Messages: messages,
|
Messages: messages,
|
||||||
Temperature: request.Temperature,
|
Temperature: request.Temperature,
|
||||||
TopP: request.TopP,
|
TopP: request.TopP,
|
||||||
MaxTokens: request.MaxTokens,
|
MaxTokens: request.GetMaxTokens(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ func requestOpenAI2Xunfei(request dto.GeneralOpenAIRequest, xunfeiAppId string,
|
|||||||
xunfeiRequest.Parameter.Chat.Domain = domain
|
xunfeiRequest.Parameter.Chat.Domain = domain
|
||||||
xunfeiRequest.Parameter.Chat.Temperature = request.Temperature
|
xunfeiRequest.Parameter.Chat.Temperature = request.Temperature
|
||||||
xunfeiRequest.Parameter.Chat.TopK = request.N
|
xunfeiRequest.Parameter.Chat.TopK = request.N
|
||||||
xunfeiRequest.Parameter.Chat.MaxTokens = request.MaxTokens
|
xunfeiRequest.Parameter.Chat.MaxTokens = request.GetMaxTokens()
|
||||||
xunfeiRequest.Payload.Message.Text = messages
|
xunfeiRequest.Payload.Message.Text = messages
|
||||||
return &xunfeiRequest
|
return &xunfeiRequest
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ func requestOpenAI2Zhipu(request dto.GeneralOpenAIRequest) *dto.GeneralOpenAIReq
|
|||||||
Messages: messages,
|
Messages: messages,
|
||||||
Temperature: request.Temperature,
|
Temperature: request.Temperature,
|
||||||
TopP: request.TopP,
|
TopP: request.TopP,
|
||||||
MaxTokens: request.MaxTokens,
|
MaxTokens: request.GetMaxTokens(),
|
||||||
Stop: Stop,
|
Stop: Stop,
|
||||||
Tools: request.Tools,
|
Tools: request.Tools,
|
||||||
ToolChoice: request.ToolChoice,
|
ToolChoice: request.ToolChoice,
|
||||||
|
|||||||
Reference in New Issue
Block a user