mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-11-07 17:23: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")
|
return nil, errors.New("request is nil")
|
||||||
}
|
}
|
||||||
request.User = a.meta.Config.UserID
|
request.User = a.meta.Config.UserID
|
||||||
return ConvertRequest(*request), nil
|
return V3ConvertRequest(*request), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *AdaptorV3) ConvertImageRequest(request *model.ImageRequest) (any, error) {
|
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 {
|
for i, message := range textRequest.Messages {
|
||||||
if i == len(textRequest.Messages)-1 {
|
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
|
continue
|
||||||
}
|
}
|
||||||
cozeMessage := Message{
|
cozeMessage := Message{
|
||||||
Role: message.Role,
|
Role: message.Role,
|
||||||
Content: message.CozeV3StringContent(),
|
Content: message.CozeV3StringContent(),
|
||||||
}
|
}
|
||||||
cozeRequest.ChatHistory = append(cozeRequest.ChatHistory, cozeMessage)
|
cozeRequest.AdditionalMessages = append(cozeRequest.AdditionalMessages, cozeMessage)
|
||||||
}
|
}
|
||||||
return &cozeRequest
|
return &cozeRequest
|
||||||
}
|
}
|
||||||
@@ -217,7 +243,7 @@ func V3StreamHandler(c *gin.Context, resp *http.Response) (*model.ErrorWithStatu
|
|||||||
if len(parts) != 2 {
|
if len(parts) != 2 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(parts[0], "event:") && strings.HasPrefix(parts[1], "data:") {
|
if !strings.HasPrefix(parts[0], "event:") || !strings.HasPrefix(parts[1], "data:") {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
event, data := strings.TrimSpace(parts[0][6:]), strings.TrimSpace(parts[1][5:])
|
event, data := strings.TrimSpace(parts[0][6:]), strings.TrimSpace(parts[1][5:])
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ package coze
|
|||||||
|
|
||||||
type Message struct {
|
type Message struct {
|
||||||
Role string `json:"role"`
|
Role string `json:"role"`
|
||||||
Type string `json:"type"`
|
Type string `json:"type,omitempty"`
|
||||||
Content string `json:"content"`
|
Content string `json:"content"`
|
||||||
ContentType string `json:"content_type"`
|
ContentType string `json:"content_type,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ErrorInformation struct {
|
type ErrorInformation struct {
|
||||||
@@ -78,3 +78,10 @@ type V3Response struct {
|
|||||||
Code int `json:"code"`
|
Code int `json:"code"`
|
||||||
Msg string `json:"msg"`
|
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
|
VertexAI
|
||||||
Proxy
|
Proxy
|
||||||
Replicate
|
Replicate
|
||||||
|
|
||||||
Dummy // this one is only for count, do not add any channel after this
|
|
||||||
CozeV3
|
CozeV3
|
||||||
|
Dummy // this one is only for count, do not add any channel after this
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user