fix: Support for Spark Lite model

This commit is contained in:
Zhong Liu 2024-06-12 18:17:09 +08:00
parent e9981fff36
commit 00447c2617
2 changed files with 15 additions and 15 deletions

View File

@ -6,6 +6,12 @@ import (
"encoding/base64" "encoding/base64"
"encoding/json" "encoding/json"
"fmt" "fmt"
"io"
"net/http"
"net/url"
"strings"
"time"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"github.com/songquanpeng/one-api/common" "github.com/songquanpeng/one-api/common"
@ -16,11 +22,6 @@ import (
"github.com/songquanpeng/one-api/relay/constant" "github.com/songquanpeng/one-api/relay/constant"
"github.com/songquanpeng/one-api/relay/meta" "github.com/songquanpeng/one-api/relay/meta"
"github.com/songquanpeng/one-api/relay/model" "github.com/songquanpeng/one-api/relay/model"
"io"
"net/http"
"net/url"
"strings"
"time"
) )
// https://console.xfyun.cn/services/cbm // https://console.xfyun.cn/services/cbm
@ -28,11 +29,7 @@ import (
func requestOpenAI2Xunfei(request model.GeneralOpenAIRequest, xunfeiAppId string, domain string) *ChatRequest { func requestOpenAI2Xunfei(request model.GeneralOpenAIRequest, xunfeiAppId string, domain string) *ChatRequest {
messages := make([]Message, 0, len(request.Messages)) messages := make([]Message, 0, len(request.Messages))
var lastToolCalls []model.Tool
for _, message := range request.Messages { for _, message := range request.Messages {
if message.ToolCalls != nil {
lastToolCalls = message.ToolCalls
}
messages = append(messages, Message{ messages = append(messages, Message{
Role: message.Role, Role: message.Role,
Content: message.StringContent(), Content: message.StringContent(),
@ -45,9 +42,10 @@ func requestOpenAI2Xunfei(request model.GeneralOpenAIRequest, xunfeiAppId string
xunfeiRequest.Parameter.Chat.TopK = request.N xunfeiRequest.Parameter.Chat.TopK = request.N
xunfeiRequest.Parameter.Chat.MaxTokens = request.MaxTokens xunfeiRequest.Parameter.Chat.MaxTokens = request.MaxTokens
xunfeiRequest.Payload.Message.Text = messages xunfeiRequest.Payload.Message.Text = messages
if len(lastToolCalls) != 0 {
for _, toolCall := range lastToolCalls { if strings.HasPrefix(domain, "generalv3") {
xunfeiRequest.Payload.Functions.Text = append(xunfeiRequest.Payload.Functions.Text, toolCall.Function) xunfeiRequest.Payload.Functions = &Functions{
Text: request.Tools,
} }
} }

View File

@ -9,6 +9,10 @@ type Message struct {
Content string `json:"content"` Content string `json:"content"`
} }
type Functions struct {
Text []model.Tool `json:"text,omitempty"`
}
type ChatRequest struct { type ChatRequest struct {
Header struct { Header struct {
AppId string `json:"app_id"` AppId string `json:"app_id"`
@ -26,9 +30,7 @@ type ChatRequest struct {
Message struct { Message struct {
Text []Message `json:"text"` Text []Message `json:"text"`
} `json:"message"` } `json:"message"`
Functions struct { Functions *Functions `json:"functions,omitempty"`
Text []model.Function `json:"text,omitempty"`
} `json:"functions,omitempty"`
} `json:"payload"` } `json:"payload"`
} }