mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-11-07 09:13:42 +08:00
feat: 支持CozeV3
This commit is contained in:
@@ -35,7 +35,7 @@ func (a *AdaptorV3) ConvertRequest(c *gin.Context, relayMode int, request *model
|
||||
return nil, errors.New("request is nil")
|
||||
}
|
||||
request.User = a.meta.Config.UserID
|
||||
return ConvertRequest(*request), nil
|
||||
return V3ConvertRequest(*request), nil
|
||||
}
|
||||
|
||||
func (a *AdaptorV3) ConvertImageRequest(request *model.ImageRequest) (any, error) {
|
||||
|
||||
@@ -44,14 +44,40 @@ func ConvertRequest(textRequest model.GeneralOpenAIRequest) *Request {
|
||||
}
|
||||
for i, message := range textRequest.Messages {
|
||||
if i == len(textRequest.Messages)-1 {
|
||||
cozeRequest.Query = message.CozeV3StringContent()
|
||||
cozeRequest.Query = message.StringContent()
|
||||
continue
|
||||
}
|
||||
cozeMessage := Message{
|
||||
Role: message.Role,
|
||||
Content: message.StringContent(),
|
||||
}
|
||||
cozeRequest.ChatHistory = append(cozeRequest.ChatHistory, cozeMessage)
|
||||
}
|
||||
return &cozeRequest
|
||||
}
|
||||
|
||||
func V3ConvertRequest(textRequest model.GeneralOpenAIRequest) *V3Request {
|
||||
cozeRequest := V3Request{
|
||||
UserId: textRequest.User,
|
||||
Stream: textRequest.Stream,
|
||||
BotId: strings.TrimPrefix(textRequest.Model, "bot-"),
|
||||
}
|
||||
if cozeRequest.UserId == "" {
|
||||
cozeRequest.UserId = "any"
|
||||
}
|
||||
for i, message := range textRequest.Messages {
|
||||
if i == len(textRequest.Messages)-1 {
|
||||
cozeRequest.AdditionalMessages = append(cozeRequest.AdditionalMessages, Message{
|
||||
Role: "user",
|
||||
Content: message.CozeV3StringContent(),
|
||||
})
|
||||
continue
|
||||
}
|
||||
cozeMessage := Message{
|
||||
Role: message.Role,
|
||||
Content: message.CozeV3StringContent(),
|
||||
}
|
||||
cozeRequest.ChatHistory = append(cozeRequest.ChatHistory, cozeMessage)
|
||||
cozeRequest.AdditionalMessages = append(cozeRequest.AdditionalMessages, cozeMessage)
|
||||
}
|
||||
return &cozeRequest
|
||||
}
|
||||
@@ -217,7 +243,7 @@ func V3StreamHandler(c *gin.Context, resp *http.Response) (*model.ErrorWithStatu
|
||||
if len(parts) != 2 {
|
||||
continue
|
||||
}
|
||||
if strings.HasPrefix(parts[0], "event:") && strings.HasPrefix(parts[1], "data:") {
|
||||
if !strings.HasPrefix(parts[0], "event:") || !strings.HasPrefix(parts[1], "data:") {
|
||||
continue
|
||||
}
|
||||
event, data := strings.TrimSpace(parts[0][6:]), strings.TrimSpace(parts[1][5:])
|
||||
|
||||
@@ -2,9 +2,9 @@ package coze
|
||||
|
||||
type Message struct {
|
||||
Role string `json:"role"`
|
||||
Type string `json:"type"`
|
||||
Type string `json:"type,omitempty"`
|
||||
Content string `json:"content"`
|
||||
ContentType string `json:"content_type"`
|
||||
ContentType string `json:"content_type,omitempty"`
|
||||
}
|
||||
|
||||
type ErrorInformation struct {
|
||||
@@ -78,3 +78,10 @@ type V3Response struct {
|
||||
Code int `json:"code"`
|
||||
Msg string `json:"msg"`
|
||||
}
|
||||
|
||||
type V3Request struct {
|
||||
BotId string `json:"bot_id"`
|
||||
UserId string `json:"user_id"`
|
||||
AdditionalMessages []Message `json:"additional_messages"`
|
||||
Stream bool `json:"stream"`
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ const (
|
||||
VertexAI
|
||||
Proxy
|
||||
Replicate
|
||||
|
||||
Dummy // this one is only for count, do not add any channel after this
|
||||
CozeV3
|
||||
Dummy // this one is only for count, do not add any channel after this
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user