@lobehub/chat 1.19.3 → 1.19.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @lobehub/chat might be problematic. Click here for more details.
- package/CHANGELOG.md +51 -0
- package/next.config.mjs +10 -0
- package/package.json +6 -7
- package/scripts/buildSitemapIndex/index.ts +12 -0
- package/src/app/(main)/discover/(detail)/assistant/[slug]/page.tsx +1 -0
- package/src/app/(main)/discover/(detail)/model/[...slugs]/features/ProviderList/ProviderItem.tsx +1 -0
- package/src/app/(main)/discover/(detail)/model/[...slugs]/page.tsx +1 -0
- package/src/app/(main)/discover/(detail)/plugin/[slug]/page.tsx +1 -0
- package/src/app/(main)/discover/(detail)/provider/[slug]/features/ModelList/ModelItem.tsx +1 -0
- package/src/app/(main)/discover/(detail)/provider/[slug]/page.tsx +1 -0
- package/src/app/(main)/discover/(list)/_layout/Desktop/Nav.tsx +1 -0
- package/src/app/(main)/discover/_layout/Desktop/index.tsx +1 -0
- package/src/app/page.tsx +1 -1
- package/src/app/robots.tsx +16 -0
- package/src/app/sitemap.tsx +30 -0
- package/src/config/modelProviders/qwen.ts +112 -52
- package/src/config/modelProviders/stepfun.ts +8 -0
- package/src/const/url.ts +2 -2
- package/src/server/ld.test.ts +102 -0
- package/src/server/ld.ts +3 -9
- package/src/server/metadata.test.ts +138 -0
- package/src/server/metadata.ts +3 -3
- package/src/server/modules/AssistantStore/index.test.ts +1 -1
- package/src/server/modules/AssistantStore/index.ts +2 -6
- package/src/server/sitemap.test.ts +179 -0
- package/src/server/sitemap.ts +243 -0
- package/src/server/translation.test.ts +137 -0
- package/src/server/utils/url.test.ts +61 -0
- package/src/server/utils/url.ts +9 -0
- package/next-sitemap.config.mjs +0 -53
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,57 @@
|
|
2
2
|
|
3
3
|
# Changelog
|
4
4
|
|
5
|
+
### [Version 1.19.5](https://github.com/lobehub/lobe-chat/compare/v1.19.4...v1.19.5)
|
6
|
+
|
7
|
+
<sup>Released on **2024-09-19**</sup>
|
8
|
+
|
9
|
+
#### 💄 Styles
|
10
|
+
|
11
|
+
- **misc**: Enable functioncall for stepfun models, Update qwen models.
|
12
|
+
|
13
|
+
<br/>
|
14
|
+
|
15
|
+
<details>
|
16
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
17
|
+
|
18
|
+
#### Styles
|
19
|
+
|
20
|
+
- **misc**: Enable functioncall for stepfun models, closes [#4022](https://github.com/lobehub/lobe-chat/issues/4022) ([afb3509](https://github.com/lobehub/lobe-chat/commit/afb3509))
|
21
|
+
- **misc**: Update qwen models, closes [#4026](https://github.com/lobehub/lobe-chat/issues/4026) ([6169e8f](https://github.com/lobehub/lobe-chat/commit/6169e8f))
|
22
|
+
|
23
|
+
</details>
|
24
|
+
|
25
|
+
<div align="right">
|
26
|
+
|
27
|
+
[](#readme-top)
|
28
|
+
|
29
|
+
</div>
|
30
|
+
|
31
|
+
### [Version 1.19.4](https://github.com/lobehub/lobe-chat/compare/v1.19.3...v1.19.4)
|
32
|
+
|
33
|
+
<sup>Released on **2024-09-19**</sup>
|
34
|
+
|
35
|
+
#### ♻ Code Refactoring
|
36
|
+
|
37
|
+
- **misc**: Refactor the sitemap implement.
|
38
|
+
|
39
|
+
<br/>
|
40
|
+
|
41
|
+
<details>
|
42
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
43
|
+
|
44
|
+
#### Code refactoring
|
45
|
+
|
46
|
+
- **misc**: Refactor the sitemap implement, closes [#4012](https://github.com/lobehub/lobe-chat/issues/4012) ([d93a161](https://github.com/lobehub/lobe-chat/commit/d93a161))
|
47
|
+
|
48
|
+
</details>
|
49
|
+
|
50
|
+
<div align="right">
|
51
|
+
|
52
|
+
[](#readme-top)
|
53
|
+
|
54
|
+
</div>
|
55
|
+
|
5
56
|
### [Version 1.19.3](https://github.com/lobehub/lobe-chat/compare/v1.19.2...v1.19.3)
|
6
57
|
|
7
58
|
<sup>Released on **2024-09-19**</sup>
|
package/next.config.mjs
CHANGED
@@ -107,6 +107,16 @@ const nextConfig = {
|
|
107
107
|
output: buildWithDocker ? 'standalone' : undefined,
|
108
108
|
reactStrictMode: true,
|
109
109
|
redirects: async () => [
|
110
|
+
{
|
111
|
+
destination: '/sitemap-index.xml',
|
112
|
+
permanent: true,
|
113
|
+
source: '/sitemap.xml',
|
114
|
+
},
|
115
|
+
{
|
116
|
+
destination: '/discover',
|
117
|
+
permanent: true,
|
118
|
+
source: '/market',
|
119
|
+
},
|
110
120
|
{
|
111
121
|
destination: '/settings/common',
|
112
122
|
permanent: true,
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@lobehub/chat",
|
3
|
-
"version": "1.19.
|
3
|
+
"version": "1.19.5",
|
4
4
|
"description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
|
5
5
|
"keywords": [
|
6
6
|
"framework",
|
@@ -29,11 +29,11 @@
|
|
29
29
|
"build": "next build",
|
30
30
|
"postbuild": "npm run build-sitemap && npm run build-migrate-db",
|
31
31
|
"build-migrate-db": "bun run db:migrate",
|
32
|
-
"build-sitemap": "
|
32
|
+
"build-sitemap": "tsx ./scripts/buildSitemapIndex/index.ts",
|
33
33
|
"build:analyze": "ANALYZE=true next build",
|
34
34
|
"build:docker": "DOCKER=true next build && npm run build-sitemap",
|
35
35
|
"db:generate": "drizzle-kit generate",
|
36
|
-
"db:migrate": "MIGRATION_DB=1 tsx scripts/migrateServerDB/index.ts",
|
36
|
+
"db:migrate": "MIGRATION_DB=1 tsx ./scripts/migrateServerDB/index.ts",
|
37
37
|
"db:push": "drizzle-kit push",
|
38
38
|
"db:push-test": "NODE_ENV=test drizzle-kit push",
|
39
39
|
"db:studio": "drizzle-kit studio",
|
@@ -65,11 +65,11 @@
|
|
65
65
|
"test:update": "vitest -u",
|
66
66
|
"type-check": "tsc --noEmit",
|
67
67
|
"webhook:ngrok": "ngrok http http://localhost:3011",
|
68
|
-
"workflow:docs": "tsx scripts/docsWorkflow/index.ts",
|
69
|
-
"workflow:i18n": "tsx scripts/i18nWorkflow/index.ts",
|
68
|
+
"workflow:docs": "tsx ./scripts/docsWorkflow/index.ts",
|
69
|
+
"workflow:i18n": "tsx ./scripts/i18nWorkflow/index.ts",
|
70
70
|
"workflow:mdx": "tsx ./scripts/mdxWorkflow/index.ts",
|
71
71
|
"workflow:mdx-with-lint": "tsx ./scripts/mdxWorkflow/index.ts && eslint \"docs/**/*.mdx\" --quiet --fix",
|
72
|
-
"workflow:readme": "tsx scripts/readmeWorkflow/index.ts"
|
72
|
+
"workflow:readme": "tsx ./scripts/readmeWorkflow/index.ts"
|
73
73
|
},
|
74
74
|
"lint-staged": {
|
75
75
|
"*.md": [
|
@@ -172,7 +172,6 @@
|
|
172
172
|
"next": "14.2.8",
|
173
173
|
"next-auth": "beta",
|
174
174
|
"next-mdx-remote": "^4.4.1",
|
175
|
-
"next-sitemap": "^4.2.3",
|
176
175
|
"nextjs-toploader": "^3.6.15",
|
177
176
|
"numeral": "^2.0.6",
|
178
177
|
"nuqs": "^1.17.8",
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { writeFileSync } from 'node:fs';
|
2
|
+
import { resolve } from 'node:path';
|
3
|
+
|
4
|
+
import { sitemapModule } from '@/server/sitemap';
|
5
|
+
|
6
|
+
const genSitemap = () => {
|
7
|
+
const sitemapIndexXML = sitemapModule.getIndex();
|
8
|
+
const filename = resolve(__dirname, '../../', 'public', 'sitemap-index.xml');
|
9
|
+
writeFileSync(filename, sitemapIndexXML);
|
10
|
+
};
|
11
|
+
|
12
|
+
genSitemap();
|
@@ -100,6 +100,7 @@ const Page = async ({ params, searchParams }: Props) => {
|
|
100
100
|
mobile={mobile}
|
101
101
|
sidebar={<InfoSidebar data={data} identifier={identifier} mobile={mobile} />}
|
102
102
|
/* ↓ cloud slot ↓ */
|
103
|
+
|
103
104
|
/* ↑ cloud slot ↑ */
|
104
105
|
>
|
105
106
|
<ProviderList data={providerData} identifier={identifier} mobile={mobile} />
|
@@ -102,6 +102,7 @@ const Page = async ({ params, searchParams }: Props) => {
|
|
102
102
|
mobile={mobile}
|
103
103
|
sidebar={<InfoSidebar data={data} identifier={identifier} />}
|
104
104
|
/* ↓ cloud slot ↓ */
|
105
|
+
|
105
106
|
/* ↑ cloud slot ↑ */
|
106
107
|
>
|
107
108
|
<ModelList identifier={identifier} mobile={mobile} modelData={modelData} />
|
package/src/app/page.tsx
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
import { MetadataRoute } from 'next';
|
2
|
+
|
3
|
+
import { sitemapModule } from '@/server/sitemap';
|
4
|
+
import { getCanonicalUrl } from '@/server/utils/url';
|
5
|
+
|
6
|
+
export default function robots(): MetadataRoute.Robots {
|
7
|
+
return {
|
8
|
+
host: getCanonicalUrl(),
|
9
|
+
rules: {
|
10
|
+
allow: ['/'],
|
11
|
+
disallow: ['/api/*'],
|
12
|
+
userAgent: '*',
|
13
|
+
},
|
14
|
+
sitemap: sitemapModule.getRobots(),
|
15
|
+
};
|
16
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { MetadataRoute } from 'next';
|
2
|
+
|
3
|
+
import { SitemapType, sitemapModule } from '@/server/sitemap';
|
4
|
+
|
5
|
+
export const generateSitemaps = async () => {
|
6
|
+
// Fetch the total number of products and calculate the number of sitemaps needed
|
7
|
+
return sitemapModule.sitemapIndexs;
|
8
|
+
};
|
9
|
+
|
10
|
+
const Sitemap = async ({ id }: { id: SitemapType }): Promise<MetadataRoute.Sitemap> => {
|
11
|
+
switch (id) {
|
12
|
+
case SitemapType.Pages: {
|
13
|
+
return sitemapModule.getPage();
|
14
|
+
}
|
15
|
+
case SitemapType.Assistants: {
|
16
|
+
return sitemapModule.getAssistants();
|
17
|
+
}
|
18
|
+
case SitemapType.Plugins: {
|
19
|
+
return sitemapModule.getPlugins();
|
20
|
+
}
|
21
|
+
case SitemapType.Models: {
|
22
|
+
return sitemapModule.getModels();
|
23
|
+
}
|
24
|
+
case SitemapType.Providers: {
|
25
|
+
return sitemapModule.getProviders();
|
26
|
+
}
|
27
|
+
}
|
28
|
+
};
|
29
|
+
|
30
|
+
export default Sitemap;
|
@@ -1,22 +1,10 @@
|
|
1
1
|
import { ModelProviderCard } from '@/types/llm';
|
2
2
|
|
3
|
-
// ref
|
3
|
+
// ref: https://help.aliyun.com/zh/model-studio/getting-started/models
|
4
4
|
const Qwen: ModelProviderCard = {
|
5
5
|
chatModels: [
|
6
6
|
{
|
7
|
-
description:
|
8
|
-
'通义千问超大规模语言模型,支持长文本上下文,以及基于长文档、多文档等多个场景的对话功能。',
|
9
|
-
displayName: 'Qwen Long',
|
10
|
-
id: 'qwen-long',
|
11
|
-
pricing: {
|
12
|
-
currency: 'CNY',
|
13
|
-
input: 0.5,
|
14
|
-
output: 2,
|
15
|
-
},
|
16
|
-
tokens: 1_000_000, // https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction
|
17
|
-
},
|
18
|
-
{
|
19
|
-
description: '通义千问超大规模语言模型,支持中文、英文等不同语言输入',
|
7
|
+
description: '通义千问超大规模语言模型,支持中文、英文等不同语言输入。',
|
20
8
|
displayName: 'Qwen Turbo',
|
21
9
|
enabled: true,
|
22
10
|
functionCall: true,
|
@@ -26,10 +14,10 @@ const Qwen: ModelProviderCard = {
|
|
26
14
|
input: 0.3,
|
27
15
|
output: 0.6,
|
28
16
|
},
|
29
|
-
tokens: 131_072,
|
17
|
+
tokens: 131_072,
|
30
18
|
},
|
31
19
|
{
|
32
|
-
description: '
|
20
|
+
description: '通义千问超大规模语言模型增强版,支持中文、英文等不同语言输入。',
|
33
21
|
displayName: 'Qwen Plus',
|
34
22
|
enabled: true,
|
35
23
|
functionCall: true,
|
@@ -39,11 +27,11 @@ const Qwen: ModelProviderCard = {
|
|
39
27
|
input: 0.8,
|
40
28
|
output: 2,
|
41
29
|
},
|
42
|
-
tokens: 131_072,
|
30
|
+
tokens: 131_072,
|
43
31
|
},
|
44
32
|
{
|
45
33
|
description:
|
46
|
-
'通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入,当前通义千问2.5产品版本背后的API
|
34
|
+
'通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入,当前通义千问2.5产品版本背后的API模型。',
|
47
35
|
displayName: 'Qwen Max',
|
48
36
|
enabled: true,
|
49
37
|
functionCall: true,
|
@@ -53,7 +41,30 @@ const Qwen: ModelProviderCard = {
|
|
53
41
|
input: 20,
|
54
42
|
output: 60,
|
55
43
|
},
|
56
|
-
tokens: 32_768,
|
44
|
+
tokens: 32_768,
|
45
|
+
},
|
46
|
+
{
|
47
|
+
description: '通义千问代码模型。',
|
48
|
+
displayName: 'Qwen Coder',
|
49
|
+
id: 'qwen-coder-turbo-latest',
|
50
|
+
pricing: {
|
51
|
+
currency: 'CNY',
|
52
|
+
input: 2,
|
53
|
+
output: 6,
|
54
|
+
},
|
55
|
+
tokens: 131_072,
|
56
|
+
},
|
57
|
+
{
|
58
|
+
description:
|
59
|
+
'通义千问超大规模语言模型,支持长文本上下文,以及基于长文档、多文档等多个场景的对话功能。',
|
60
|
+
displayName: 'Qwen Long',
|
61
|
+
id: 'qwen-long',
|
62
|
+
pricing: {
|
63
|
+
currency: 'CNY',
|
64
|
+
input: 0.5,
|
65
|
+
output: 2,
|
66
|
+
},
|
67
|
+
tokens: 1_000_000,
|
57
68
|
},
|
58
69
|
{
|
59
70
|
description:
|
@@ -66,8 +77,8 @@ const Qwen: ModelProviderCard = {
|
|
66
77
|
input: 8,
|
67
78
|
output: 8,
|
68
79
|
},
|
69
|
-
tokens:
|
70
|
-
vision: true,
|
80
|
+
tokens: 8000,
|
81
|
+
vision: true,
|
71
82
|
},
|
72
83
|
{
|
73
84
|
description:
|
@@ -80,71 +91,120 @@ const Qwen: ModelProviderCard = {
|
|
80
91
|
input: 20,
|
81
92
|
output: 20,
|
82
93
|
},
|
83
|
-
tokens:
|
84
|
-
vision: true,
|
94
|
+
tokens: 32_000,
|
95
|
+
vision: true,
|
85
96
|
},
|
86
|
-
// ref :https://help.aliyun.com/zh/dashscope/developer-reference/tongyi-qianwen-7b-14b-72b-api-detailes
|
87
97
|
{
|
88
|
-
description:
|
98
|
+
description:
|
99
|
+
'通义千问数学模型是专门用于数学解题的语言模型。',
|
100
|
+
displayName: 'Qwen Math Turbo',
|
101
|
+
id: 'qwen-math-turbo-latest',
|
102
|
+
pricing: {
|
103
|
+
currency: 'CNY',
|
104
|
+
input: 2,
|
105
|
+
output: 6,
|
106
|
+
},
|
107
|
+
tokens: 4096,
|
108
|
+
},
|
109
|
+
{
|
110
|
+
description:
|
111
|
+
'通义千问数学模型是专门用于数学解题的语言模型。',
|
112
|
+
displayName: 'Qwen Math Plus',
|
113
|
+
id: 'qwen-math-plus-latest',
|
114
|
+
pricing: {
|
115
|
+
currency: 'CNY',
|
116
|
+
input: 4,
|
117
|
+
output: 12,
|
118
|
+
},
|
119
|
+
tokens: 4096,
|
120
|
+
},
|
121
|
+
{
|
122
|
+
description: '通义千问2.5对外开源的7B规模的模型。',
|
89
123
|
displayName: 'Qwen2.5 7B',
|
90
124
|
functionCall: true,
|
91
125
|
id: 'qwen2.5-7b-instruct',
|
92
|
-
tokens: 131_072,
|
126
|
+
tokens: 131_072,
|
127
|
+
},
|
128
|
+
{
|
129
|
+
description: '通义千问2.5对外开源的14B规模的模型。',
|
130
|
+
displayName: 'Qwen2.5 14B',
|
131
|
+
functionCall: true,
|
132
|
+
id: 'qwen2.5-14b-instruct',
|
133
|
+
tokens: 131_072,
|
93
134
|
},
|
94
135
|
{
|
95
|
-
description: '通义千问2.5对外开源的32B
|
136
|
+
description: '通义千问2.5对外开源的32B规模的模型。',
|
96
137
|
displayName: 'Qwen2.5 32B',
|
97
138
|
functionCall: true,
|
98
139
|
id: 'qwen2.5-32b-instruct',
|
99
|
-
tokens: 131_072,
|
140
|
+
tokens: 131_072,
|
100
141
|
},
|
101
142
|
{
|
102
|
-
description: '通义千问2.5对外开源的72B
|
143
|
+
description: '通义千问2.5对外开源的72B规模的模型。',
|
103
144
|
displayName: 'Qwen2.5 72B',
|
104
145
|
functionCall: true,
|
105
146
|
id: 'qwen2.5-72b-instruct',
|
106
|
-
tokens: 131_072,
|
147
|
+
tokens: 131_072,
|
107
148
|
},
|
108
149
|
{
|
109
|
-
description: '通义千问2对外开源的
|
110
|
-
displayName: 'Qwen2 7B',
|
111
|
-
functionCall: true,
|
112
|
-
id: 'qwen2-7b-instruct',
|
113
|
-
tokens: 131_072, // https://huggingface.co/Qwen/Qwen2-7B-Instruct
|
114
|
-
},
|
115
|
-
{
|
116
|
-
description: '通义千问2对外开源的57B规模14B激活参数的MOE模型',
|
150
|
+
description: '通义千问2对外开源的57B规模14B激活参数的MOE模型。',
|
117
151
|
displayName: 'Qwen2 57B A14B MoE',
|
118
152
|
functionCall: true,
|
119
153
|
id: 'qwen2-57b-a14b-instruct',
|
120
|
-
tokens: 65_536,
|
154
|
+
tokens: 65_536,
|
121
155
|
},
|
122
156
|
{
|
123
|
-
description: '
|
124
|
-
displayName: 'Qwen2
|
125
|
-
|
126
|
-
|
127
|
-
|
157
|
+
description: 'Qwen-Math 模型具有强大的数学解题能力。',
|
158
|
+
displayName: 'Qwen2.5 Math 1.5B',
|
159
|
+
id: 'qwen2.5-math-1.5b-instruct',
|
160
|
+
pricing: {
|
161
|
+
currency: 'CNY',
|
162
|
+
input: 0,
|
163
|
+
output: 0,
|
164
|
+
},
|
165
|
+
tokens: 4096,
|
128
166
|
},
|
129
167
|
{
|
130
|
-
description: '
|
131
|
-
displayName: 'Qwen2 Math
|
132
|
-
|
133
|
-
|
134
|
-
|
168
|
+
description: 'Qwen-Math 模型具有强大的数学解题能力。',
|
169
|
+
displayName: 'Qwen2.5 Math 7B',
|
170
|
+
id: 'qwen2.5-math-7b-instruct',
|
171
|
+
tokens: 4096,
|
172
|
+
},
|
173
|
+
{
|
174
|
+
description: 'Qwen-Math 模型具有强大的数学解题能力。',
|
175
|
+
displayName: 'Qwen2.5 Math 72B',
|
176
|
+
id: 'qwen2.5-math-72b-instruct',
|
177
|
+
tokens: 4096,
|
178
|
+
},
|
179
|
+
{
|
180
|
+
description: '通义千问代码模型开源版。',
|
181
|
+
displayName: 'Qwen2.5 Coder 1.5B',
|
182
|
+
id: 'qwen2.5-coder-1.5b-instruct',
|
183
|
+
pricing: {
|
184
|
+
currency: 'CNY',
|
185
|
+
input: 0,
|
186
|
+
output: 0,
|
187
|
+
},
|
188
|
+
tokens: 131_072,
|
189
|
+
},
|
190
|
+
{
|
191
|
+
description: '通义千问代码模型开源版。',
|
192
|
+
displayName: 'Qwen2.5 Coder 7B',
|
193
|
+
id: 'qwen2.5-coder-7b-instruct',
|
194
|
+
tokens: 131_072,
|
135
195
|
},
|
136
196
|
{
|
137
197
|
description: '以 Qwen-7B 语言模型初始化,添加图像模型,图像输入分辨率为448的预训练模型。',
|
138
198
|
displayName: 'Qwen VL',
|
139
199
|
id: 'qwen-vl-v1',
|
140
|
-
tokens:
|
200
|
+
tokens: 8000,
|
141
201
|
vision: true,
|
142
202
|
},
|
143
203
|
{
|
144
204
|
description: '通义千问VL支持灵活的交互方式,包括多图、多轮问答、创作等能力的模型。',
|
145
205
|
displayName: 'Qwen VL Chat',
|
146
206
|
id: 'qwen-vl-chat-v1',
|
147
|
-
tokens:
|
207
|
+
tokens: 8000,
|
148
208
|
vision: true,
|
149
209
|
},
|
150
210
|
],
|
@@ -160,7 +220,7 @@ const Qwen: ModelProviderCard = {
|
|
160
220
|
speed: 2,
|
161
221
|
text: true,
|
162
222
|
},
|
163
|
-
url: 'https://
|
223
|
+
url: 'https://www.aliyun.com/product/bailian',
|
164
224
|
};
|
165
225
|
|
166
226
|
export default Qwen;
|
@@ -8,12 +8,14 @@ const Stepfun: ModelProviderCard = {
|
|
8
8
|
description: '支持大规模上下文交互,适合复杂对话场景。',
|
9
9
|
displayName: 'Step 2 16K',
|
10
10
|
enabled: true,
|
11
|
+
functionCall: true,
|
11
12
|
id: 'step-2-16k',
|
12
13
|
tokens: 16_000,
|
13
14
|
},
|
14
15
|
{
|
15
16
|
description: '具备超长上下文处理能力,尤其适合长文档分析。',
|
16
17
|
displayName: 'Step 1 256K',
|
18
|
+
functionCall: true,
|
17
19
|
id: 'step-1-256k',
|
18
20
|
tokens: 256_000,
|
19
21
|
},
|
@@ -21,6 +23,7 @@ const Stepfun: ModelProviderCard = {
|
|
21
23
|
description: '平衡性能与成本,适合一般场景。',
|
22
24
|
displayName: 'Step 1 128K',
|
23
25
|
enabled: true,
|
26
|
+
functionCall: true,
|
24
27
|
id: 'step-1-128k',
|
25
28
|
tokens: 128_000,
|
26
29
|
},
|
@@ -28,6 +31,7 @@ const Stepfun: ModelProviderCard = {
|
|
28
31
|
description: '支持中等长度的对话,适用于多种应用场景。',
|
29
32
|
displayName: 'Step 1 32K',
|
30
33
|
enabled: true,
|
34
|
+
functionCall: true,
|
31
35
|
id: 'step-1-32k',
|
32
36
|
tokens: 32_000,
|
33
37
|
},
|
@@ -35,6 +39,7 @@ const Stepfun: ModelProviderCard = {
|
|
35
39
|
description: '小型模型,适合轻量级任务。',
|
36
40
|
displayName: 'Step 1 8K',
|
37
41
|
enabled: true,
|
42
|
+
functionCall: true,
|
38
43
|
id: 'step-1-8k',
|
39
44
|
tokens: 8000,
|
40
45
|
},
|
@@ -42,6 +47,7 @@ const Stepfun: ModelProviderCard = {
|
|
42
47
|
description: '高速模型,适合实时对话。',
|
43
48
|
displayName: 'Step 1 Flash',
|
44
49
|
enabled: true,
|
50
|
+
functionCall: true,
|
45
51
|
id: 'step-1-flash',
|
46
52
|
tokens: 8000,
|
47
53
|
},
|
@@ -49,6 +55,7 @@ const Stepfun: ModelProviderCard = {
|
|
49
55
|
description: '支持视觉输入,增强多模态交互体验。',
|
50
56
|
displayName: 'Step 1V 32K',
|
51
57
|
enabled: true,
|
58
|
+
functionCall: true,
|
52
59
|
id: 'step-1v-32k',
|
53
60
|
tokens: 32_000,
|
54
61
|
vision: true,
|
@@ -57,6 +64,7 @@ const Stepfun: ModelProviderCard = {
|
|
57
64
|
description: '小型视觉模型,适合基本的图文任务。',
|
58
65
|
displayName: 'Step 1V 8K',
|
59
66
|
enabled: true,
|
67
|
+
functionCall: true,
|
60
68
|
id: 'step-1v-8k',
|
61
69
|
tokens: 8000,
|
62
70
|
vision: true,
|
package/src/const/url.ts
CHANGED
@@ -2,6 +2,7 @@ import qs from 'query-string';
|
|
2
2
|
import urlJoin from 'url-join';
|
3
3
|
|
4
4
|
import { withBasePath } from '@/utils/basePath';
|
5
|
+
import { isDev } from '@/utils/env';
|
5
6
|
|
6
7
|
import pkg from '../../package.json';
|
7
8
|
import { INBOX_SESSION_ID } from './session';
|
@@ -12,8 +13,6 @@ export const OFFICIAL_URL = 'https://lobechat.com/';
|
|
12
13
|
export const OFFICIAL_PREVIEW_URL = 'https://chat-preview.lobehub.com/';
|
13
14
|
export const OFFICIAL_SITE = 'https://lobehub.com/';
|
14
15
|
|
15
|
-
export const getCanonicalUrl = (path: string) => urlJoin(OFFICIAL_URL, path);
|
16
|
-
|
17
16
|
export const OG_URL = '/og/cover.png?v=1';
|
18
17
|
|
19
18
|
export const GITHUB = pkg.homepage;
|
@@ -73,3 +72,4 @@ export const mailTo = (email: string) => `mailto:${email}`;
|
|
73
72
|
|
74
73
|
export const AES_GCM_URL = 'https://datatracker.ietf.org/doc/html/draft-ietf-avt-srtp-aes-gcm-01';
|
75
74
|
export const BASE_PROVIDER_DOC_URL = 'https://lobehub.com/docs/usage/providers';
|
75
|
+
export const SITEMAP_BASE_URL = isDev ? '/sitemap.xml/' : 'sitemap';
|