Skip to content

Commit 7fa53af

Browse files
committed
feat: support spark new model
1 parent 93b4cef commit 7fa53af

File tree

5 files changed

+70
-30
lines changed

5 files changed

+70
-30
lines changed

adapter/sparkdesk/chat.go

+28-8
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import (
99
)
1010

1111
var FunctionCallingModels = []string{
12-
globals.SparkDeskV3,
13-
globals.SparkDeskV35,
12+
globals.SparkDeskMax,
13+
globals.SparkDeskV4Ultra,
1414
}
1515

1616
func GetToken(props *adaptercommon.ChatProps) *int {
@@ -19,11 +19,11 @@ func GetToken(props *adaptercommon.ChatProps) *int {
1919
}
2020

2121
switch props.Model {
22-
case globals.SparkDeskV2, globals.SparkDeskV3, globals.SparkDeskV35:
22+
case globals.SparkDeskLite, globals.SparkDeskPro128K:
2323
if *props.MaxTokens > 8192 {
2424
return utils.ToPtr(8192)
2525
}
26-
case globals.SparkDesk:
26+
case globals.SparkDeskPro, globals.SparkDeskMax, globals.SparkDeskMax32K, globals.SparkDeskV4Ultra:
2727
if *props.MaxTokens > 4096 {
2828
return utils.ToPtr(4096)
2929
}
@@ -32,6 +32,18 @@ func GetToken(props *adaptercommon.ChatProps) *int {
3232
return props.MaxTokens
3333
}
3434

35+
func GetTopK(props *adaptercommon.ChatProps) *int {
36+
if props.TopK == nil {
37+
return nil
38+
}
39+
// topk max value is 6
40+
if *props.TopK > 6 {
41+
return utils.ToPtr(6)
42+
}
43+
44+
return props.TopK
45+
}
46+
3547
func (c *ChatInstance) GetMessages(props *adaptercommon.ChatProps) []Message {
3648
var messages []Message
3749
for _, message := range props.Message {
@@ -103,8 +115,13 @@ func getChoice(form *ChatResponse) *globals.Chunk {
103115
}
104116

105117
func (c *ChatInstance) CreateStreamChatRequest(props *adaptercommon.ChatProps, hook globals.Hook) error {
106-
endpoint := fmt.Sprintf("%s/%s/chat", c.Endpoint, TransformAddr(props.Model))
107-
118+
var endpoint string
119+
switch props.Model {
120+
case globals.SparkDeskPro128K, globals.SparkDeskMax32K:
121+
endpoint = fmt.Sprintf("%s/chat/%s", c.Endpoint, TransformModel(props.Model))
122+
default:
123+
endpoint = fmt.Sprintf("%s/%s/chat", c.Endpoint, TransformAddr(props.Model))
124+
}
108125
var conn *utils.WebSocket
109126
if conn = utils.NewWebsocketClient(c.GenerateUrl(endpoint)); conn == nil {
110127
return fmt.Errorf("sparkdesk error: websocket connection failed")
@@ -121,10 +138,13 @@ func (c *ChatInstance) CreateStreamChatRequest(props *adaptercommon.ChatProps, h
121138
},
122139
Functions: c.GetFunctionCalling(props),
123140
},
141+
124142
Parameter: RequestParameter{
125143
Chat: ChatParameter{
126-
Domain: TransformModel(props.Model),
127-
MaxToken: GetToken(props),
144+
Domain: TransformModel(props.Model),
145+
MaxToken: GetToken(props),
146+
Temperature: props.Temperature,
147+
TopK: GetTopK(props),
128148
},
129149
},
130150
}); err != nil {

adapter/sparkdesk/struct.go

+14-10
Original file line numberDiff line numberDiff line change
@@ -21,29 +21,33 @@ type ChatInstance struct {
2121

2222
func TransformAddr(model string) string {
2323
switch model {
24-
case globals.SparkDesk:
24+
case globals.SparkDeskLite:
2525
return "v1.1"
26-
case globals.SparkDeskV2:
27-
return "v2.1"
28-
case globals.SparkDeskV3:
26+
case globals.SparkDeskPro:
2927
return "v3.1"
30-
case globals.SparkDeskV35:
28+
case globals.SparkDeskMax:
3129
return "v3.5"
30+
case globals.SparkDeskV4Ultra:
31+
return "v4.0"
3232
default:
3333
return "v1.1"
3434
}
3535
}
3636

3737
func TransformModel(model string) string {
3838
switch model {
39-
case globals.SparkDesk:
39+
case globals.SparkDeskLite:
4040
return "general"
41-
case globals.SparkDeskV2:
42-
return "generalv2"
43-
case globals.SparkDeskV3:
41+
case globals.SparkDeskPro:
4442
return "generalv3"
45-
case globals.SparkDeskV35:
43+
case globals.SparkDeskPro128K:
44+
return "pro-128k"
45+
case globals.SparkDeskMax:
4646
return "generalv3.5"
47+
case globals.SparkDeskMax32K:
48+
return "max-32k"
49+
case globals.SparkDeskV4Ultra:
50+
return "4.0Ultra"
4751
default:
4852
return "general"
4953
}

app/src/admin/channel.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,12 @@ export const ChannelInfos: Record<string, ChannelInfo> = {
188188
endpoint: "wss://spark-api.xf-yun.com",
189189
format: "<app-id>|<api-secret>|<api-key>",
190190
models: [
191-
"spark-desk-v1.5",
192-
"spark-desk-v2",
193-
"spark-desk-v3",
194-
"spark-desk-v3.5",
191+
"spark-desk-lite",
192+
"spark-desk-pro",
193+
"spark-desk-pro-128k",
194+
"spark-desk-max",
195+
"spark-desk-max-32k",
196+
"spark-desk-4.0-ultra",
195197
],
196198
},
197199
chatglm: {

app/src/admin/datasets/charge.ts

+16-4
Original file line numberDiff line numberDiff line change
@@ -155,17 +155,29 @@ export const pricing: PricingDataset = [
155155
billing_type: timesBilling,
156156
},
157157
{
158-
models: ["spark-desk-v1.5"],
159-
input: 0.015,
160-
output: 0.015,
158+
models: ["spark-desk-lite"], // free
159+
input: 0.001,
160+
output: 0.001,
161161
currency: Currency.CNY,
162162
},
163163
{
164-
models: ["spark-desk-v2", "spark-desk-v3", "spark-desk-v3.5"],
164+
models: ["spark-desk-pro", "spark-desk-pro-128k","spark-desk-max"],
165165
input: 0.03,
166166
output: 0.03,
167167
currency: Currency.CNY,
168168
},
169+
{
170+
models: ["spark-desk-max-32k"],
171+
input: 0.032,
172+
output: 0.032,
173+
currency: Currency.CNY,
174+
},
175+
{
176+
models: ["spark-desk-4.0-ultra"],
177+
input: 0.1,
178+
output: 0.1,
179+
currency: Currency.CNY,
180+
},
169181
{
170182
models: ["moonshot-v1-8k"],
171183
input: 0.012,

globals/variables.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,12 @@ const (
9898
Claude2200k = "claude-2.1"
9999
Claude3 = "claude-3"
100100
ClaudeSlack = "claude-slack"
101-
SparkDesk = "spark-desk-v1.5"
102-
SparkDeskV2 = "spark-desk-v2"
103-
SparkDeskV3 = "spark-desk-v3"
104-
SparkDeskV35 = "spark-desk-v3.5"
101+
SparkDeskLite = "spark-desk-lite"
102+
SparkDeskPro = "spark-desk-pro"
103+
SparkDeskPro128K = "spark-desk-pro-128k"
104+
SparkDeskMax = "spark-desk-max"
105+
SparkDeskMax32K = "spark-desk-max-32k"
106+
SparkDeskV4Ultra = "spark-desk-4.0-ultra"
105107
ChatBison001 = "chat-bison-001"
106108
GeminiPro = "gemini-pro"
107109
GeminiProVision = "gemini-pro-vision"

0 commit comments

Comments
 (0)