@lobehub/chat 0.161.15 → 0.161.17
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.
- package/CHANGELOG.md +50 -0
- package/README.md +8 -8
- package/README.zh-CN.md +8 -8
- package/docs/self-hosting/environment-variables/model-provider.mdx +7 -0
- package/docs/self-hosting/environment-variables/model-provider.zh-CN.mdx +7 -0
- package/package.json +1 -1
- package/src/app/(main)/chat/@session/features/SessionListContent/List/Item/index.tsx +1 -1
- package/src/app/(main)/chat/_layout/Desktop/index.tsx +3 -0
- package/src/app/(main)/chat/settings/features/EditPage.tsx +5 -1
- package/src/app/(main)/welcome/_layout/Desktop.tsx +21 -16
- package/src/app/@modal/chat/(.)settings/modal/layout.tsx +5 -2
- package/src/app/metadata.ts +1 -1
- package/src/config/llm.ts +39 -63
- package/src/const/session.ts +2 -2
- package/src/const/settings/agent.ts +6 -2
- package/src/database/client/core/db.ts +22 -0
- package/src/database/client/core/migrations/migrateSettingsToUser/index.ts +3 -5
- package/src/database/client/core/migrations/migrateSettingsToUser/type.ts +18 -10
- package/src/database/client/models/session.ts +4 -0
- package/src/database/client/schemas/session.ts +2 -9
- package/src/features/AgentSetting/AgentChat/index.tsx +19 -10
- package/src/features/AgentSetting/AgentModal/index.tsx +2 -1
- package/src/features/AgentSetting/StoreUpdater.tsx +3 -2
- package/src/features/AgentSetting/store/action.ts +12 -5
- package/src/features/AgentSetting/store/initialState.ts +2 -1
- package/src/features/AgentSetting/store/selectors.ts +11 -0
- package/src/features/ChatInput/ActionBar/History.tsx +2 -2
- package/src/features/Conversation/components/ChatItem/index.tsx +2 -2
- package/src/migrations/FromV5ToV6/fixtures/from-v1-to-v6-output.json +247 -0
- package/src/migrations/FromV5ToV6/fixtures/session-input-v5.json +81 -0
- package/src/migrations/FromV5ToV6/fixtures/session-output-v6.json +85 -0
- package/src/migrations/FromV5ToV6/index.ts +61 -0
- package/src/migrations/FromV5ToV6/migrations.test.ts +50 -0
- package/src/migrations/FromV5ToV6/types/v5.ts +48 -0
- package/src/migrations/FromV5ToV6/types/v6.ts +60 -0
- package/src/migrations/index.ts +8 -1
- package/src/services/session/client.test.ts +1 -1
- package/src/services/session/client.ts +18 -2
- package/src/services/session/type.ts +11 -2
- package/src/store/agent/slices/chat/__snapshots__/selectors.test.ts.snap +6 -4
- package/src/store/agent/slices/chat/action.test.ts +15 -3
- package/src/store/agent/slices/chat/action.ts +51 -5
- package/src/store/agent/slices/chat/initialState.ts +2 -0
- package/src/store/agent/slices/chat/selectors.test.ts +0 -3
- package/src/store/agent/slices/chat/selectors.ts +10 -2
- package/src/store/chat/helpers.test.ts +6 -6
- package/src/store/chat/helpers.ts +2 -2
- package/src/store/chat/slices/message/action.test.ts +9 -4
- package/src/store/chat/slices/message/action.ts +19 -15
- package/src/store/chat/slices/message/selectors.test.ts +4 -2
- package/src/store/chat/slices/message/selectors.ts +1 -1
- package/src/store/session/slices/session/action.test.ts +6 -7
- package/src/store/user/slices/settings/selectors/__snapshots__/settings.test.ts.snap +6 -4
- package/src/types/agent/index.ts +37 -19
- package/src/types/session/agentSession.ts +35 -0
- package/src/types/session/index.ts +10 -0
- package/src/types/session/sessionGroup.ts +24 -0
- package/vitest.config.ts +7 -1
- package/src/types/session.ts +0 -57
- /package/public/{icons/apple-touch-icon.png → apple-touch-icon.png} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,56 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog
|
|
4
4
|
|
|
5
|
+
### [Version 0.161.17](https://github.com/lobehub/lobe-chat/compare/v0.161.16...v0.161.17)
|
|
6
|
+
|
|
7
|
+
<sup>Released on **2024-05-25**</sup>
|
|
8
|
+
|
|
9
|
+
#### ♻ Code Refactoring
|
|
10
|
+
|
|
11
|
+
- **misc**: Migrate some agent config to `chatConfig`.
|
|
12
|
+
|
|
13
|
+
<br/>
|
|
14
|
+
|
|
15
|
+
<details>
|
|
16
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
17
|
+
|
|
18
|
+
#### Code refactoring
|
|
19
|
+
|
|
20
|
+
- **misc**: Migrate some agent config to `chatConfig`, closes [#2646](https://github.com/lobehub/lobe-chat/issues/2646) ([2f311dc](https://github.com/lobehub/lobe-chat/commit/2f311dc))
|
|
21
|
+
|
|
22
|
+
</details>
|
|
23
|
+
|
|
24
|
+
<div align="right">
|
|
25
|
+
|
|
26
|
+
[](#readme-top)
|
|
27
|
+
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
### [Version 0.161.16](https://github.com/lobehub/lobe-chat/compare/v0.161.15...v0.161.16)
|
|
31
|
+
|
|
32
|
+
<sup>Released on **2024-05-25**</sup>
|
|
33
|
+
|
|
34
|
+
#### 🐛 Bug Fixes
|
|
35
|
+
|
|
36
|
+
- **misc**: Fix bedrock show by default on vercel.
|
|
37
|
+
|
|
38
|
+
<br/>
|
|
39
|
+
|
|
40
|
+
<details>
|
|
41
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
42
|
+
|
|
43
|
+
#### What's fixed
|
|
44
|
+
|
|
45
|
+
- **misc**: Fix bedrock show by default on vercel, closes [#2634](https://github.com/lobehub/lobe-chat/issues/2634) ([7ad3af2](https://github.com/lobehub/lobe-chat/commit/7ad3af2))
|
|
46
|
+
|
|
47
|
+
</details>
|
|
48
|
+
|
|
49
|
+
<div align="right">
|
|
50
|
+
|
|
51
|
+
[](#readme-top)
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
|
|
5
55
|
### [Version 0.161.15](https://github.com/lobehub/lobe-chat/compare/v0.161.14...v0.161.15)
|
|
6
56
|
|
|
7
57
|
<sup>Released on **2024-05-24**</sup>
|
package/README.md
CHANGED
|
@@ -262,14 +262,14 @@ Our marketplace is not just a showcase platform but also a collaborative space.
|
|
|
262
262
|
|
|
263
263
|
<!-- AGENT LIST -->
|
|
264
264
|
|
|
265
|
-
| Recent Submits
|
|
266
|
-
|
|
|
267
|
-
| [
|
|
268
|
-
| [
|
|
269
|
-
| [
|
|
270
|
-
| [
|
|
271
|
-
|
|
272
|
-
> 📊 Total agents: [<kbd>**
|
|
265
|
+
| Recent Submits | Description |
|
|
266
|
+
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
267
|
+
| [Chinese Text Refinement Master](https://chat-preview.lobehub.com/market?agent=chinese-touch-ups)<br/><sup>By **[S45618](https://github.com/S45618)** on **2024-05-24**</sup> | Proficient in Chinese proofreading and rhetoric, aiming to enhance the fluency and elegance of the text.<br/>`proofreading` `text-refinement` `rhetorical-improvement` `classical-literature` `language-editing` |
|
|
268
|
+
| [IT Systems Architect](https://chat-preview.lobehub.com/market?agent=it-system-architect)<br/><sup>By **[a562314](https://github.com/a562314)** on **2024-05-24**</sup> | Senior IT architect specializing in requirements analysis, system design, technology selection, and cross-platform system optimization. With over 5 years of experience, holding a bachelor's degree in computer science, proficient in Windows, macOS, and Linux operating systems, skilled in teamwork, continuous learning, troubleshooting, and security protection.<br/>`it-architecture-design` `problem-solving` `agile-development` `system-optimization` `cross-platform-skills` `teamwork` |
|
|
269
|
+
| [Minecraft Command Instructor](https://chat-preview.lobehub.com/market?agent=mcse-helper)<br/><sup>By **[CLOT-LIU](https://github.com/CLOT-LIU)** on **2024-05-24**</sup> | Specializes in explaining and demonstrating Minecraft commands<br/>`minecraft` `commands` `explanation` `examples` |
|
|
270
|
+
| [Philosophical Analysis Assistant](https://chat-preview.lobehub.com/market?agent=philosophical-analysis)<br/><sup>By **[epochaudio](https://github.com/epochaudio)** on **2024-05-24**</sup> | Specializes in consulting on Kant and Hegel's philosophical analysis, cultivating critical thinking<br/>`philosophical-analysis` `critical-thinking` `systematic-thinking` |
|
|
271
|
+
|
|
272
|
+
> 📊 Total agents: [<kbd>**273**</kbd> ](https://github.com/lobehub/lobe-chat-agents)
|
|
273
273
|
|
|
274
274
|
<!-- AGENT LIST -->
|
|
275
275
|
|
package/README.zh-CN.md
CHANGED
|
@@ -250,14 +250,14 @@ LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地
|
|
|
250
250
|
|
|
251
251
|
<!-- AGENT LIST -->
|
|
252
252
|
|
|
253
|
-
| 最近新增
|
|
254
|
-
|
|
|
255
|
-
| [
|
|
256
|
-
| [
|
|
257
|
-
| [
|
|
258
|
-
| [
|
|
259
|
-
|
|
260
|
-
> 📊 Total agents: [<kbd>**
|
|
253
|
+
| 最近新增 | 助手说明 |
|
|
254
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
255
|
+
| [中文润色大师](https://chat-preview.lobehub.com/market?agent=chinese-touch-ups)<br/><sup>By **[S45618](https://github.com/S45618)** on **2024-05-24**</sup> | 精通中文校对与修辞,旨在提升文本之流畅与雅致<br/>`校对` `文字润色` `修辞改进` `古典文学` `语言编辑` |
|
|
256
|
+
| [IT 系统架构师](https://chat-preview.lobehub.com/market?agent=it-system-architect)<br/><sup>By **[a562314](https://github.com/a562314)** on **2024-05-24**</sup> | 资深 IT 架构师,擅长需求分析、系统设计、技术选型和跨平台系统优化。5 年以上经验,具备计算机科学本科学历,精通 Windows、macOS 和 Linux 三大操作系统,善于团队合作,持续学习,具备故障排除和安全防护能力。<br/>`it架构设计` `问题解决` `敏捷开发` `系统优化` `跨平台技能` `团队合作` |
|
|
257
|
+
| [我的世界指令导师](https://chat-preview.lobehub.com/market?agent=mcse-helper)<br/><sup>By **[CLOT-LIU](https://github.com/CLOT-LIU)** on **2024-05-24**</sup> | 擅长解释和示范 “我的世界” 指令<br/>`我的世界` `指令` `解释` `示例` |
|
|
258
|
+
| [哲学剖析助手](https://chat-preview.lobehub.com/market?agent=philosophical-analysis)<br/><sup>By **[epochaudio](https://github.com/epochaudio)** on **2024-05-24**</sup> | 擅长康德与黑格尔哲学分析咨询,培养批判性思维<br/>`哲学分析` `批判性思维` `系统思考` |
|
|
259
|
+
|
|
260
|
+
> 📊 Total agents: [<kbd>**273**</kbd> ](https://github.com/lobehub/lobe-chat-agents)
|
|
261
261
|
|
|
262
262
|
<!-- AGENT LIST -->
|
|
263
263
|
|
|
@@ -132,6 +132,13 @@ If you need to use Azure OpenAI to provide model services, you can refer to the
|
|
|
132
132
|
|
|
133
133
|
## AWS Bedrock
|
|
134
134
|
|
|
135
|
+
### `ENABLED_AWS_BEDROCK`
|
|
136
|
+
|
|
137
|
+
- Type:Optional
|
|
138
|
+
- Description:Enables AWS Bedrock as a model provider by default, turns on the AWS Bedrock service when set to `1`
|
|
139
|
+
- Default:`0`
|
|
140
|
+
- Example:`1`
|
|
141
|
+
|
|
135
142
|
### `AWS_ACCESS_KEY_ID`
|
|
136
143
|
|
|
137
144
|
- Type: Required
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lobehub/chat",
|
|
3
|
-
"version": "0.161.
|
|
3
|
+
"version": "0.161.17",
|
|
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",
|
|
@@ -16,7 +16,10 @@ const EditPage = memo(() => {
|
|
|
16
16
|
const id = useSessionStore((s) => s.activeId);
|
|
17
17
|
const config = useAgentStore(agentSelectors.currentAgentConfig, isEqual);
|
|
18
18
|
const meta = useSessionStore(sessionMetaSelectors.currentAgentMeta, isEqual);
|
|
19
|
-
const [updateAgentConfig] = useAgentStore((s) => [
|
|
19
|
+
const [updateAgentConfig, updateAgentChatConfig] = useAgentStore((s) => [
|
|
20
|
+
s.updateAgentConfig,
|
|
21
|
+
s.updateAgentChatConfig,
|
|
22
|
+
]);
|
|
20
23
|
|
|
21
24
|
const [updateAgentMeta, title] = useSessionStore((s) => [
|
|
22
25
|
s.updateSessionMeta,
|
|
@@ -30,6 +33,7 @@ const EditPage = memo(() => {
|
|
|
30
33
|
config={config}
|
|
31
34
|
id={id}
|
|
32
35
|
meta={meta}
|
|
36
|
+
onChatConfigChange={updateAgentChatConfig}
|
|
33
37
|
onConfigChange={updateAgentConfig}
|
|
34
38
|
onMetaChange={updateAgentMeta}
|
|
35
39
|
/>
|
|
@@ -8,23 +8,28 @@ const COPYRIGHT = `© ${new Date().getFullYear()} LobeHub, LLC`;
|
|
|
8
8
|
|
|
9
9
|
const DesktopLayout = ({ children }: PropsWithChildren) => {
|
|
10
10
|
return (
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
{
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<
|
|
25
|
-
|
|
11
|
+
<>
|
|
12
|
+
<Flexbox
|
|
13
|
+
align={'center'}
|
|
14
|
+
height={'100%'}
|
|
15
|
+
justify={'space-between'}
|
|
16
|
+
padding={16}
|
|
17
|
+
style={{ overflow: 'hidden', position: 'relative' }}
|
|
18
|
+
width={'100%'}
|
|
19
|
+
>
|
|
20
|
+
<Logo size={36} style={{ alignSelf: 'flex-start' }} type={'text'} />
|
|
21
|
+
<GridShowcase innerProps={{ gap: 24 }} style={{ maxWidth: 1024 }} width={'100%'}>
|
|
22
|
+
{children}
|
|
23
|
+
</GridShowcase>
|
|
24
|
+
<Flexbox align={'center'} horizontal justify={'space-between'}>
|
|
25
|
+
<span style={{ opacity: 0.5 }}>{COPYRIGHT}</span>
|
|
26
|
+
<Follow />
|
|
27
|
+
</Flexbox>
|
|
26
28
|
</Flexbox>
|
|
27
|
-
|
|
29
|
+
{/* ↓ cloud slot ↓ */}
|
|
30
|
+
|
|
31
|
+
{/* ↑ cloud slot ↑ */}
|
|
32
|
+
</>
|
|
28
33
|
);
|
|
29
34
|
};
|
|
30
35
|
|
|
@@ -28,8 +28,10 @@ const Layout = memo<PropsWithChildren>(({ children }) => {
|
|
|
28
28
|
const id = useSessionStore((s) => s.activeId);
|
|
29
29
|
const config = useAgentStore(agentSelectors.currentAgentConfig, isEqual);
|
|
30
30
|
const meta = useSessionStore(sessionMetaSelectors.currentAgentMeta, isEqual);
|
|
31
|
-
const [updateAgentConfig] = useAgentStore((s) => [
|
|
32
|
-
|
|
31
|
+
const [updateAgentConfig, updateAgentChatConfig] = useAgentStore((s) => [
|
|
32
|
+
s.updateAgentConfig,
|
|
33
|
+
s.updateAgentChatConfig,
|
|
34
|
+
]);
|
|
33
35
|
const [updateAgentMeta] = useSessionStore((s) => [
|
|
34
36
|
s.updateSessionMeta,
|
|
35
37
|
sessionMetaSelectors.currentAgentTitle(s),
|
|
@@ -47,6 +49,7 @@ const Layout = memo<PropsWithChildren>(({ children }) => {
|
|
|
47
49
|
config={config}
|
|
48
50
|
id={id}
|
|
49
51
|
meta={meta}
|
|
52
|
+
onChatConfigChange={updateAgentChatConfig}
|
|
50
53
|
onConfigChange={updateAgentConfig}
|
|
51
54
|
onMetaChange={updateAgentMeta}
|
|
52
55
|
/>
|
package/src/app/metadata.ts
CHANGED
|
@@ -21,7 +21,7 @@ export const generateMetadata = async (): Promise<Metadata> => {
|
|
|
21
21
|
},
|
|
22
22
|
description: t('chat.description'),
|
|
23
23
|
icons: {
|
|
24
|
-
apple: '/
|
|
24
|
+
apple: '/apple-touch-icon.png',
|
|
25
25
|
icon: '/favicon.ico',
|
|
26
26
|
shortcut: '/favicon-32x32.ico',
|
|
27
27
|
},
|
package/src/config/llm.ts
CHANGED
|
@@ -23,40 +23,6 @@ declare global {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
export const getLLMConfig = () => {
|
|
26
|
-
const AZURE_API_KEY = process.env.AZURE_API_KEY || '';
|
|
27
|
-
|
|
28
|
-
const ZHIPU_API_KEY = process.env.ZHIPU_API_KEY || '';
|
|
29
|
-
|
|
30
|
-
const AWS_ACCESS_KEY_ID = process.env.AWS_ACCESS_KEY_ID || '';
|
|
31
|
-
|
|
32
|
-
const DEEPSEEK_API_KEY = process.env.DEEPSEEK_API_KEY || '';
|
|
33
|
-
|
|
34
|
-
const GOOGLE_API_KEY = process.env.GOOGLE_API_KEY || '';
|
|
35
|
-
|
|
36
|
-
const MOONSHOT_API_KEY = process.env.MOONSHOT_API_KEY || '';
|
|
37
|
-
|
|
38
|
-
const PERPLEXITY_API_KEY = process.env.PERPLEXITY_API_KEY || '';
|
|
39
|
-
|
|
40
|
-
const ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY || '';
|
|
41
|
-
|
|
42
|
-
const MINIMAX_API_KEY = process.env.MINIMAX_API_KEY || '';
|
|
43
|
-
|
|
44
|
-
const MISTRAL_API_KEY = process.env.MISTRAL_API_KEY || '';
|
|
45
|
-
|
|
46
|
-
const GROQ_API_KEY = process.env.GROQ_API_KEY || '';
|
|
47
|
-
|
|
48
|
-
const OPENROUTER_API_KEY = process.env.OPENROUTER_API_KEY || '';
|
|
49
|
-
|
|
50
|
-
const ZEROONE_API_KEY = process.env.ZEROONE_API_KEY || '';
|
|
51
|
-
|
|
52
|
-
const TOGETHERAI_API_KEY = process.env.TOGETHERAI_API_KEY || '';
|
|
53
|
-
|
|
54
|
-
// region format: iad1,sfo1
|
|
55
|
-
let regions: string[] = [];
|
|
56
|
-
if (process.env.OPENAI_FUNCTION_REGIONS) {
|
|
57
|
-
regions = process.env.OPENAI_FUNCTION_REGIONS.split(',');
|
|
58
|
-
}
|
|
59
|
-
|
|
60
26
|
if (process.env.CUSTOM_MODELS) {
|
|
61
27
|
console.warn(
|
|
62
28
|
'DEPRECATED: `CUSTOM_MODELS` is deprecated, please use `OPENAI_MODEL_LIST` instead, we will remove `CUSTOM_MODELS` in the LobeChat 1.0',
|
|
@@ -75,6 +41,16 @@ export const getLLMConfig = () => {
|
|
|
75
41
|
);
|
|
76
42
|
}
|
|
77
43
|
|
|
44
|
+
// region format: iad1,sfo1
|
|
45
|
+
let regions: string[] = [];
|
|
46
|
+
if (process.env.OPENAI_FUNCTION_REGIONS) {
|
|
47
|
+
regions = process.env.OPENAI_FUNCTION_REGIONS.split(',');
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
console.log('AWS_REGION:', process.env.AWS_REGION);
|
|
51
|
+
console.log('AWS_ACCESS_KEY_ID:', process.env.AWS_ACCESS_KEY_ID);
|
|
52
|
+
console.log('AWS_SECRET_ACCESS_KEY:', process.env.AWS_SECRET_ACCESS_KEY);
|
|
53
|
+
|
|
78
54
|
return createEnv({
|
|
79
55
|
server: {
|
|
80
56
|
API_KEY_SELECT_MODE: z.string().optional(),
|
|
@@ -152,60 +128,60 @@ export const getLLMConfig = () => {
|
|
|
152
128
|
OPENAI_MODEL_LIST: process.env.OPENAI_MODEL_LIST || process.env.CUSTOM_MODELS,
|
|
153
129
|
OPENAI_FUNCTION_REGIONS: regions as any,
|
|
154
130
|
|
|
155
|
-
ENABLED_AZURE_OPENAI: !!AZURE_API_KEY,
|
|
156
|
-
AZURE_API_KEY,
|
|
131
|
+
ENABLED_AZURE_OPENAI: !!process.env.AZURE_API_KEY,
|
|
132
|
+
AZURE_API_KEY: process.env.AZURE_API_KEY,
|
|
157
133
|
AZURE_API_VERSION: process.env.AZURE_API_VERSION,
|
|
158
134
|
AZURE_ENDPOINT: process.env.AZURE_ENDPOINT,
|
|
159
135
|
AZURE_MODEL_LIST: process.env.AZURE_MODEL_LIST,
|
|
160
136
|
|
|
161
|
-
ENABLED_ZHIPU: !!ZHIPU_API_KEY,
|
|
162
|
-
ZHIPU_API_KEY,
|
|
137
|
+
ENABLED_ZHIPU: !!process.env.ZHIPU_API_KEY,
|
|
138
|
+
ZHIPU_API_KEY: process.env.ZHIPU_API_KEY,
|
|
163
139
|
|
|
164
|
-
ENABLED_DEEPSEEK: !!DEEPSEEK_API_KEY,
|
|
165
|
-
DEEPSEEK_API_KEY,
|
|
140
|
+
ENABLED_DEEPSEEK: !!process.env.DEEPSEEK_API_KEY,
|
|
141
|
+
DEEPSEEK_API_KEY: process.env.DEEPSEEK_API_KEY,
|
|
166
142
|
|
|
167
|
-
ENABLED_GOOGLE: !!GOOGLE_API_KEY,
|
|
168
|
-
GOOGLE_API_KEY,
|
|
143
|
+
ENABLED_GOOGLE: !!process.env.GOOGLE_API_KEY,
|
|
144
|
+
GOOGLE_API_KEY: process.env.GOOGLE_API_KEY,
|
|
169
145
|
GOOGLE_PROXY_URL: process.env.GOOGLE_PROXY_URL,
|
|
170
146
|
|
|
171
|
-
ENABLED_PERPLEXITY: !!PERPLEXITY_API_KEY,
|
|
172
|
-
PERPLEXITY_API_KEY,
|
|
147
|
+
ENABLED_PERPLEXITY: !!process.env.PERPLEXITY_API_KEY,
|
|
148
|
+
PERPLEXITY_API_KEY: process.env.PERPLEXITY_API_KEY,
|
|
173
149
|
PERPLEXITY_PROXY_URL: process.env.PERPLEXITY_PROXY_URL,
|
|
174
150
|
|
|
175
|
-
ENABLED_ANTHROPIC: !!ANTHROPIC_API_KEY,
|
|
176
|
-
ANTHROPIC_API_KEY,
|
|
151
|
+
ENABLED_ANTHROPIC: !!process.env.ANTHROPIC_API_KEY,
|
|
152
|
+
ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY,
|
|
177
153
|
ANTHROPIC_PROXY_URL: process.env.ANTHROPIC_PROXY_URL,
|
|
178
154
|
|
|
179
|
-
ENABLED_MINIMAX: !!MINIMAX_API_KEY,
|
|
180
|
-
MINIMAX_API_KEY,
|
|
155
|
+
ENABLED_MINIMAX: !!process.env.MINIMAX_API_KEY,
|
|
156
|
+
MINIMAX_API_KEY: process.env.MINIMAX_API_KEY,
|
|
181
157
|
|
|
182
|
-
ENABLED_MISTRAL: !!MISTRAL_API_KEY,
|
|
183
|
-
MISTRAL_API_KEY,
|
|
158
|
+
ENABLED_MISTRAL: !!process.env.MISTRAL_API_KEY,
|
|
159
|
+
MISTRAL_API_KEY: process.env.MISTRAL_API_KEY,
|
|
184
160
|
|
|
185
|
-
ENABLED_OPENROUTER: !!OPENROUTER_API_KEY,
|
|
186
|
-
OPENROUTER_API_KEY,
|
|
161
|
+
ENABLED_OPENROUTER: !!process.env.OPENROUTER_API_KEY,
|
|
162
|
+
OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY,
|
|
187
163
|
OPENROUTER_MODEL_LIST:
|
|
188
164
|
process.env.OPENROUTER_MODEL_LIST || process.env.OPENROUTER_CUSTOM_MODELS,
|
|
189
165
|
|
|
190
|
-
ENABLED_TOGETHERAI: !!TOGETHERAI_API_KEY,
|
|
191
|
-
TOGETHERAI_API_KEY,
|
|
166
|
+
ENABLED_TOGETHERAI: !!process.env.TOGETHERAI_API_KEY,
|
|
167
|
+
TOGETHERAI_API_KEY: process.env.TOGETHERAI_API_KEY,
|
|
192
168
|
TOGETHERAI_MODEL_LIST: process.env.TOGETHERAI_MODEL_LIST,
|
|
193
169
|
|
|
194
|
-
ENABLED_MOONSHOT: !!MOONSHOT_API_KEY,
|
|
195
|
-
MOONSHOT_API_KEY,
|
|
170
|
+
ENABLED_MOONSHOT: !!process.env.MOONSHOT_API_KEY,
|
|
171
|
+
MOONSHOT_API_KEY: process.env.MOONSHOT_API_KEY,
|
|
196
172
|
MOONSHOT_PROXY_URL: process.env.MOONSHOT_PROXY_URL,
|
|
197
173
|
|
|
198
|
-
ENABLED_GROQ: !!GROQ_API_KEY,
|
|
174
|
+
ENABLED_GROQ: !!process.env.GROQ_API_KEY,
|
|
175
|
+
GROQ_API_KEY: process.env.GROQ_API_KEY,
|
|
199
176
|
GROQ_PROXY_URL: process.env.GROQ_PROXY_URL,
|
|
200
|
-
GROQ_API_KEY,
|
|
201
177
|
|
|
202
|
-
ENABLED_ZEROONE: !!ZEROONE_API_KEY,
|
|
203
|
-
ZEROONE_API_KEY,
|
|
178
|
+
ENABLED_ZEROONE: !!process.env.ZEROONE_API_KEY,
|
|
179
|
+
ZEROONE_API_KEY: process.env.ZEROONE_API_KEY,
|
|
204
180
|
|
|
205
|
-
ENABLED_AWS_BEDROCK:
|
|
181
|
+
ENABLED_AWS_BEDROCK: process.env.ENABLED_AWS_BEDROCK === '1',
|
|
206
182
|
AWS_REGION: process.env.AWS_REGION,
|
|
207
|
-
AWS_ACCESS_KEY_ID: AWS_ACCESS_KEY_ID,
|
|
208
|
-
AWS_SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY
|
|
183
|
+
AWS_ACCESS_KEY_ID: process.env.AWS_ACCESS_KEY_ID,
|
|
184
|
+
AWS_SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY,
|
|
209
185
|
|
|
210
186
|
ENABLED_OLLAMA: process.env.ENABLED_OLLAMA !== '0',
|
|
211
187
|
OLLAMA_PROXY_URL: process.env.OLLAMA_PROXY_URL || '',
|
package/src/const/session.ts
CHANGED
|
@@ -9,12 +9,12 @@ export const WELCOME_GUIDE_CHAT_ID = 'welcome';
|
|
|
9
9
|
|
|
10
10
|
export const DEFAULT_AGENT_LOBE_SESSION: LobeAgentSession = {
|
|
11
11
|
config: DEFAULT_AGENT_CONFIG,
|
|
12
|
-
createdAt: Date
|
|
12
|
+
createdAt: new Date(),
|
|
13
13
|
id: '',
|
|
14
14
|
meta: DEFAULT_AGENT_META,
|
|
15
15
|
model: DEFAULT_AGENT_CONFIG.model,
|
|
16
16
|
type: LobeSessionType.Agent,
|
|
17
|
-
updatedAt: Date
|
|
17
|
+
updatedAt: new Date(),
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
export const DEFAULT_INBOX_SESSION: LobeAgentSession = merge(DEFAULT_AGENT_LOBE_SESSION, {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DEFAULT_AGENT_META } from '@/const/meta';
|
|
2
2
|
import { ModelProvider } from '@/libs/agent-runtime';
|
|
3
|
-
import { LobeAgentConfig, LobeAgentTTSConfig } from '@/types/agent';
|
|
3
|
+
import { LobeAgentChatConfig, LobeAgentConfig, LobeAgentTTSConfig } from '@/types/agent';
|
|
4
4
|
import { GlobalDefaultAgent } from '@/types/settings';
|
|
5
5
|
|
|
6
6
|
export const DEFAUTT_AGENT_TTS_CONFIG: LobeAgentTTSConfig = {
|
|
@@ -12,11 +12,15 @@ export const DEFAUTT_AGENT_TTS_CONFIG: LobeAgentTTSConfig = {
|
|
|
12
12
|
},
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
export const
|
|
15
|
+
export const DEFAULT_AGENT_CHAT_CONFIG: LobeAgentChatConfig = {
|
|
16
16
|
autoCreateTopicThreshold: 2,
|
|
17
17
|
displayMode: 'chat',
|
|
18
18
|
enableAutoCreateTopic: true,
|
|
19
19
|
historyCount: 1,
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const DEFAULT_AGENT_CONFIG: LobeAgentConfig = {
|
|
23
|
+
chatConfig: DEFAULT_AGENT_CHAT_CONFIG,
|
|
20
24
|
model: 'gpt-3.5-turbo',
|
|
21
25
|
params: {
|
|
22
26
|
frequency_penalty: 0,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Dexie, { Transaction } from 'dexie';
|
|
2
2
|
|
|
3
3
|
import { MigrationLLMSettings } from '@/migrations/FromV3ToV4';
|
|
4
|
+
import { MigrationAgentChatConfig } from '@/migrations/FromV5ToV6';
|
|
4
5
|
import { uuid } from '@/utils/uuid';
|
|
5
6
|
|
|
6
7
|
import { DB_File } from '../schemas/files';
|
|
@@ -72,6 +73,10 @@ export class BrowserDB extends Dexie {
|
|
|
72
73
|
.stores(dbSchemaV9)
|
|
73
74
|
.upgrade((trans) => this.upgradeToV9(trans));
|
|
74
75
|
|
|
76
|
+
this.version(10)
|
|
77
|
+
.stores(dbSchemaV9)
|
|
78
|
+
.upgrade((trans) => this.upgradeToV10(trans));
|
|
79
|
+
|
|
75
80
|
this.files = this.table('files');
|
|
76
81
|
this.sessions = this.table('sessions');
|
|
77
82
|
this.messages = this.table('messages');
|
|
@@ -159,6 +164,11 @@ export class BrowserDB extends Dexie {
|
|
|
159
164
|
});
|
|
160
165
|
};
|
|
161
166
|
|
|
167
|
+
/**
|
|
168
|
+
* 2024.05.11
|
|
169
|
+
*
|
|
170
|
+
* message role=function to role=tool
|
|
171
|
+
*/
|
|
162
172
|
upgradeToV9 = async (trans: Transaction) => {
|
|
163
173
|
const messages = trans.table('messages');
|
|
164
174
|
await messages.toCollection().modify(async (message: DBModel<DB_Message>) => {
|
|
@@ -185,6 +195,18 @@ export class BrowserDB extends Dexie {
|
|
|
185
195
|
}
|
|
186
196
|
});
|
|
187
197
|
};
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* 2024.05.25
|
|
201
|
+
* migrate some agent config to chatConfig
|
|
202
|
+
*/
|
|
203
|
+
upgradeToV10 = async (trans: Transaction) => {
|
|
204
|
+
const sessions = trans.table('sessions');
|
|
205
|
+
await sessions.toCollection().modify(async (session: DBModel<DB_Session>) => {
|
|
206
|
+
if (session.config)
|
|
207
|
+
session.config = MigrationAgentChatConfig.migrateChatConfig(session.config as any);
|
|
208
|
+
});
|
|
209
|
+
};
|
|
188
210
|
}
|
|
189
211
|
|
|
190
212
|
export const browserDB = new BrowserDB();
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { V4Settings } from './type';
|
|
1
|
+
import { V4Settings, V5Settings } from './type';
|
|
4
2
|
|
|
5
3
|
export const migrateSettingsToUser = (
|
|
6
4
|
settings: V4Settings,
|
|
7
|
-
): { avatar: string; settings:
|
|
8
|
-
const dbSettings:
|
|
5
|
+
): { avatar: string; settings: V5Settings } => {
|
|
6
|
+
const dbSettings: V5Settings = {
|
|
9
7
|
defaultAgent: settings.defaultAgent,
|
|
10
8
|
fontSize: settings.fontSize,
|
|
11
9
|
language: settings.language,
|
|
@@ -58,7 +58,7 @@ interface V4DefaultAgent {
|
|
|
58
58
|
meta: MetaData;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
interface
|
|
61
|
+
interface OpenAIConfig {
|
|
62
62
|
OPENAI_API_KEY: string;
|
|
63
63
|
azureApiVersion?: string;
|
|
64
64
|
customModelName?: string;
|
|
@@ -68,15 +68,10 @@ interface V4OpenAIConfig {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
interface V4LLMConfig {
|
|
71
|
-
openAI:
|
|
71
|
+
openAI: OpenAIConfig;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
interface
|
|
75
|
-
dalle: {
|
|
76
|
-
autoGenerate: boolean;
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
interface V4TTSConfig {
|
|
74
|
+
interface TTSConfig {
|
|
80
75
|
openAI: {
|
|
81
76
|
sttModel: 'whisper-1';
|
|
82
77
|
ttsModel: 'tts-1' | 'tts-1-hd';
|
|
@@ -95,6 +90,19 @@ export interface V4Settings {
|
|
|
95
90
|
password: string;
|
|
96
91
|
primaryColor?: string;
|
|
97
92
|
themeMode: ThemeMode;
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
tts: TTSConfig;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export interface V5Settings {
|
|
97
|
+
defaultAgent: V4DefaultAgent;
|
|
98
|
+
fontSize: number;
|
|
99
|
+
language: string;
|
|
100
|
+
languageModel: {
|
|
101
|
+
openai: OpenAIConfig;
|
|
102
|
+
};
|
|
103
|
+
neutralColor?: string;
|
|
104
|
+
password: string;
|
|
105
|
+
primaryColor?: string;
|
|
106
|
+
themeMode: ThemeMode;
|
|
107
|
+
tts: TTSConfig;
|
|
100
108
|
}
|
|
@@ -246,16 +246,20 @@ class _SessionModel extends BaseModel {
|
|
|
246
246
|
private mapToDB_Session(session: LobeAgentSession): DBModel<DB_Session> {
|
|
247
247
|
return {
|
|
248
248
|
...session,
|
|
249
|
+
createdAt: session.createdAt?.valueOf(),
|
|
249
250
|
group: session.group || SessionDefaultGroup.Default,
|
|
250
251
|
pinned: session.pinned ? 1 : 0,
|
|
252
|
+
updatedAt: session.updatedAt?.valueOf(),
|
|
251
253
|
};
|
|
252
254
|
}
|
|
253
255
|
|
|
254
256
|
private DB_SessionToAgentSession(session: DBModel<DB_Session>) {
|
|
255
257
|
return {
|
|
256
258
|
...session,
|
|
259
|
+
createdAt: new Date(session.createdAt),
|
|
257
260
|
model: session.config.model,
|
|
258
261
|
pinned: !!session.pinned,
|
|
262
|
+
updatedAt: new Date(session.updatedAt),
|
|
259
263
|
} as LobeAgentSession;
|
|
260
264
|
}
|
|
261
265
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
|
|
3
|
+
import { AgentChatConfigSchema } from '@/types/agent';
|
|
3
4
|
import { LobeMetaDataSchema } from '@/types/meta';
|
|
4
5
|
|
|
5
6
|
const fewShotsSchema = z.array(
|
|
@@ -23,16 +24,8 @@ const ttsSchema = z.object({
|
|
|
23
24
|
});
|
|
24
25
|
|
|
25
26
|
export const AgentSchema = z.object({
|
|
26
|
-
|
|
27
|
-
compressThreshold: z.number().optional(),
|
|
28
|
-
displayMode: z.enum(['chat', 'docs']).optional(),
|
|
29
|
-
enableAutoCreateTopic: z.boolean().default(true),
|
|
30
|
-
enableCompressThreshold: z.boolean().optional(),
|
|
31
|
-
enableHistoryCount: z.boolean().optional(),
|
|
32
|
-
enableMaxTokens: z.boolean().optional(),
|
|
27
|
+
chatConfig: AgentChatConfigSchema,
|
|
33
28
|
fewShots: fewShotsSchema.optional(),
|
|
34
|
-
historyCount: z.number().default(8).optional(),
|
|
35
|
-
inputTemplate: z.string().optional(),
|
|
36
29
|
model: z.string().default('gpt-3.5-turbo'),
|
|
37
30
|
params: z.object({
|
|
38
31
|
frequency_penalty: z.number().default(0).optional(),
|