mirror of
https://github.com/coaidev/coai.git
synced 2025-05-20 05:20:15 +09:00
Merge pull request #253 from mercury7720/main
feat: support spark desk new model
This commit is contained in:
commit
3f6026db42
@ -9,8 +9,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var FunctionCallingModels = []string{
|
var FunctionCallingModels = []string{
|
||||||
globals.SparkDeskV3,
|
globals.SparkDeskMax,
|
||||||
globals.SparkDeskV35,
|
globals.SparkDeskV4Ultra,
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetToken(props *adaptercommon.ChatProps) *int {
|
func GetToken(props *adaptercommon.ChatProps) *int {
|
||||||
@ -19,19 +19,31 @@ func GetToken(props *adaptercommon.ChatProps) *int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch props.Model {
|
switch props.Model {
|
||||||
case globals.SparkDeskV2, globals.SparkDeskV3, globals.SparkDeskV35:
|
case globals.SparkDeskLite, globals.SparkDeskPro128K:
|
||||||
if *props.MaxTokens > 8192 {
|
|
||||||
return utils.ToPtr(8192)
|
|
||||||
}
|
|
||||||
case globals.SparkDesk:
|
|
||||||
if *props.MaxTokens > 4096 {
|
if *props.MaxTokens > 4096 {
|
||||||
return utils.ToPtr(4096)
|
return utils.ToPtr(4096)
|
||||||
}
|
}
|
||||||
|
case globals.SparkDeskPro, globals.SparkDeskMax, globals.SparkDeskMax32K, globals.SparkDeskV4Ultra:
|
||||||
|
if *props.MaxTokens > 8192 {
|
||||||
|
return utils.ToPtr(8192)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return props.MaxTokens
|
return props.MaxTokens
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetTopK(props *adaptercommon.ChatProps) *int {
|
||||||
|
if props.TopK == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
// topk max value is 6
|
||||||
|
if *props.TopK > 6 {
|
||||||
|
return utils.ToPtr(6)
|
||||||
|
}
|
||||||
|
|
||||||
|
return props.TopK
|
||||||
|
}
|
||||||
|
|
||||||
func (c *ChatInstance) GetMessages(props *adaptercommon.ChatProps) []Message {
|
func (c *ChatInstance) GetMessages(props *adaptercommon.ChatProps) []Message {
|
||||||
var messages []Message
|
var messages []Message
|
||||||
for _, message := range props.Message {
|
for _, message := range props.Message {
|
||||||
@ -103,8 +115,13 @@ func getChoice(form *ChatResponse) *globals.Chunk {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *ChatInstance) CreateStreamChatRequest(props *adaptercommon.ChatProps, hook globals.Hook) error {
|
func (c *ChatInstance) CreateStreamChatRequest(props *adaptercommon.ChatProps, hook globals.Hook) error {
|
||||||
endpoint := fmt.Sprintf("%s/%s/chat", c.Endpoint, TransformAddr(props.Model))
|
var endpoint string
|
||||||
|
switch props.Model {
|
||||||
|
case globals.SparkDeskPro128K, globals.SparkDeskMax32K:
|
||||||
|
endpoint = fmt.Sprintf("%s/chat/%s", c.Endpoint, TransformModel(props.Model))
|
||||||
|
default:
|
||||||
|
endpoint = fmt.Sprintf("%s/%s/chat", c.Endpoint, TransformAddr(props.Model))
|
||||||
|
}
|
||||||
var conn *utils.WebSocket
|
var conn *utils.WebSocket
|
||||||
if conn = utils.NewWebsocketClient(c.GenerateUrl(endpoint)); conn == nil {
|
if conn = utils.NewWebsocketClient(c.GenerateUrl(endpoint)); conn == nil {
|
||||||
return fmt.Errorf("sparkdesk error: websocket connection failed")
|
return fmt.Errorf("sparkdesk error: websocket connection failed")
|
||||||
@ -121,10 +138,13 @@ func (c *ChatInstance) CreateStreamChatRequest(props *adaptercommon.ChatProps, h
|
|||||||
},
|
},
|
||||||
Functions: c.GetFunctionCalling(props),
|
Functions: c.GetFunctionCalling(props),
|
||||||
},
|
},
|
||||||
|
|
||||||
Parameter: RequestParameter{
|
Parameter: RequestParameter{
|
||||||
Chat: ChatParameter{
|
Chat: ChatParameter{
|
||||||
Domain: TransformModel(props.Model),
|
Domain: TransformModel(props.Model),
|
||||||
MaxToken: GetToken(props),
|
MaxToken: GetToken(props),
|
||||||
|
Temperature: props.Temperature,
|
||||||
|
TopK: GetTopK(props),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
|
@ -21,14 +21,14 @@ type ChatInstance struct {
|
|||||||
|
|
||||||
func TransformAddr(model string) string {
|
func TransformAddr(model string) string {
|
||||||
switch model {
|
switch model {
|
||||||
case globals.SparkDesk:
|
case globals.SparkDeskLite:
|
||||||
return "v1.1"
|
return "v1.1"
|
||||||
case globals.SparkDeskV2:
|
case globals.SparkDeskPro:
|
||||||
return "v2.1"
|
|
||||||
case globals.SparkDeskV3:
|
|
||||||
return "v3.1"
|
return "v3.1"
|
||||||
case globals.SparkDeskV35:
|
case globals.SparkDeskMax:
|
||||||
return "v3.5"
|
return "v3.5"
|
||||||
|
case globals.SparkDeskV4Ultra:
|
||||||
|
return "v4.0"
|
||||||
default:
|
default:
|
||||||
return "v1.1"
|
return "v1.1"
|
||||||
}
|
}
|
||||||
@ -36,14 +36,18 @@ func TransformAddr(model string) string {
|
|||||||
|
|
||||||
func TransformModel(model string) string {
|
func TransformModel(model string) string {
|
||||||
switch model {
|
switch model {
|
||||||
case globals.SparkDesk:
|
case globals.SparkDeskLite:
|
||||||
return "general"
|
return "general"
|
||||||
case globals.SparkDeskV2:
|
case globals.SparkDeskPro:
|
||||||
return "generalv2"
|
|
||||||
case globals.SparkDeskV3:
|
|
||||||
return "generalv3"
|
return "generalv3"
|
||||||
case globals.SparkDeskV35:
|
case globals.SparkDeskPro128K:
|
||||||
|
return "pro-128k"
|
||||||
|
case globals.SparkDeskMax:
|
||||||
return "generalv3.5"
|
return "generalv3.5"
|
||||||
|
case globals.SparkDeskMax32K:
|
||||||
|
return "max-32k"
|
||||||
|
case globals.SparkDeskV4Ultra:
|
||||||
|
return "4.0Ultra"
|
||||||
default:
|
default:
|
||||||
return "general"
|
return "general"
|
||||||
}
|
}
|
||||||
|
@ -188,10 +188,12 @@ export const ChannelInfos: Record<string, ChannelInfo> = {
|
|||||||
endpoint: "wss://spark-api.xf-yun.com",
|
endpoint: "wss://spark-api.xf-yun.com",
|
||||||
format: "<app-id>|<api-secret>|<api-key>",
|
format: "<app-id>|<api-secret>|<api-key>",
|
||||||
models: [
|
models: [
|
||||||
"spark-desk-v1.5",
|
"spark-desk-lite",
|
||||||
"spark-desk-v2",
|
"spark-desk-pro",
|
||||||
"spark-desk-v3",
|
"spark-desk-pro-128k",
|
||||||
"spark-desk-v3.5",
|
"spark-desk-max",
|
||||||
|
"spark-desk-max-32k",
|
||||||
|
"spark-desk-4.0-ultra",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
chatglm: {
|
chatglm: {
|
||||||
|
@ -155,17 +155,29 @@ export const pricing: PricingDataset = [
|
|||||||
billing_type: timesBilling,
|
billing_type: timesBilling,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
models: ["spark-desk-v1.5"],
|
models: ["spark-desk-lite"], // free
|
||||||
input: 0.015,
|
input: 0.001,
|
||||||
output: 0.015,
|
output: 0.001,
|
||||||
currency: Currency.CNY,
|
currency: Currency.CNY,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
models: ["spark-desk-v2", "spark-desk-v3", "spark-desk-v3.5"],
|
models: ["spark-desk-pro", "spark-desk-pro-128k","spark-desk-max"],
|
||||||
input: 0.03,
|
input: 0.03,
|
||||||
output: 0.03,
|
output: 0.03,
|
||||||
currency: Currency.CNY,
|
currency: Currency.CNY,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
models: ["spark-desk-max-32k"],
|
||||||
|
input: 0.032,
|
||||||
|
output: 0.032,
|
||||||
|
currency: Currency.CNY,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
models: ["spark-desk-4.0-ultra"],
|
||||||
|
input: 0.1,
|
||||||
|
output: 0.1,
|
||||||
|
currency: Currency.CNY,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
models: ["moonshot-v1-8k"],
|
models: ["moonshot-v1-8k"],
|
||||||
input: 0.012,
|
input: 0.012,
|
||||||
|
@ -98,10 +98,12 @@ const (
|
|||||||
Claude2200k = "claude-2.1"
|
Claude2200k = "claude-2.1"
|
||||||
Claude3 = "claude-3"
|
Claude3 = "claude-3"
|
||||||
ClaudeSlack = "claude-slack"
|
ClaudeSlack = "claude-slack"
|
||||||
SparkDesk = "spark-desk-v1.5"
|
SparkDeskLite = "spark-desk-lite"
|
||||||
SparkDeskV2 = "spark-desk-v2"
|
SparkDeskPro = "spark-desk-pro"
|
||||||
SparkDeskV3 = "spark-desk-v3"
|
SparkDeskPro128K = "spark-desk-pro-128k"
|
||||||
SparkDeskV35 = "spark-desk-v3.5"
|
SparkDeskMax = "spark-desk-max"
|
||||||
|
SparkDeskMax32K = "spark-desk-max-32k"
|
||||||
|
SparkDeskV4Ultra = "spark-desk-4.0-ultra"
|
||||||
ChatBison001 = "chat-bison-001"
|
ChatBison001 = "chat-bison-001"
|
||||||
GeminiPro = "gemini-pro"
|
GeminiPro = "gemini-pro"
|
||||||
GeminiProVision = "gemini-pro-vision"
|
GeminiProVision = "gemini-pro-vision"
|
||||||
|
Loading…
Reference in New Issue
Block a user