Merge branch 'songquanpeng:main' into channel-stream-mode
This commit is contained in:
commit
43740f4079
@ -57,11 +57,22 @@ type BaiduChatStreamResponse struct {
|
|||||||
func requestOpenAI2Baidu(request GeneralOpenAIRequest) *BaiduChatRequest {
|
func requestOpenAI2Baidu(request GeneralOpenAIRequest) *BaiduChatRequest {
|
||||||
messages := make([]BaiduMessage, 0, len(request.Messages))
|
messages := make([]BaiduMessage, 0, len(request.Messages))
|
||||||
for _, message := range request.Messages {
|
for _, message := range request.Messages {
|
||||||
|
if message.Role == "system" {
|
||||||
|
messages = append(messages, BaiduMessage{
|
||||||
|
Role: "user",
|
||||||
|
Content: message.Content,
|
||||||
|
})
|
||||||
|
messages = append(messages, BaiduMessage{
|
||||||
|
Role: "assistant",
|
||||||
|
Content: "Okay",
|
||||||
|
})
|
||||||
|
} else {
|
||||||
messages = append(messages, BaiduMessage{
|
messages = append(messages, BaiduMessage{
|
||||||
Role: message.Role,
|
Role: message.Role,
|
||||||
Content: message.Content,
|
Content: message.Content,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return &BaiduChatRequest{
|
return &BaiduChatRequest{
|
||||||
Messages: messages,
|
Messages: messages,
|
||||||
Stream: request.Stream,
|
Stream: request.Stream,
|
||||||
|
@ -69,11 +69,11 @@ func requestOpenAI2Claude(textRequest GeneralOpenAIRequest) *ClaudeRequest {
|
|||||||
prompt += fmt.Sprintf("\n\nHuman: %s", message.Content)
|
prompt += fmt.Sprintf("\n\nHuman: %s", message.Content)
|
||||||
} else if message.Role == "assistant" {
|
} else if message.Role == "assistant" {
|
||||||
prompt += fmt.Sprintf("\n\nAssistant: %s", message.Content)
|
prompt += fmt.Sprintf("\n\nAssistant: %s", message.Content)
|
||||||
} else {
|
} else if message.Role == "system" {
|
||||||
// ignore other roles
|
prompt += fmt.Sprintf("\n\nSystem: %s", message.Content)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
prompt += "\n\nAssistant:"
|
prompt += "\n\nAssistant:"
|
||||||
}
|
|
||||||
claudeRequest.Prompt = prompt
|
claudeRequest.Prompt = prompt
|
||||||
return &claudeRequest
|
return &claudeRequest
|
||||||
}
|
}
|
||||||
|
@ -85,13 +85,14 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
apiType := APITypeOpenAI
|
apiType := APITypeOpenAI
|
||||||
if strings.HasPrefix(textRequest.Model, "claude") {
|
switch channelType {
|
||||||
|
case common.ChannelTypeAnthropic:
|
||||||
apiType = APITypeClaude
|
apiType = APITypeClaude
|
||||||
} else if strings.HasPrefix(textRequest.Model, "ERNIE") {
|
case common.ChannelTypeBaidu:
|
||||||
apiType = APITypeBaidu
|
apiType = APITypeBaidu
|
||||||
} else if strings.HasPrefix(textRequest.Model, "PaLM") {
|
case common.ChannelTypePaLM:
|
||||||
apiType = APITypePaLM
|
apiType = APITypePaLM
|
||||||
} else if strings.HasPrefix(textRequest.Model, "chatglm_") {
|
case common.ChannelTypeZhipu:
|
||||||
apiType = APITypeZhipu
|
apiType = APITypeZhipu
|
||||||
}
|
}
|
||||||
baseURL := common.ChannelBaseURLs[channelType]
|
baseURL := common.ChannelBaseURLs[channelType]
|
||||||
@ -140,6 +141,9 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
|
|||||||
fullRequestURL += "?access_token=" + apiKey // TODO: access token expire in 30 days
|
fullRequestURL += "?access_token=" + apiKey // TODO: access token expire in 30 days
|
||||||
case APITypePaLM:
|
case APITypePaLM:
|
||||||
fullRequestURL = "https://generativelanguage.googleapis.com/v1beta2/models/chat-bison-001:generateMessage"
|
fullRequestURL = "https://generativelanguage.googleapis.com/v1beta2/models/chat-bison-001:generateMessage"
|
||||||
|
if baseURL != "" {
|
||||||
|
fullRequestURL = fmt.Sprintf("%s/v1beta2/models/chat-bison-001:generateMessage", baseURL)
|
||||||
|
}
|
||||||
apiKey := c.Request.Header.Get("Authorization")
|
apiKey := c.Request.Header.Get("Authorization")
|
||||||
apiKey = strings.TrimPrefix(apiKey, "Bearer ")
|
apiKey = strings.TrimPrefix(apiKey, "Bearer ")
|
||||||
fullRequestURL += "?key=" + apiKey
|
fullRequestURL += "?key=" + apiKey
|
||||||
|
@ -111,11 +111,22 @@ func getZhipuToken(apikey string) string {
|
|||||||
func requestOpenAI2Zhipu(request GeneralOpenAIRequest) *ZhipuRequest {
|
func requestOpenAI2Zhipu(request GeneralOpenAIRequest) *ZhipuRequest {
|
||||||
messages := make([]ZhipuMessage, 0, len(request.Messages))
|
messages := make([]ZhipuMessage, 0, len(request.Messages))
|
||||||
for _, message := range request.Messages {
|
for _, message := range request.Messages {
|
||||||
|
if message.Role == "system" {
|
||||||
|
messages = append(messages, ZhipuMessage{
|
||||||
|
Role: "system",
|
||||||
|
Content: message.Content,
|
||||||
|
})
|
||||||
|
messages = append(messages, ZhipuMessage{
|
||||||
|
Role: "user",
|
||||||
|
Content: "Okay",
|
||||||
|
})
|
||||||
|
} else {
|
||||||
messages = append(messages, ZhipuMessage{
|
messages = append(messages, ZhipuMessage{
|
||||||
Role: message.Role,
|
Role: message.Role,
|
||||||
Content: message.Content,
|
Content: message.Content,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return &ZhipuRequest{
|
return &ZhipuRequest{
|
||||||
Prompt: messages,
|
Prompt: messages,
|
||||||
Temperature: request.Temperature,
|
Temperature: request.Temperature,
|
||||||
|
@ -12,7 +12,7 @@ func SetRelayRouter(router *gin.Engine) {
|
|||||||
modelsRouter := router.Group("/v1/models")
|
modelsRouter := router.Group("/v1/models")
|
||||||
modelsRouter.Use(middleware.TokenAuth())
|
modelsRouter.Use(middleware.TokenAuth())
|
||||||
{
|
{
|
||||||
modelsRouter.GET("/", controller.ListModels)
|
modelsRouter.GET("", controller.ListModels)
|
||||||
modelsRouter.GET("/:model", controller.RetrieveModel)
|
modelsRouter.GET("/:model", controller.RetrieveModel)
|
||||||
}
|
}
|
||||||
relayV1Router := router.Group("/v1")
|
relayV1Router := router.Group("/v1")
|
||||||
|
Loading…
Reference in New Issue
Block a user