Compare commits

...

1359 Commits

Author SHA1 Message Date
canisminor1990 3aa8be4a13 💄 style: Update Sync Style 2024-05-05 00:30:19 +08:00
canisminor1990 4d573ab697 🔧 chore: Revert sync style 2024-05-05 00:27:35 +08:00
canisminor1990 f83b99197e 🔧 chore: Rename workspace 2024-05-04 18:12:49 +08:00
canisminor1990 6a2961dd4a 🐛 fix: Fix ci 2024-05-04 18:12:24 +08:00
canisminor1990 33ad7e490f test: Fix test 2024-05-04 18:12:13 +08:00
canisminor1990 dde83026b8 ♻️ refactor: Refactor Chat Layout 2024-05-04 18:11:43 +08:00
semantic-release-bot 06a1d97285 🔖 chore(release): v0.153.1 [skip ci]
### [Version 0.153.1](https://github.com/lobehub/lobe-chat/compare/v0.153.0...v0.153.1)
<sup>Released on **2024-05-04**</sup>

#### 💄 Styles

- **misc**: Imporve mobile styles and loading skeleton.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Imporve mobile styles and loading skeleton, closes [#2363](https://github.com/lobehub/lobe-chat/issues/2363) ([8ee3591](https://github.com/lobehub/lobe-chat/commit/8ee3591))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-04 08:39:07 +00:00
CanisMinor 8ee3591f03 💄 style: Imporve mobile styles and loading skeleton (#2363) 2024-05-04 16:35:46 +08:00
semantic-release-bot 6012b91961 🔖 chore(release): v0.153.0 [skip ci]
## [Version&nbsp;0.153.0](https://github.com/lobehub/lobe-chat/compare/v0.152.12...v0.153.0)
<sup>Released on **2024-05-04**</sup>

####  Features

- **misc**: Add Settings Intercepting Routes.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add Settings Intercepting Routes, closes [#2346](https://github.com/lobehub/lobe-chat/issues/2346) ([29b6442](https://github.com/lobehub/lobe-chat/commit/29b6442))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-04 06:12:34 +00:00
CanisMinor 29b6442d03 feat: Add Settings Intercepting Routes (#2346)
* ♻️ refactor: Refactor Setting Layout

* ♻️ refactor: Update useQueryRoute and add test

*  test: Update test

*  feat: Add Settings Intercepting Routes

* ♻️ refactor: Refactor Setting Layout

* ♻️ refactor: Update useQueryRoute and add test

*  test: Update test

* 🐛 fix: Fix i18n

* 💄 style: Fix style

* 🐛 fix: Fix review problem

* 🐛 fix: Fix review problem

*  test: Add useInterceptingRoutes.test

* 🐛 fix: Fix config

* 🐛 fix: Fix some merge problem

* 🐛 fix: Fix modal layout

* 🐛 fix: Fix cubox

* 🐛 fix: Fix cubox

*  test: Fix test

* 🐛 fix: Fix redirect

* 🐛 fix: Fix review problem

---------

Co-authored-by: Arvin Xu <arvinx@foxmail.com>
2024-05-04 14:09:15 +08:00
lobehubbot 69467330d8 📝 docs(bot): Auto sync agents & plugin to readme 2024-05-04 02:50:12 +00:00
semantic-release-bot 61646b92fa 🔖 chore(release): v0.152.12 [skip ci]
### [Version&nbsp;0.152.12](https://github.com/lobehub/lobe-chat/compare/v0.152.11...v0.152.12)
<sup>Released on **2024-05-04**</sup>

#### 🐛 Bug Fixes

- **misc**: Disabled autogenerate field icon when empty system role.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Disabled autogenerate field icon when empty system role, closes [#2076](https://github.com/lobehub/lobe-chat/issues/2076) ([27095f5](https://github.com/lobehub/lobe-chat/commit/27095f5))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-04 02:49:35 +00:00
Anu 27095f5387 🐛 fix: disabled autogenerate field icon when empty system role (#2076)
* fix: disabled autogenerate field icon when empty system role

* 🐛 fix: update systemrole guard

* 🐛 fix: revert action.ts file change

* 🐛 fix: added space
2024-05-04 10:46:17 +08:00
semantic-release-bot d6eeac094e 🔖 chore(release): v0.152.11 [skip ci]
### [Version&nbsp;0.152.11](https://github.com/lobehub/lobe-chat/compare/v0.152.10...v0.152.11)
<sup>Released on **2024-05-03**</sup>

#### 💄 Styles

- **misc**: Add user panel and refactor the next-auth.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add user panel and refactor the next-auth, closes [#2349](https://github.com/lobehub/lobe-chat/issues/2349) ([5cecee0](https://github.com/lobehub/lobe-chat/commit/5cecee0))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-03 12:55:53 +00:00
Arvin Xu 5cecee096e 💄 style: add user panel and refactor the next-auth (#2349)
* ♻️ refactor: refactor the next-auth

*  feat: Add User Panel

* 💄 style: Update User Avatar on mobile

* 🚸 style: fix data importer hot zone

* 🚸 style: add migration guide

* 🎨 chore:  clean code

*  test: add test

* 🌐 chore: update locale

* 💄 style: improve style

*  test: fix test

* 💄 style: improve locale switch

* ♻️ refactor: use middleware redirect instead of page

---------

Co-authored-by: canisminor1990 <i@canisminor.cc>
2024-05-03 20:52:22 +08:00
semantic-release-bot 6026481f29 🔖 chore(release): v0.152.10 [skip ci]
### [Version&nbsp;0.152.10](https://github.com/lobehub/lobe-chat/compare/v0.152.9...v0.152.10)
<sup>Released on **2024-05-03**</sup>

#### 💄 Styles

- **misc**: Improve market layout styles and mobile style.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve market layout styles and mobile style, closes [#2347](https://github.com/lobehub/lobe-chat/issues/2347) ([79b8115](https://github.com/lobehub/lobe-chat/commit/79b8115))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-03 09:39:39 +00:00
Anu 88d0e3974a 🐛 fix: fix text clipping (#2332)
* 🐛 fix: text clipping

* 🐛 fix: text clipping
2024-05-03 17:36:16 +08:00
CanisMinor 79b8115cf8 💄 style: improve market layout styles and mobile style (#2347)
* 💄 style: Layout styles patch

* 💄 style: Update style
2024-05-03 17:35:26 +08:00
semantic-release-bot 91b6f58637 🔖 chore(release): v0.152.9 [skip ci]
### [Version&nbsp;0.152.9](https://github.com/lobehub/lobe-chat/compare/v0.152.8...v0.152.9)
<sup>Released on **2024-05-03**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-03 08:24:57 +00:00
Arvin Xu 39d1cb1fdb 🔨 build: pin antd@5.16.5 to fix vercel build too long (#2356)
* Update package.json

* 📌 chore: pin @testing-library/jest-dom to `6.4.2` to fix test
2024-05-03 16:21:11 +08:00
semantic-release-bot 5ffac5a3e4 🔖 chore(release): v0.152.8 [skip ci]
### [Version&nbsp;0.152.8](https://github.com/lobehub/lobe-chat/compare/v0.152.7...v0.152.8)
<sup>Released on **2024-05-03**</sup>

#### ♻ Code Refactoring

- **misc**: User store add an auth slice.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: User store add an auth slice, closes [#2214](https://github.com/lobehub/lobe-chat/issues/2214) ([948b257](https://github.com/lobehub/lobe-chat/commit/948b257))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-03 01:56:10 +00:00
Arvin Xu 948b2578eb ♻️ refactor: user store add an auth slice (#2214)
* ♻️ refactor: refactor the user store with auth slice

* ♻️ refactor: separate common and sync slice

* 🧑‍💻 chore: add an isMobile selector

* ♻️ refactor: refactor the auth action and common action

* 🎨 chore: clean code
2024-05-03 09:52:15 +08:00
semantic-release-bot 4cb5adb98d 🔖 chore(release): v0.152.7 [skip ci]
### [Version&nbsp;0.152.7](https://github.com/lobehub/lobe-chat/compare/v0.152.6...v0.152.7)
<sup>Released on **2024-05-02**</sup>

#### 💄 Styles

- **misc**: Refactor setting layout and improve setting design.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Refactor setting layout and improve setting design, closes [#2344](https://github.com/lobehub/lobe-chat/issues/2344) ([fa16721](https://github.com/lobehub/lobe-chat/commit/fa16721))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-02 15:12:27 +00:00
CanisMinor fa16721f1a 💄 style: refactor setting layout and improve setting design (#2344)
* ♻️ refactor: Refactor Setting Layout

* ♻️ refactor: Update useQueryRoute and add test

*  test: Update test

* 🐛 fix: Fix i18n

* 💄 style: Fix style

* 🐛 fix: Fix review problem

* 💄 style: Update styles and i18n

* 💄 style: Update style

* 📝 docs: Update i18n
2024-05-02 23:08:58 +08:00
cy948 012eb15e8c 📝 docs: add docs for the settings url share feature (#2333) 2024-05-02 20:42:35 +08:00
semantic-release-bot 96c5e8b9db 🔖 chore(release): v0.152.6 [skip ci]
### [Version&nbsp;0.152.6](https://github.com/lobehub/lobe-chat/compare/v0.152.5...v0.152.6)
<sup>Released on **2024-05-02**</sup>

#### 💄 Styles

- **misc**: AutoScroll to the fully end.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: AutoScroll to the fully end, closes [#2345](https://github.com/lobehub/lobe-chat/issues/2345) ([5458e98](https://github.com/lobehub/lobe-chat/commit/5458e98))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-02 12:34:36 +00:00
sxjeru 5458e98d85 💄 style: autoScroll to the fully end (#2345)
* fix autoScroll

* Divider margin -> padding

* restore

* Update HistoryDivider.tsx
2024-05-02 20:30:59 +08:00
lobehubbot a5dad80a4c 📝 docs(bot): Auto sync agents & plugin to readme 2024-05-02 04:26:18 +00:00
semantic-release-bot e724fcc497 🔖 chore(release): v0.152.5 [skip ci]
### [Version&nbsp;0.152.5](https://github.com/lobehub/lobe-chat/compare/v0.152.4...v0.152.5)
<sup>Released on **2024-05-02**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix Setings Layout.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix Setings Layout, closes [#2340](https://github.com/lobehub/lobe-chat/issues/2340) ([6a2e9a9](https://github.com/lobehub/lobe-chat/commit/6a2e9a9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-02 04:25:40 +00:00
arvinxx 8f85b13cf1 Revert "♻️ refactor: Refactor Setting Layout (#2336)"
This reverts commit 282082ed98.
2024-05-02 12:21:45 +08:00
arvinxx 6850c12330 Revert "🔖 chore(release): v0.152.2 [skip ci]"
This reverts commit 8853f63af0.
2024-05-02 12:21:45 +08:00
arvinxx a5b2e1e2a9 Revert "🐛 fix: Fix intercepting-routes on mobile"
This reverts commit abe228c6ba.
2024-05-02 12:21:45 +08:00
arvinxx 661912c79f Revert "🔖 chore(release): v0.152.3 [skip ci]"
This reverts commit 10b8dd27c2.
2024-05-02 12:21:44 +08:00
arvinxx a9d2fbc67f Revert "🐛 fix: Fix router path in UserPanel"
This reverts commit c779e027ef.
2024-05-02 12:21:44 +08:00
arvinxx 5b3b7be407 Revert "🔖 chore(release): v0.152.4 [skip ci]"
This reverts commit b353002f84.
2024-05-02 12:21:44 +08:00
arvinxx 80c2e9cef0 Revert "🐛 fix: Fix Setings Layout (#2340)"
This reverts commit 6a2e9a9101.
2024-05-02 12:21:44 +08:00
CanisMinor 6a2e9a9101 🐛 fix: Fix Setings Layout (#2340)
* 🐛 fix: Fix TelemetryChat Config

* 🔧 chore: Move UserAvatar

* 💄 style: Update UserInfo
2024-05-02 12:21:19 +08:00
semantic-release-bot b353002f84 🔖 chore(release): v0.152.4 [skip ci]
### [Version&nbsp;0.152.4](https://github.com/lobehub/lobe-chat/compare/v0.152.3...v0.152.4)
<sup>Released on **2024-05-01**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix router path in UserPanel.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix router path in UserPanel ([c779e02](https://github.com/lobehub/lobe-chat/commit/c779e02))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-01 19:05:04 +00:00
CanisMinor c779e027ef 🐛 fix: Fix router path in UserPanel 2024-05-02 03:01:46 +08:00
semantic-release-bot 10b8dd27c2 🔖 chore(release): v0.152.3 [skip ci]
### [Version&nbsp;0.152.3](https://github.com/lobehub/lobe-chat/compare/v0.152.2...v0.152.3)
<sup>Released on **2024-05-01**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix intercepting-routes on mobile.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix intercepting-routes on mobile ([abe228c](https://github.com/lobehub/lobe-chat/commit/abe228c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-01 18:50:22 +00:00
canisminor1990 abe228c6ba 🐛 fix: Fix intercepting-routes on mobile 2024-05-02 02:46:00 +08:00
semantic-release-bot 8853f63af0 🔖 chore(release): v0.152.2 [skip ci]
### [Version&nbsp;0.152.2](https://github.com/lobehub/lobe-chat/compare/v0.152.1...v0.152.2)
<sup>Released on **2024-05-01**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor Setting Layout.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor Setting Layout, closes [#2336](https://github.com/lobehub/lobe-chat/issues/2336) ([282082e](https://github.com/lobehub/lobe-chat/commit/282082e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-01 13:41:23 +00:00
CanisMinor 282082ed98 ♻️ refactor: Refactor Setting Layout (#2336)
* ♻️ refactor: Refactor Setting Layout

*  feat: Add Setting Modal

* ♻️ refactor: Refactor Setting Layout

* 💄 style: Update Modal style

* 🐛 fix: Fix router query
2024-05-01 21:37:08 +08:00
lobehubbot 8bdc4e29ab 📝 docs(bot): Auto sync agents & plugin to readme 2024-05-01 04:47:32 +00:00
semantic-release-bot c128f3d5ef 🔖 chore(release): v0.152.1 [skip ci]
### [Version&nbsp;0.152.1](https://github.com/lobehub/lobe-chat/compare/v0.152.0...v0.152.1)
<sup>Released on **2024-05-01**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor Market Layout.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor Market Layout, closes [#2320](https://github.com/lobehub/lobe-chat/issues/2320) ([c05c3c1](https://github.com/lobehub/lobe-chat/commit/c05c3c1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-05-01 04:46:55 +00:00
CanisMinor c05c3c1816 ♻️ refactor: Refactor Market Layout (#2320)
* ♻️ refactor: Refactor Market Layout

* ♻️ refactor: Market Layout

* ♻️ refactor: Market Layout

* 🐛 fix: Fix spotlight

* 🐛 fix: Fix isEqual

* 💄 style: Update market style

* 💄 style: Update Market Style

---------

Co-authored-by: Arvin Xu <arvinx@foxmail.com>
2024-05-01 12:43:40 +08:00
semantic-release-bot f7a0f46d4c 🔖 chore(release): v0.152.0 [skip ci]
## [Version&nbsp;0.152.0](https://github.com/lobehub/lobe-chat/compare/v0.151.11...v0.152.0)
<sup>Released on **2024-04-30**</sup>

####  Features

- **misc**: Import settings from url.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Import settings from url, closes [#2226](https://github.com/lobehub/lobe-chat/issues/2226) ([b1f6c20](https://github.com/lobehub/lobe-chat/commit/b1f6c20))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-30 15:47:09 +00:00
cy948 b1f6c20c41 feat: import settings from url (#2226)
*  feat: import settings from url

* 🐛 fix: useEffect

* 🐛 fix: setSettings

*  revet: delete useSTT.ts

* 🚚 refactor: rename `shareGPTService` to `shareService`
2024-04-30 23:43:40 +08:00
lobehubbot 3c36a1860b 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-30 13:49:03 +00:00
semantic-release-bot e512e5da74 🔖 chore(release): v0.151.11 [skip ci]
### [Version&nbsp;0.151.11](https://github.com/lobehub/lobe-chat/compare/v0.151.10...v0.151.11)
<sup>Released on **2024-04-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix telemetry preference modal and default agent config error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix telemetry preference modal and default agent config error, closes [#2312](https://github.com/lobehub/lobe-chat/issues/2312) ([8900445](https://github.com/lobehub/lobe-chat/commit/8900445))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-30 13:48:15 +00:00
Arvin Xu 8900445f01 🐛 fix: fix telemetry preference modal and default agent config error (#2312)
* 🐛 fix: fix telemetry preference modal

* 🐛 fix: fix default agent config

* 🐛 fix: fix not correctly init preference

* 🐛 fix: fix init preference

* 🐛 fix: fix router error

* 🐛 fix: fix chat input height not correctly

* 🐛 fix: fix chat input height not correctly
2024-04-30 21:44:46 +08:00
semantic-release-bot a354e35484 🔖 chore(release): v0.151.10 [skip ci]
### [Version&nbsp;0.151.10](https://github.com/lobehub/lobe-chat/compare/v0.151.9...v0.151.10)
<sup>Released on **2024-04-30**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor Welcome Layout.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor Welcome Layout, closes [#2314](https://github.com/lobehub/lobe-chat/issues/2314) ([1040051](https://github.com/lobehub/lobe-chat/commit/1040051))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-30 10:08:54 +00:00
CanisMinor 1040051076 ♻️ refactor: Refactor Welcome Layout (#2314) 2024-04-30 18:05:34 +08:00
semantic-release-bot c2fe2439d5 🔖 chore(release): v0.151.9 [skip ci]
### [Version&nbsp;0.151.9](https://github.com/lobehub/lobe-chat/compare/v0.151.8...v0.151.9)
<sup>Released on **2024-04-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Minimax truncationed output.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Minimax truncationed output, closes [#2308](https://github.com/lobehub/lobe-chat/issues/2308) ([488f319](https://github.com/lobehub/lobe-chat/commit/488f319))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-30 08:30:23 +00:00
Ryo Shen 488f319bcd 🐛 fix: minimax truncationed output (#2308)
* fix: refine minimax response parsing

* fix: truncationed output

* test(minimax): add test for max tokens in payload
2024-04-30 16:27:06 +08:00
semantic-release-bot 82def3de30 🔖 chore(release): v0.151.8 [skip ci]
### [Version&nbsp;0.151.8](https://github.com/lobehub/lobe-chat/compare/v0.151.7...v0.151.8)
<sup>Released on **2024-04-30**</sup>

#### ♻ Code Refactoring

- **misc**: Move NavBar to `[@nav](https://github.com/nav)` slot route.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Move NavBar to `[@nav](https://github.com/nav)` slot route, closes [#2306](https://github.com/lobehub/lobe-chat/issues/2306) ([aee7231](https://github.com/lobehub/lobe-chat/commit/aee7231))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-30 08:01:23 +00:00
CanisMinor aee7231e8a ♻️ refactor: Move NavBar to @nav slot route (#2306)
* ♻️ refactor: Move NavBar to `@nav` slot route

* 🐛 fix: Fix sub routes layout

* 🐛 fix: Fix MobileSessionHeader

* 🔧 chore: Merge error page

*  test: Update tests

* 🐛 fix: Fix ServerLayout

* 🐛 fix: Fix Mobile Header

* 💄 style: Rename components

*  test: Update test
2024-04-30 15:57:42 +08:00
semantic-release-bot 7ef77fc203 🔖 chore(release): v0.151.7 [skip ci]
### [Version&nbsp;0.151.7](https://github.com/lobehub/lobe-chat/compare/v0.151.6...v0.151.7)
<sup>Released on **2024-04-30**</sup>

#### 💄 Styles

- **misc**: Add 404 and Error page.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add 404 and Error page, closes [#2299](https://github.com/lobehub/lobe-chat/issues/2299) ([938a3e9](https://github.com/lobehub/lobe-chat/commit/938a3e9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-30 05:04:34 +00:00
CanisMinor 938a3e99f5 💄 style: add 404 and Error page (#2299)
*  feat: Add 404 and Error page

* 🐛 fix: Fix dynamic ssr in error page

*  perf: Dynamic import Sentry
2024-04-30 13:01:20 +08:00
semantic-release-bot 7817e67e56 🔖 chore(release): v0.151.6 [skip ci]
### [Version&nbsp;0.151.6](https://github.com/lobehub/lobe-chat/compare/v0.151.5...v0.151.6)
<sup>Released on **2024-04-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Plugins with multiple settings cannot be correctly configured.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Plugins with multiple settings cannot be correctly configured, closes [#1991](https://github.com/lobehub/lobe-chat/issues/1991) ([0c041aa](https://github.com/lobehub/lobe-chat/commit/0c041aa))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-30 03:38:48 +00:00
Yang Hanlin 0c041aa7a7 🐛 fix: plugins with multiple settings cannot be correctly configured (#1991)
* 🐛 fix: plugins with multiple settings cannot be correctly configured

* ♻️ refactor: merge plugin setting in the action layer instead of UI

*  test: add a test to ensure plugin settings are correctly merged
2024-04-30 11:35:37 +08:00
semantic-release-bot b0ccfdbee8 🔖 chore(release): v0.151.5 [skip ci]
### [Version&nbsp;0.151.5](https://github.com/lobehub/lobe-chat/compare/v0.151.4...v0.151.5)
<sup>Released on **2024-04-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Effectively interrupt auto scrolling.

#### 💄 Styles

- **misc**: Revise some text.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Effectively interrupt auto scrolling, closes [#2223](https://github.com/lobehub/lobe-chat/issues/2223) ([afe4974](https://github.com/lobehub/lobe-chat/commit/afe4974))

#### Styles

* **misc**: Revise some text, closes [#2296](https://github.com/lobehub/lobe-chat/issues/2296) ([018427f](https://github.com/lobehub/lobe-chat/commit/018427f))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-30 03:17:14 +00:00
sxjeru afe49747f3 🐛 fix: Effectively interrupt auto scrolling (#2223)
* Interrupt auto scrolling

* reduce atBottomThreshold

* del

* del

* Alternative invalid followOutput

* BottomThreshold 过小导致无法连续滚动

* 避免删除消息触发下滑

* restore mobile BottomThreshold

* restore overscan

* fix

* little fix

* fix followOutput
2024-04-30 11:14:02 +08:00
Yang Hanlin 36e40aaf6c 📝 docs: update ZITADEL SSO integration docs (#2301)
* 📝 docs: fix list in ZITADEL integration doc

* 📝 docs: add instruction to enable `User Info inside ID token` option in ZITADEL
2024-04-30 08:59:00 +08:00
Rubu Jam 018427f2f9 💄 style: Revise some text (#2296)
* 💄 style: Revise some text

* 💄 style: Revise some text
2024-04-30 01:43:50 +08:00
semantic-release-bot 0328244176 🔖 chore(release): v0.151.4 [skip ci]
### [Version&nbsp;0.151.4](https://github.com/lobehub/lobe-chat/compare/v0.151.3...v0.151.4)
<sup>Released on **2024-04-29**</sup>

#### ♻ Code Refactoring

- **misc**: Move app page to the `(main)` layout group.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Move app page to the `(main)` layout group, closes [#2297](https://github.com/lobehub/lobe-chat/issues/2297) ([6cc2c38](https://github.com/lobehub/lobe-chat/commit/6cc2c38))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-29 16:31:00 +00:00
Shixian Sheng a2b931f3ba 📝 docs: update README.md (#2298) 2024-04-30 00:27:37 +08:00
CanisMinor 6cc2c382ff ♻️ refactor: move app page to the (main) layout group (#2297) 2024-04-30 00:24:09 +08:00
semantic-release-bot dafafa8d97 🔖 chore(release): v0.151.3 [skip ci]
### [Version&nbsp;0.151.3](https://github.com/lobehub/lobe-chat/compare/v0.151.2...v0.151.3)
<sup>Released on **2024-04-29**</sup>

#### 💄 Styles

- **misc**: Patching models info.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Patching models info, closes [#2269](https://github.com/lobehub/lobe-chat/issues/2269) [#22802280](https://github.com/lobehub/lobe-chat/issues/22802280) ([03bcb06](https://github.com/lobehub/lobe-chat/commit/03bcb06))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-29 15:52:04 +00:00
sxjeru 03bcb06ef4 💄 style: patching models info (#2269)
* update models config

* patch

* context window

* [Request] Add MiniMax new models #22802280

* pass test
2024-04-29 23:48:49 +08:00
semantic-release-bot 637489b3cc 🔖 chore(release): v0.151.2 [skip ci]
### [Version&nbsp;0.151.2](https://github.com/lobehub/lobe-chat/compare/v0.151.1...v0.151.2)
<sup>Released on **2024-04-29**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix only inject welcome question in inbox.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix only inject welcome question in inbox, closes [#2289](https://github.com/lobehub/lobe-chat/issues/2289) ([cc8edd3](https://github.com/lobehub/lobe-chat/commit/cc8edd3))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-29 15:07:29 +00:00
Arvin Xu 721a2da475 🔨 chore: upgrade next to 14.2.x (#2015)
* Update package.json

* 🐛 fix: Fix shiki build error

---------

Co-authored-by: CanisMinor <i@canisminor.cc>
2024-04-29 23:04:10 +08:00
Arvin Xu cc8edd3d4e 🐛 fix: fix only inject welcome question in inbox (#2289)
* ️ perf: improve conversation loading performance

* 🐛 fix: fix the welcome message inject

* 🐛 fix: fix the welcome message inject
2024-04-29 23:03:52 +08:00
semantic-release-bot 6d9d070f16 🔖 chore(release): v0.151.1 [skip ci]
### [Version&nbsp;0.151.1](https://github.com/lobehub/lobe-chat/compare/v0.151.0...v0.151.1)
<sup>Released on **2024-04-29**</sup>

#### 💄 Styles

- **misc**: Improve Inbox Assistant Welcome Guide.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve Inbox Assistant Welcome Guide, closes [#2086](https://github.com/lobehub/lobe-chat/issues/2086) ([df37212](https://github.com/lobehub/lobe-chat/commit/df37212))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-29 04:12:24 +00:00
CanisMinor df37212a6b 💄 style: improve Inbox Assistant Welcome Guide (#2086)
*  feat: Add qa blocks to welcome guide

* ♻️ refactor: refactor the url

*  test: Add new tests

* 💄 style: Update Theme ConfigProvider

* 🐛 fix: fix url

* 🐛 fix: Fix time calc and card min height

---------

Co-authored-by: arvinxx <arvinx@foxmail.com>
2024-04-29 12:08:41 +08:00
semantic-release-bot 3802e24027 🔖 chore(release): v0.151.0 [skip ci]
## [Version&nbsp;0.151.0](https://github.com/lobehub/lobe-chat/compare/v0.150.10...v0.151.0)
<sup>Released on **2024-04-29**</sup>

####  Features

- **misc**: Support minimax as a new provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support minimax as a new provider, closes [#2087](https://github.com/lobehub/lobe-chat/issues/2087) ([00abd82](https://github.com/lobehub/lobe-chat/commit/00abd82))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-29 03:01:01 +00:00
Ryo Shen 00abd82687 feat: support minimax as a new provider (#2087)
* add minimax as provider

* add i18n token

* update

* update

* Revert "add i18n token"

This reverts commit 4be6d6797b4b60baa965243dc772a023b10b96f6.

* add i18n token

* add doc

* update i18n

* implement MinimaxStream

* use fetchSSE function

* fix TypeError and SyntaxError

* add unit test

* add agent runtime

* add debug log

* use fetch function directly

* refactor(minimax): streamline response parsing logic

* remove redundant error response check

* fix code style
2024-04-29 10:57:48 +08:00
semantic-release-bot 4810b228c9 🔖 chore(release): v0.150.10 [skip ci]
### [Version&nbsp;0.150.10](https://github.com/lobehub/lobe-chat/compare/v0.150.9...v0.150.10)
<sup>Released on **2024-04-28**</sup>

#### ♻ Code Refactoring

- **misc**: Rename globalStore to userStore.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Rename globalStore to userStore, closes [#2264](https://github.com/lobehub/lobe-chat/issues/2264) ([a3cb538](https://github.com/lobehub/lobe-chat/commit/a3cb538))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-28 15:31:35 +00:00
Arvin Xu a3cb53804d ♻️ refactor: rename globalStore to userStore (#2264)
* ♻️ refactor: rename globalStore to userStore

* ♻️ refactor: refactor the globalStore usage

* ♻️ refactor: clean the user preference

* 🐛 fix: fix preference init

* ♻️ refactor: refactor the global Store

* 🎨 chore: improve code
2024-04-28 23:28:17 +08:00
semantic-release-bot a3911e5cd0 🔖 chore(release): v0.150.9 [skip ci]
### [Version&nbsp;0.150.9](https://github.com/lobehub/lobe-chat/compare/v0.150.8...v0.150.9)
<sup>Released on **2024-04-28**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor  feature flags store to server config store.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor  feature flags store to server config store, closes [#2263](https://github.com/lobehub/lobe-chat/issues/2263) ([2e991d7](https://github.com/lobehub/lobe-chat/commit/2e991d7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-28 13:02:51 +00:00
Arvin Xu 2e991d7548 ♻️ refactor: refactor feature flags store to server config store (#2263)
* 🚚 refactor: rename featureFlag store to serverConfig store

* 🚚 refactor: use serverConfigSelectors to replace commonSelectors

* 🎨 chore: clean code
2024-04-28 20:59:38 +08:00
Arthals 80d8eec9b0 📝 docs: Update upstream-sync (#2262) 2024-04-28 20:07:22 +08:00
semantic-release-bot d601fe7808 🔖 chore(release): v0.150.8 [skip ci]
### [Version&nbsp;0.150.8](https://github.com/lobehub/lobe-chat/compare/v0.150.7...v0.150.8)
<sup>Released on **2024-04-28**</sup>

#### 💄 Styles

- **ollama**: Phi3 Instruct models and its model icons.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **ollama**: Phi3 Instruct models and its model icons, closes [#2254](https://github.com/lobehub/lobe-chat/issues/2254) ([c9b55cc](https://github.com/lobehub/lobe-chat/commit/c9b55cc))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-28 10:26:31 +00:00
Maple Gao c9b55ccfd6 💄 style(ollama): Phi3 Instruct models and its model icons (#2254) 2024-04-28 18:23:22 +08:00
semantic-release-bot e5cc179044 🔖 chore(release): v0.150.7 [skip ci]
### [Version&nbsp;0.150.7](https://github.com/lobehub/lobe-chat/compare/v0.150.6...v0.150.7)
<sup>Released on **2024-04-28**</sup>

#### 🐛 Bug Fixes

- **misc**: Suport to fetch model list on client.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Suport to fetch model list on client, closes [#2252](https://github.com/lobehub/lobe-chat/issues/2252) ([76310a8](https://github.com/lobehub/lobe-chat/commit/76310a8))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-28 10:03:42 +00:00
cy948 76310a8971 🐛 fix: suport to fetch model list on client (#2252) 2024-04-28 18:00:31 +08:00
semantic-release-bot 752e0a3ba2 🔖 chore(release): v0.150.6 [skip ci]
### [Version&nbsp;0.150.6](https://github.com/lobehub/lobe-chat/compare/v0.150.5...v0.150.6)
<sup>Released on **2024-04-28**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix `/api/proxy` internal proxy attack.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix `/api/proxy` internal proxy attack, closes [#2255](https://github.com/lobehub/lobe-chat/issues/2255) ([465665a](https://github.com/lobehub/lobe-chat/commit/465665a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-28 09:07:09 +00:00
Arvin Xu 465665a735 🐛 fix: fix /api/proxy internal proxy attack (#2255) 2024-04-28 17:03:58 +08:00
renovate[bot] 68057529be Update dependency pino to v9 (#2249)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-28 10:49:42 +08:00
renovate[bot] 30c572ee9d Update dependency @google/generative-ai to ^0.8.0 (#2247)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-28 10:49:28 +08:00
Arvin Xu 7cd0a34e40 📝 docs: improve ollama usage docs (#2244)
* docs

* update docs

* update docs

* update docs

* update docs

* update docs
2024-04-28 01:25:11 +08:00
semantic-release-bot 904a3dfa64 🔖 chore(release): v0.150.5 [skip ci]
### [Version&nbsp;0.150.5](https://github.com/lobehub/lobe-chat/compare/v0.150.4...v0.150.5)
<sup>Released on **2024-04-27**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix the plugin string env and search error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix the plugin string env and search error, closes [#2239](https://github.com/lobehub/lobe-chat/issues/2239) ([74b1ae0](https://github.com/lobehub/lobe-chat/commit/74b1ae0))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-27 10:23:17 +00:00
Arvin Xu 74b1ae0865 🐛 fix: fix the plugin string env and search error (#2239)
* 🐛 fix: fix the plugin string env

* 🐛 fix: fix the search not working correctly

* 🐛 fix: fix the search not working correctly
2024-04-27 18:20:09 +08:00
semantic-release-bot 179fb46a8b 🔖 chore(release): v0.150.4 [skip ci]
### [Version&nbsp;0.150.4](https://github.com/lobehub/lobe-chat/compare/v0.150.3...v0.150.4)
<sup>Released on **2024-04-27**</sup>

#### 💄 Styles

- **misc**: Hide default model tag and show ollama provider by default.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Hide default model tag and show ollama provider by default, closes [#2238](https://github.com/lobehub/lobe-chat/issues/2238) ([baa4780](https://github.com/lobehub/lobe-chat/commit/baa4780))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-27 08:39:51 +00:00
Arvin Xu baa478031b 💄 style: hide default model tag and show ollama provider by default (#2238)
* 💄 style: show ollama by default

* 💄 style: hide default model tag

* ♻️ refactor: refactor the default agent config data
2024-04-27 16:36:42 +08:00
semantic-release-bot d2872bdd31 🔖 chore(release): v0.150.3 [skip ci]
### [Version&nbsp;0.150.3](https://github.com/lobehub/lobe-chat/compare/v0.150.2...v0.150.3)
<sup>Released on **2024-04-27**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix docker build.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix docker build, closes [#2236](https://github.com/lobehub/lobe-chat/issues/2236) ([749a843](https://github.com/lobehub/lobe-chat/commit/749a843))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-27 07:44:00 +00:00
Arvin Xu 749a843fbb 🐛 fix: fix docker build (#2236) 2024-04-27 15:40:58 +08:00
semantic-release-bot f753eb93d0 🔖 chore(release): v0.150.2 [skip ci]
### [Version&nbsp;0.150.2](https://github.com/lobehub/lobe-chat/compare/v0.150.1...v0.150.2)
<sup>Released on **2024-04-27**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix display error when using `DEFAULT_AGENT_CONFIG` env.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix display error when using `DEFAULT_AGENT_CONFIG` env, closes [#2231](https://github.com/lobehub/lobe-chat/issues/2231) ([42bc734](https://github.com/lobehub/lobe-chat/commit/42bc734))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-27 07:24:27 +00:00
Arvin Xu 42bc7346d8 🐛 fix: fix display error when using DEFAULT_AGENT_CONFIG env (#2231)
* 🐛 fix: fix display error when using DEFAULT_AGENT_CONFIG env

* 🔥 chore: remove file

*  test: add more test

*  test: add more test

*  test: add more test

*  test: add more test
2024-04-27 15:21:14 +08:00
semantic-release-bot 361ab49281 🔖 chore(release): v0.150.1 [skip ci]
### [Version&nbsp;0.150.1](https://github.com/lobehub/lobe-chat/compare/v0.150.0...v0.150.1)
<sup>Released on **2024-04-27**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix display error when using DEFAULT_AGENT_CONFIG env.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix display error when using DEFAULT_AGENT_CONFIG env ([e46215c](https://github.com/lobehub/lobe-chat/commit/e46215c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-27 06:04:26 +00:00
arvinxx 834a7be2a0 Revert "🐛 fix: fix display error when using DEFAULT_AGENT_CONFIG env"
This reverts commit e46215c17a.
2024-04-27 14:00:57 +08:00
arvinxx e46215c17a 🐛 fix: fix display error when using DEFAULT_AGENT_CONFIG env 2024-04-27 14:00:08 +08:00
lobehubbot 0254c05780 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-27 03:44:15 +00:00
Arvin Xu fdc3c2588a 🧱 chore: introduce trpc as network framework (#2227) 2024-04-27 11:40:45 +08:00
semantic-release-bot 81613f5724 🔖 chore(release): v0.150.0 [skip ci]
## [Version&nbsp;0.150.0](https://github.com/lobehub/lobe-chat/compare/v0.149.6...v0.150.0)
<sup>Released on **2024-04-26**</sup>

####  Features

- **misc**: Support feature flags.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support feature flags, closes [#2213](https://github.com/lobehub/lobe-chat/issues/2213) ([4532be5](https://github.com/lobehub/lobe-chat/commit/4532be5))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-26 17:07:00 +00:00
Maple Gao 22547edd28 📝 docs: Update Ollama Environment Variables table (#2188) 2024-04-27 01:03:42 +08:00
Arvin Xu 4532be5645 feat: support feature flags (#2213)
*  feat: support hide create session

*  feat: support hide edit panel of session

*  feat: support env of feature flags

* 🐛 fix: fix env

* ♻️ refactor: refactor to support server side feature flags

* 🎨 chore: improve code

* 🌐 chore: add locale

* ♻️ refactor: improve code

*  feat: support hide dalle

* 🎨 chore: clean code

*  test: add test for env

*  test: add test for metaList

*  test: add test for selectors
2024-04-27 01:03:02 +08:00
lobehubbot 58561d6cda 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-26 15:32:27 +00:00
Maple Gao 5dd686dbac 💄 chore: fix a return missing space in system (#2219) 2024-04-26 23:29:09 +08:00
semantic-release-bot 2a72d1f68e 🔖 chore(release): v0.149.6 [skip ci]
### [Version&nbsp;0.149.6](https://github.com/lobehub/lobe-chat/compare/v0.149.5...v0.149.6)
<sup>Released on **2024-04-26**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix ollama host issue.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix ollama host issue, closes [#2210](https://github.com/lobehub/lobe-chat/issues/2210) ([c49d4c7](https://github.com/lobehub/lobe-chat/commit/c49d4c7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-26 08:14:38 +00:00
eyebrow c49d4c772f 🐛 fix: fix ollama host issue (#2210)
Co-authored-by: eyebrowkang <eyebrowkang@tencent.com>
2024-04-26 16:11:32 +08:00
多啦b梦 1ca7cadbe7 📝 docs: Update docs/self-hosting/platform/docker-compose.zh-CN.mdx (#2204)
* Update `docs/self-hosting/platform/docker-compose.zh-CN.mdx`

* Update docker-compose.zh-CN.mdx

* Update docker-compose.zh-CN.mdx

---------

Co-authored-by: Arvin Xu <arvinx@foxmail.com>
2024-04-26 10:24:04 +08:00
semantic-release-bot b7c01344cc 🔖 chore(release): v0.149.5 [skip ci]
### [Version&nbsp;0.149.5](https://github.com/lobehub/lobe-chat/compare/v0.149.4...v0.149.5)
<sup>Released on **2024-04-25**</sup>

#### ♻ Code Refactoring

- **misc**: Sperate SessionStore to a new AgentStore.

#### 🐛 Bug Fixes

- **misc**: Fix not handle ollama error correctly.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Sperate SessionStore to a new AgentStore, closes [#2197](https://github.com/lobehub/lobe-chat/issues/2197) ([49c0ba6](https://github.com/lobehub/lobe-chat/commit/49c0ba6))

#### What's fixed

* **misc**: Fix not handle ollama error correctly ([efdf174](https://github.com/lobehub/lobe-chat/commit/efdf174))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-25 17:25:34 +00:00
arvinxx efdf174d1e 🐛 fix: fix not handle ollama error correctly 2024-04-26 01:22:16 +08:00
Arvin Xu 49c0ba6613 ♻️ refactor: sperate SessionStore to a new AgentStore (#2197)
* ♻️ refactor: refactor SessionStore to a new AgentStore

* 🎨 refactor: clean code

* 🐛 fix: fix inbox session

* 🐛 fix: fix inbox session

* Update user.ts

* 🎨 chore: clear code

* 🐛 fix: fix default group not expand
2024-04-26 01:19:11 +08:00
CanisMinor 33e2236207 🔨 chore: Update FUNDING.yml to add Github Sponsor [skip ci] 2024-04-25 22:14:09 +08:00
semantic-release-bot 53510c1d45 🔖 chore(release): v0.149.4 [skip ci]
### [Version&nbsp;0.149.4](https://github.com/lobehub/lobe-chat/compare/v0.149.3...v0.149.4)
<sup>Released on **2024-04-25**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix chat client request not support abort.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix chat client request not support abort, closes [#2193](https://github.com/lobehub/lobe-chat/issues/2193) ([d22ef2c](https://github.com/lobehub/lobe-chat/commit/d22ef2c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-25 11:05:58 +00:00
Arvin Xu d22ef2c6a3 🐛 fix: fix chat client request not support abort (#2193)
* 🐛 fix: fix client request not support abort

*  test: fix test
2024-04-25 19:02:50 +08:00
semantic-release-bot a0a4e00075 🔖 chore(release): v0.149.3 [skip ci]
### [Version&nbsp;0.149.3](https://github.com/lobehub/lobe-chat/compare/v0.149.2...v0.149.3)
<sup>Released on **2024-04-25**</sup>

#### 💄 Styles

- **misc**: Add displaying the message "Reset Successfully.".

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add displaying the message "Reset Successfully.", closes [#2158](https://github.com/lobehub/lobe-chat/issues/2158) ([27913ef](https://github.com/lobehub/lobe-chat/commit/27913ef))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-25 07:13:53 +00:00
Rubu Jam 27913ef4a8 💄 style: Add displaying the message "Reset Successfully." (#2158)
* Upon completion of the reset process, a pop-up window will appear, displaying the message "Reset Successfully."

* Update zh-CN/setting.json

* translation
2024-04-25 15:10:45 +08:00
Rubu Jam c684d4e21a 🐛 fix: Rollback #2149 (#2186)
* RollBACK #2149

* RollBACK lobehub#2149

* Update route.ts
2024-04-25 01:45:13 +08:00
semantic-release-bot 1226458064 🔖 chore(release): v0.149.2 [skip ci]
### [Version&nbsp;0.149.2](https://github.com/lobehub/lobe-chat/compare/v0.149.1...v0.149.2)
<sup>Released on **2024-04-24**</sup>

#### 💄 Styles

- **misc**: Support to create ai message.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Support to create ai message, closes [#2185](https://github.com/lobehub/lobe-chat/issues/2185) ([ba3ba6a](https://github.com/lobehub/lobe-chat/commit/ba3ba6a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-24 17:18:07 +00:00
Arvin Xu ba3ba6a783 💄 style: support to create ai message (#2185)
*  feat: support to create ai message

* 🌐 style: add locale

* 🎨 chore: improve code

* 🐛 fix: fix to clear ai message

* 🚸 style: update assistant action
2024-04-25 01:14:57 +08:00
semantic-release-bot 06c1844a88 🔖 chore(release): v0.149.1 [skip ci]
### [Version&nbsp;0.149.1](https://github.com/lobehub/lobe-chat/compare/v0.149.0...v0.149.1)
<sup>Released on **2024-04-24**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-24 16:00:17 +00:00
Arvin Xu c8f35cb1d8 ️ perf: refactor to improve the topic async state (#2182)
* ️ perf: refactor the topic server mode

*  test: fix test

* 🐛 fix: fix duplicateTopic display error

* 💄 style: improve ollama setup guide
2024-04-24 23:57:08 +08:00
semantic-release-bot e176009a15 🔖 chore(release): v0.149.0 [skip ci]
## [Version&nbsp;0.149.0](https://github.com/lobehub/lobe-chat/compare/v0.148.10...v0.149.0)
<sup>Released on **2024-04-24**</sup>

####  Features

- **misc**: Fully support ollama with browser request mode.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Fully support ollama with browser request mode, closes [#2168](https://github.com/lobehub/lobe-chat/issues/2168) ([562d189](https://github.com/lobehub/lobe-chat/commit/562d189))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-24 05:41:19 +00:00
Arvin Xu 562d18926a feat: fully support ollama with browser request mode (#2168)
* 🌐 style: add i18n

* 🐛 fix: fix ollama chat error

* 💄 style: improve ollama request mode

* 🚸 style: improve ollama setup guide

* 📝 docs: remove v1 suffix

* 🐛 fix: keep server mode if user use proxy
2024-04-24 13:38:10 +08:00
renovate[bot] 32aeb52c3c Update dependency brotli-wasm to v3 (#2121)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-24 13:32:25 +08:00
gary 3edb99c3b6 📝 docs: Update docs/self-hosting/advanced/sso-providers/github.zh-CN.mdx (#2154)
* Update `docs/self-hosting/advanced/sso-providers/github.zh-CN.mdx`

* Update github.zh-CN.mdx
2024-04-24 13:31:37 +08:00
semantic-release-bot 128cbfe933 🔖 chore(release): v0.148.10 [skip ci]
### [Version&nbsp;0.148.10](https://github.com/lobehub/lobe-chat/compare/v0.148.9...v0.148.10)
<sup>Released on **2024-04-24**</sup>

#### 💄 Styles

- **misc**: Update Ollama model 240421.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Update Ollama model 240421, closes [#2130](https://github.com/lobehub/lobe-chat/issues/2130) ([e797af0](https://github.com/lobehub/lobe-chat/commit/e797af0))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-24 03:00:50 +00:00
Maple Gao e797af0607 💄 style: update Ollama model 240421 (#2130) 2024-04-24 10:57:39 +08:00
semantic-release-bot 31c16b99f5 🔖 chore(release): v0.148.9 [skip ci]
### [Version&nbsp;0.148.9](https://github.com/lobehub/lobe-chat/compare/v0.148.8...v0.148.9)
<sup>Released on **2024-04-23**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor for session server mode.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor for session server mode, closes [#2163](https://github.com/lobehub/lobe-chat/issues/2163) ([e012597](https://github.com/lobehub/lobe-chat/commit/e012597))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-23 17:05:42 +00:00
Arvin Xu e012597226 ♻️ refactor: refactor for session server mode (#2163)
* ♻️ refactor: refactor for session server mode

*  test: fix test

*  test: add tests

* 🚨 chore: fix lint
2024-04-24 01:01:51 +08:00
semantic-release-bot 2d52303888 🔖 chore(release): v0.148.8 [skip ci]
### [Version&nbsp;0.148.8](https://github.com/lobehub/lobe-chat/compare/v0.148.7...v0.148.8)
<sup>Released on **2024-04-23**</sup>

#### 💄 Styles

- **misc**:  update some `gemini` deployment restrictions.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**:  update some `gemini` deployment restrictions, closes [#2149](https://github.com/lobehub/lobe-chat/issues/2149) ([6d36863](https://github.com/lobehub/lobe-chat/commit/6d36863))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-23 05:15:10 +00:00
Rubu Jam 6d36863c0d 💄 style: update some gemini deployment restrictions (#2149)
* Removing Some Restrictions

* Update route.ts

* update route.ts

* Update route.test.ts
2024-04-23 13:11:56 +08:00
semantic-release-bot 78a17e7ba1 🔖 chore(release): v0.148.7 [skip ci]
### [Version&nbsp;0.148.7](https://github.com/lobehub/lobe-chat/compare/v0.148.6...v0.148.7)
<sup>Released on **2024-04-23**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix qwen-1.5-chat-72B context window in togetherai.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix qwen-1.5-chat-72B context window in togetherai, closes [#2142](https://github.com/lobehub/lobe-chat/issues/2142) ([d0753cf](https://github.com/lobehub/lobe-chat/commit/d0753cf))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-23 05:02:45 +00:00
JamesFlare1212 d0753cf733 🐛 fix: fix qwen-1.5-chat-72B context window in togetherai (#2142)
Fix Qwen 1.5 Chat 72B content window size
2024-04-23 12:59:42 +08:00
semantic-release-bot 999b7824af 🔖 chore(release): v0.148.6 [skip ci]
### [Version&nbsp;0.148.6](https://github.com/lobehub/lobe-chat/compare/v0.148.5...v0.148.6)
<sup>Released on **2024-04-22**</sup>

#### 🐛 Bug Fixes

- **misc**: Add Windows Phone, iPadOS, BlackBerry OS, Linux OS and Chrome OS sync icons.

#### 💄 Styles

- **misc**: Support more model Icons: dbrx, command-r, openchat, rwkv, Bert-vits2, Stable Diffusion, WizardLM, adobe firefly, skylark.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Add Windows Phone, iPadOS, BlackBerry OS, Linux OS and Chrome OS sync icons, closes [#2139](https://github.com/lobehub/lobe-chat/issues/2139) ([8ed1f07](https://github.com/lobehub/lobe-chat/commit/8ed1f07))

#### Styles

* **misc**: Support more model Icons: dbrx, command-r, openchat, rwkv, Bert-vits2, Stable Diffusion, WizardLM, adobe firefly, skylark, closes [#2107](https://github.com/lobehub/lobe-chat/issues/2107) ([4268d8b](https://github.com/lobehub/lobe-chat/commit/4268d8b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-22 12:18:39 +00:00
Maple Gao 8ed1f07482 💄 fix: add Windows Phone, iPadOS, BlackBerry OS, Linux OS and Chrome OS sync icons (#2139) 2024-04-22 20:15:31 +08:00
Maple Gao 4268d8be22 💄 style: support more model Icons: dbrx, command-r, openchat, rwkv, Bert-vits2, Stable Diffusion, WizardLM, adobe firefly, skylark (#2107)
*  new: support more model Icons: dbrx, command-r, openchat, rwkv, Bert-vits2, Stable Diffusion, WizardLM, adobe firefly, skylark

* 💄 add: model Stable Cascade

* 💄 add: Jamba and OpenChat

* ♻️ refactor: support more model Icons: dbrx, command-r, openchat, rwkv, Bert-vits2, Stable Diffusion, WizardLM, adobe firefly, skylark and so on

* 💄 fix: remove unused Zhipu from import

* 💄 fix: 01.AI not show Icons in other providers.
2024-04-22 20:14:35 +08:00
Maple Gao cb997a5c30 📝 docs: improve guide of ollama local deployment (#2146)
* 📝 docs: Complete guide of ollama local deployment

* 📝 docs: Complete guide of ollama local deployment
2024-04-22 20:12:38 +08:00
Arthals 28bcbf00d9 📝 docs: Update PWA & update pnpm in CONTRIBUTING (#2148)
* 📝 docs: Update PWA & update `pnpm` in CONTRIBUTING

* 📝 docs: Update image & callout
2024-04-22 20:04:31 +08:00
semantic-release-bot 2655918214 🔖 chore(release): v0.148.5 [skip ci]
### [Version&nbsp;0.148.5](https://github.com/lobehub/lobe-chat/compare/v0.148.4...v0.148.5)
<sup>Released on **2024-04-22**</sup>

#### 💄 Styles

- **misc**: Support together ai to fetch model list.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Support together ai to fetch model list, closes [#2138](https://github.com/lobehub/lobe-chat/issues/2138) ([e6d3e4a](https://github.com/lobehub/lobe-chat/commit/e6d3e4a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-22 06:00:21 +00:00
Arvin Xu e6d3e4a91d 💄 style: support together ai to fetch model list (#2138)
* 💄 style: support together ai model fetch

* 💄 style: support together ai model fetch

* 💄 style: support together ai model fetch

* 💄 style: support together ai model fetch
2024-04-22 13:57:17 +08:00
semantic-release-bot f45f8752e0 🔖 chore(release): v0.148.4 [skip ci]
### [Version&nbsp;0.148.4](https://github.com/lobehub/lobe-chat/compare/v0.148.3...v0.148.4)
<sup>Released on **2024-04-21**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix model list menu not display correctly.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix model list menu not display correctly, closes [#2133](https://github.com/lobehub/lobe-chat/issues/2133) ([98c844b](https://github.com/lobehub/lobe-chat/commit/98c844b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-21 18:54:25 +00:00
Arvin Xu 98c844bf55 🐛 fix: fix model list menu not display correctly (#2133)
* ♻️ refactor: remove preference hydration

* 🐛 fix: fix model-list menu not display correctly

* 🐛 fix: fix azure not show the deployment name

* ♻️ refactor: rename the StoreHydration
2024-04-22 02:51:21 +08:00
semantic-release-bot e1de8efca3 🔖 chore(release): v0.148.3 [skip ci]
### [Version&nbsp;0.148.3](https://github.com/lobehub/lobe-chat/compare/v0.148.2...v0.148.3)
<sup>Released on **2024-04-21**</sup>

#### 💄 Styles

- **ollama**: Show size info while download, support cancel donwload, optimize calculation for speed.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **ollama**: Show size info while download, support cancel donwload, optimize calculation for speed, closes [#1664](https://github.com/lobehub/lobe-chat/issues/1664) ([9b18f47](https://github.com/lobehub/lobe-chat/commit/9b18f47))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-21 12:13:34 +00:00
Johnson 9b18f472c0 💄 style(ollama): show size info while download, support cancel donwload, optimize calculation for speed (#1664)
Co-authored-by: shijianyue <shijianyue@bytedance.com>
Co-authored-by: arvinxx <arvinx@foxmail.com>
2024-04-21 20:10:26 +08:00
semantic-release-bot d440cccf07 🔖 chore(release): v0.148.2 [skip ci]
### [Version&nbsp;0.148.2](https://github.com/lobehub/lobe-chat/compare/v0.148.1...v0.148.2)
<sup>Released on **2024-04-21**</sup>

#### 💄 Styles

- **misc**: Add LLaMA 3 in groq + Mixtral 8x22B model.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add LLaMA 3 in groq + Mixtral 8x22B model, closes [#2128](https://github.com/lobehub/lobe-chat/issues/2128) ([6144448](https://github.com/lobehub/lobe-chat/commit/6144448))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-21 11:57:57 +00:00
Linghui Gong 6144448c2d 💄 style: add LLaMA 3 in groq + Mixtral 8x22B model (#2128)
*  feat: llama 3 in groq

*  feat: new mistral model
2024-04-21 19:54:59 +08:00
Okeke Felix Chibuzor 77e84a9c85 📝 docs: Update docs/self-hosting/platform/vercel.mdx (#2124)
* Update `docs/self-hosting/platform/vercel.mdx`

* Update vercel.mdx
2024-04-21 14:44:51 +08:00
semantic-release-bot 505b328354 🔖 chore(release): v0.148.1 [skip ci]
### [Version&nbsp;0.148.1](https://github.com/lobehub/lobe-chat/compare/v0.148.0...v0.148.1)
<sup>Released on **2024-04-20**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix topic title not auto generate.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix topic title not auto generate, closes [#2114](https://github.com/lobehub/lobe-chat/issues/2114) ([5979de3](https://github.com/lobehub/lobe-chat/commit/5979de3))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-20 16:52:42 +00:00
Arvin Xu 5979de337a 🐛 fix: fix topic title not auto generate (#2114)
* 🐛 fix: fix topic auto gen

*  test: fix test

* 🎨 chore: improve code
2024-04-21 00:49:39 +08:00
Arvin Xu 1176948734 test: use happy dom to fix test (#2113)
*  test: fix test

* Update package.json
2024-04-20 23:30:33 +08:00
semantic-release-bot 6853dc2a98 🔖 chore(release): v0.148.0 [skip ci]
## [Version&nbsp;0.148.0](https://github.com/lobehub/lobe-chat/compare/v0.147.22...v0.148.0)
<sup>Released on **2024-04-20**</sup>

####  Features

- **misc**: Support chat completion call at client side.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support chat completion call at client side, closes [#2041](https://github.com/lobehub/lobe-chat/issues/2041) ([9f5858f](https://github.com/lobehub/lobe-chat/commit/9f5858f))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-20 09:59:18 +00:00
cy948 9f5858faf4 feat: support chat completion call at client side (#2041)
*  feat: support chat completion call at client side

* 🐛 fix: disable agent-runtime in browser feature when user set
endpoint only

- 🐛 fix: this feature only enable when user set both apikey and
  endpoint in one specific llm setting

* ♻️ refactor: refactor agentruntime

* ♻️ refactor: add fetchOnClient

* 🚨 chore: eslint Circular Dependencies issue

* 💄 feat: Added UI to control fetchOnClient

*  test: Passed chat provider test

* ♻️ refactor: remove redundant export

*  test: add for agentRuntime

* 💄 style: remove tag for llm config

*  test: add for agentRuntime init

* ♻️ refactor: fetchOnClient

*  test: add for clinet agentRuntime init

* ♻️ refactor: for write tests easily

*  test: for client AgentRuntime

* 🌐 i18n: fetch on client

*  test: agentruntime

* ♻️ refactor: don't trace on client

* 📝 docs: update annotation for new methods

* 🐛fix: error not catch at client

* ♻️ refactor: extract trace at chat()

*  test: for new chat method

* ♻️ refactor: -lines make stats better

* ♻️ refactor: remove deprecate

* ♻️  refactor: remove deprecate class AgentRuntime
* ♻️  refactor: fix circular dependence from AgentRuntime
*  test: pass tests

* ♻️ refactor: reformat import urls

* ♻️ refactor: rename initAgentRuntimeWithUserPayload

* 💄 style: improve config

* 🌐 style: add i18n

* 💄 style: client 默认显示 ollama
2024-04-20 17:56:07 +08:00
Arvin Xu b3a7329b40 🔨 chore: fix vercel deployment (#2104)
* Update vercel.json

* add deps
2024-04-19 23:31:54 +08:00
semantic-release-bot a16368a31a 🔖 chore(release): v0.147.22 [skip ci]
### [Version&nbsp;0.147.22](https://github.com/lobehub/lobe-chat/compare/v0.147.21...v0.147.22)
<sup>Released on **2024-04-19**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-19 14:03:50 +00:00
Arvin Xu 148825bb31 perf: improve message loading (#2097)
*  perf: improve message loading

*  perf: improve topic loading
2024-04-19 22:00:38 +08:00
renovate[bot] 630433e9f0 Update dependency @google/generative-ai to ^0.7.0 (#1607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-19 21:09:54 +08:00
Rubu Jam 4e96bda9a1 💄 style : Convert some ico files from online to local. (#2094)
* 💄 style : ico files from online to local

* 💄 style : ico files from online to local

* 💄 style : Convert some ico files from online to local.

* Optimize some code
2024-04-19 20:48:13 +08:00
semantic-release-bot 2a95aee9a6 🔖 chore(release): v0.147.21 [skip ci]
### [Version&nbsp;0.147.21](https://github.com/lobehub/lobe-chat/compare/v0.147.20...v0.147.21)
<sup>Released on **2024-04-19**</sup>

#### 💄 Styles

- **misc**: Optimized file upload buttons and prompts.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Optimized file upload buttons and prompts, closes [#2050](https://github.com/lobehub/lobe-chat/issues/2050) ([c23087e](https://github.com/lobehub/lobe-chat/commit/c23087e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-19 12:34:08 +00:00
Clivia c23087e17f 💄 style: Optimized file upload buttons and prompts (#2050) 2024-04-19 20:30:53 +08:00
Arvin Xu 25772213e7 🔨 chore: fix vercel build (#2095) 2024-04-19 14:06:08 +08:00
lobehubbot 34677f6691 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-18 17:09:37 +00:00
semantic-release-bot 7e2dfc6d5d 🔖 chore(release): v0.147.20 [skip ci]
### [Version&nbsp;0.147.20](https://github.com/lobehub/lobe-chat/compare/v0.147.19...v0.147.20)
<sup>Released on **2024-04-18**</sup>

#### 💄 Styles

- **misc**: Improve aync session experience.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve aync session experience, closes [#2075](https://github.com/lobehub/lobe-chat/issues/2075) ([0f3b19b](https://github.com/lobehub/lobe-chat/commit/0f3b19b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-18 17:08:59 +00:00
Arvin Xu 0f3b19b4ab 💄 style: improve aync session experience (#2075)
* 💄 style: improve delete experience

* 💄 style: fix clear loading

* 💄 style: fix add session loading

* 💄 style: fix duplicate session loading

*  test: fix test

* 🌐 style: add i18n

* 💄 style: improve search session loading

* 🐛 fix: fix crash with search
2024-04-19 01:05:42 +08:00
semantic-release-bot 83d09c5f51 🔖 chore(release): v0.147.19 [skip ci]
### [Version&nbsp;0.147.19](https://github.com/lobehub/lobe-chat/compare/v0.147.18...v0.147.19)
<sup>Released on **2024-04-18**</sup>

#### 💄 Styles

- **misc**: Add M and B support max token in ModelInfoTags.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add M and B support max token in ModelInfoTags, closes [#2073](https://github.com/lobehub/lobe-chat/issues/2073) ([a985d8f](https://github.com/lobehub/lobe-chat/commit/a985d8f))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-18 14:04:35 +00:00
Maple Gao a985d8f023 💄 style: add M and B support max token in ModelInfoTags (#2073)
* 💄 chore: add M and B support max token in ModelInfoTags

* 💄 chore: add M and B support max token in ModelInfoTags

* 💄 chore: add M and B support max token in ModelInfoTags

* 💄 chore: add M support max token in ModelInfoTags
2024-04-18 22:01:11 +08:00
semantic-release-bot e170dd4b05 🔖 chore(release): v0.147.18 [skip ci]
### [Version&nbsp;0.147.18](https://github.com/lobehub/lobe-chat/compare/v0.147.17...v0.147.18)
<sup>Released on **2024-04-17**</sup>

#### 💄 Styles

- **misc**: Add claude 3 opus to AWS Bedrock, remove custom models from providers, and update Perplexity model names.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add claude 3 opus to AWS Bedrock, closes [#2072](https://github.com/lobehub/lobe-chat/issues/2072) ([479f562](https://github.com/lobehub/lobe-chat/commit/479f562))
* **misc**: Remove custom models from providers, and update Perplexity model names, closes [#2069](https://github.com/lobehub/lobe-chat/issues/2069) ([e04754d](https://github.com/lobehub/lobe-chat/commit/e04754d))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-17 09:44:41 +00:00
Maple Gao e04754d3c4 💄 style: remove custom models from providers, and update Perplexity model names (#2069)
* 💄 models: Mixtral 8x22b is no longer free, and added WizardLM 2 8x22b by default.

* 💄 style: Remove reversed or custom models from official model list.

* 💄 style: Perplexity model name updates

* 💄 style: add model refs doc for update check

* 💄 chore: remove gpt-4-all feature flag test

* 💄 chore: remove gpt-4-all feature flag modelEnabledFiles test
2024-04-17 17:41:23 +08:00
Linghui Gong 479f562217 💄 style: add claude 3 opus to AWS Bedrock (#2072) 2024-04-17 17:40:34 +08:00
semantic-release-bot 40507dd421 🔖 chore(release): v0.147.17 [skip ci]
### [Version&nbsp;0.147.17](https://github.com/lobehub/lobe-chat/compare/v0.147.16...v0.147.17)
<sup>Released on **2024-04-16**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor service to a uniform interface.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor service to a uniform interface, closes [#2062](https://github.com/lobehub/lobe-chat/issues/2062) ([86779e2](https://github.com/lobehub/lobe-chat/commit/86779e2))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-16 09:12:39 +00:00
Arvin Xu 86779e2d9a ♻️ refactor: refactor service to a uniform interface (#2062)
* ♻️ refactor: refactor the session service interface

* ♻️ refactor: add file service interface

* ♻️ refactor: add message service interface

* ♻️ refactor: add topic service interface

*  test: add test for agent action
2024-04-16 17:09:14 +08:00
Arvin Xu bfe3c98893 🥅 chore: add sentry (#2048)
* 🥅 chore: add sentry modules

* Update package.json
2024-04-15 19:30:41 +08:00
Arvin Xu dbfa63ff23 🔨 chore: improve next config (#2044) 2024-04-15 10:53:25 +08:00
semantic-release-bot ea51c3a090 🔖 chore(release): v0.147.16 [skip ci]
### [Version&nbsp;0.147.16](https://github.com/lobehub/lobe-chat/compare/v0.147.15...v0.147.16)
<sup>Released on **2024-04-14**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the auth.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the auth, closes [#2043](https://github.com/lobehub/lobe-chat/issues/2043) ([37ecb41](https://github.com/lobehub/lobe-chat/commit/37ecb41))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-14 17:05:23 +00:00
Arvin Xu 37ecb41240 ♻️ refactor: refactor the auth (#2043)
* ♻️ refactor: refactor the auth code

* ♻️ refactor: refactor the auth code

* ♻️ refactor: refactor the auth code

* ♻️ refactor: refactor the auth code

* 🎨 refactor: improve code
2024-04-15 01:01:52 +08:00
semantic-release-bot 0d3749368f 🔖 chore(release): v0.147.15 [skip ci]
### [Version&nbsp;0.147.15](https://github.com/lobehub/lobe-chat/compare/v0.147.14...v0.147.15)
<sup>Released on **2024-04-14**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix tool call error with gpt-4-turbo.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix tool call error with gpt-4-turbo, closes [#2042](https://github.com/lobehub/lobe-chat/issues/2042) ([63d91b8](https://github.com/lobehub/lobe-chat/commit/63d91b8))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-14 16:37:02 +00:00
Arvin Xu 63d91b8ea5 🐛 fix: fix tool call error with gpt-4-turbo (#2042) 2024-04-15 00:33:34 +08:00
semantic-release-bot 3a771df265 🔖 chore(release): v0.147.14 [skip ci]
### [Version&nbsp;0.147.14](https://github.com/lobehub/lobe-chat/compare/v0.147.13...v0.147.14)
<sup>Released on **2024-04-14**</sup>

#### 💄 Styles

- **misc**: Enable `gemini-1.5-pro-latest` model by default.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Enable `gemini-1.5-pro-latest` model by default, closes [#2034](https://github.com/lobehub/lobe-chat/issues/2034) ([e8c65a9](https://github.com/lobehub/lobe-chat/commit/e8c65a9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-14 13:42:09 +00:00
黑云白土 e8c65a986c 💄 style: enable gemini-1.5-pro-latest model by default (#2034) 2024-04-14 21:38:10 +08:00
Arvin Xu 8a9428e463 🎨 chore: improve code (#2039)
* 🎨 chore: rename the service test

* 🎨 chore: improve code
2024-04-14 21:34:18 +08:00
semantic-release-bot a6098589f1 🔖 chore(release): v0.147.13 [skip ci]
### [Version&nbsp;0.147.13](https://github.com/lobehub/lobe-chat/compare/v0.147.12...v0.147.13)
<sup>Released on **2024-04-14**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the service with browser db invoke.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the service with browser db invoke, closes [#2038](https://github.com/lobehub/lobe-chat/issues/2038) ([43a2791](https://github.com/lobehub/lobe-chat/commit/43a2791))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-14 11:50:46 +00:00
Arvin Xu 43a2791b39 ♻️ refactor: refactor the service with browser db invoke (#2038)
* ♻️ refactor: refactor the service with db request

* ♻️ refactor: separate the plugin service to plugin service and tool service
2024-04-14 19:47:32 +08:00
semantic-release-bot 62cb280754 🔖 chore(release): v0.147.12 [skip ci]
### [Version&nbsp;0.147.12](https://github.com/lobehub/lobe-chat/compare/v0.147.11...v0.147.12)
<sup>Released on **2024-04-14**</sup>

#### ♻ Code Refactoring

- **misc**: Move client db to a new folder.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Move client db to a new folder, closes [#2037](https://github.com/lobehub/lobe-chat/issues/2037) ([ebe65bb](https://github.com/lobehub/lobe-chat/commit/ebe65bb))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-14 10:54:59 +00:00
Arvin Xu ebe65bb481 ♻️ refactor: move client db to a new folder (#2037)
* 🚚 refactor: move database to client

* ♻️ refactor: refactor the browser db name
2024-04-14 18:51:43 +08:00
semantic-release-bot c598e4da6f 🔖 chore(release): v0.147.11 [skip ci]
### [Version&nbsp;0.147.11](https://github.com/lobehub/lobe-chat/compare/v0.147.10...v0.147.11)
<sup>Released on **2024-04-14**</sup>

#### 🐛 Bug Fixes

- **misc**: Support drag or copy to upload file by model ability.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Support drag or copy to upload file by model ability, closes [#2016](https://github.com/lobehub/lobe-chat/issues/2016) ([2abe37e](https://github.com/lobehub/lobe-chat/commit/2abe37e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-14 03:54:36 +00:00
Clivia 2abe37ea37 🐛 fix: support drag or copy to upload file by model ability (#2016)
*  feat 根据模型动态选择是否支持拖拽上传文件

*  feat 根据模型动态选择是否支持拖拽上传文件

*  feat 根据模型动态选择是否支持拖拽上传文件(completed)
2024-04-14 11:51:31 +08:00
lobehubbot 2fa067058a 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-14 02:18:59 +00:00
renovate[bot] fbbb833db6 Update dependency @testing-library/react to v15 (#2029) 2024-04-14 10:15:47 +08:00
semantic-release-bot 3078c2ba2e 🔖 chore(release): v0.147.10 [skip ci]
### [Version&nbsp;0.147.10](https://github.com/lobehub/lobe-chat/compare/v0.147.9...v0.147.10)
<sup>Released on **2024-04-13**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-13 03:24:32 +00:00
Arvin Xu bdba18d642 ️ perf: fix performance issue with model list (#2012)
* ️ perf: improve performance

* ️ perf: improve performance

* ️ perf: improve performance
2024-04-13 11:21:21 +08:00
semantic-release-bot 98ad8e0edc 🔖 chore(release): v0.147.9 [skip ci]
### [Version&nbsp;0.147.9](https://github.com/lobehub/lobe-chat/compare/v0.147.8...v0.147.9)
<sup>Released on **2024-04-12**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix custom model list not display correctly.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix custom model list not display correctly, closes [#2009](https://github.com/lobehub/lobe-chat/issues/2009) ([7d0e220](https://github.com/lobehub/lobe-chat/commit/7d0e220))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-12 12:21:49 +00:00
Arvin Xu 7d0e220159 🐛 fix: fix custom model list not display correctly (#2009) 2024-04-12 20:18:40 +08:00
Arvin Xu cca7816486 📝 docs: update docs (#2006)
* 📝 docs: update docs

* 📝 docs: update docs
2024-04-12 17:36:36 +08:00
semantic-release-bot 096ecc392b 🔖 chore(release): v0.147.8 [skip ci]
### [Version&nbsp;0.147.8](https://github.com/lobehub/lobe-chat/compare/v0.147.7...v0.147.8)
<sup>Released on **2024-04-12**</sup>

#### ♻ Code Refactoring

- **misc**: Update README.md.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Update README.md ([44b5a23](https://github.com/lobehub/lobe-chat/commit/44b5a23))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-12 08:20:31 +00:00
Arvin Xu 44b5a23aa2 📘 refactor: Update README.md 2024-04-12 16:17:07 +08:00
Arvin Xu 899b7847b0 🐛 fix: fix azure openai env and support enhanced custom models env (#2001)
* 🐛 fix: fix not enabled azure openai

* 🐛 fix: fix user define model meta not work

* 🐛 fix: use default server enabledModels

* ️ perf: support more powerful env

*  test: improve test

* ️ perf: support Azure Model List

*  test: fix test
2024-04-12 16:01:33 +08:00
semantic-release-bot 4743075416 🔖 chore(release): v0.147.7 [skip ci]
### [Version&nbsp;0.147.7](https://github.com/lobehub/lobe-chat/compare/v0.147.6...v0.147.7)
<sup>Released on **2024-04-12**</sup>

#### 🐛 Bug Fixes

- **misc**: Pin next to `14.1.4` to fix deployment.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Pin next to `14.1.4` to fix deployment, closes [#1998](https://github.com/lobehub/lobe-chat/issues/1998) ([dfa1872](https://github.com/lobehub/lobe-chat/commit/dfa1872))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-12 02:15:39 +00:00
Arvin Xu dfa187223d 🐛 fix: pin next to 14.1.4 to fix deployment (#1998) 2024-04-12 10:12:27 +08:00
semantic-release-bot b7768f9c67 🔖 chore(release): v0.147.6 [skip ci]
### [Version&nbsp;0.147.6](https://github.com/lobehub/lobe-chat/compare/v0.147.5...v0.147.6)
<sup>Released on **2024-04-11**</sup>

#### 💄 Styles

- **misc**: Add GPT-4-turbo and 2024-04-09 Turbo Vision model and mistral new model name.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add GPT-4-turbo and 2024-04-09 Turbo Vision model and mistral new model name, closes [#1984](https://github.com/lobehub/lobe-chat/issues/1984) ([f1795b1](https://github.com/lobehub/lobe-chat/commit/f1795b1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-11 17:00:49 +00:00
Maple Gao f1795b1fe5 🎉 style: add GPT-4-turbo and 2024-04-09 Turbo Vision model and mistral new model name (#1984)
* 🎉 add: GPT-4-turbo and 2024-04-09 Turbo Vision model

* fix typo

* 💄 optmize: mistral Optimized model name change

* 💄 fix: Hide 8x22B by default, this is a local LLM

* 💄 fix: disabled GPT4 Preview version by default

*  test: fix test
2024-04-12 00:57:29 +08:00
Maple Gao eff8e6da6e 📖 docs: fix ollama doc url and better ollama env set, fix authentik doc typo (#1982)
* 💄 fix: authentik doc typo

* 📖 fix: bad ollama Documentation url and better ollama env set.
2024-04-11 23:49:58 +08:00
lobehubbot 9294eb765b 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-11 13:32:27 +00:00
semantic-release-bot 10c48ec3e5 🔖 chore(release): v0.147.5 [skip ci]
### [Version&nbsp;0.147.5](https://github.com/lobehub/lobe-chat/compare/v0.147.4...v0.147.5)
<sup>Released on **2024-04-11**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix only search topics in current session.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix only search topics in current session, closes [#1834](https://github.com/lobehub/lobe-chat/issues/1834) ([9fdcfa4](https://github.com/lobehub/lobe-chat/commit/9fdcfa4))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-11 13:31:32 +00:00
mosade 9fdcfa4d62 🐛 fix: fix only search topics in current session (#1834)
* 🐛 fix: topic list displayed incorrectly after switching sessions following search.

* 🐛 fix: Only perform topic search in current session

*  test: add test for search topic
2024-04-11 21:28:06 +08:00
canisminor1990 e471c32672 📝 docs: Fix docs 2024-04-11 19:31:40 +08:00
semantic-release-bot d911b21bbd 🔖 chore(release): v0.147.4 [skip ci]
### [Version&nbsp;0.147.4](https://github.com/lobehub/lobe-chat/compare/v0.147.3...v0.147.4)
<sup>Released on **2024-04-11**</sup>

#### 🐛 Bug Fixes

- **misc**: Add more builtin OpenRouter models.

#### 💄 Styles

- **misc**: Adjust minimum width value for DraggablePanel component.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Add more builtin OpenRouter models, closes [#1973](https://github.com/lobehub/lobe-chat/issues/1973) ([0000b1a](https://github.com/lobehub/lobe-chat/commit/0000b1a))

#### Styles

* **misc**: Adjust minimum width value for DraggablePanel component, closes [#1901](https://github.com/lobehub/lobe-chat/issues/1901) ([a696d37](https://github.com/lobehub/lobe-chat/commit/a696d37))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-11 10:04:54 +00:00
Lesenelir a696d37791 💄 style: adjust minimum width value for DraggablePanel component (#1901) 2024-04-11 18:01:43 +08:00
Maple Gao 0000b1ad5b 💄 fix: add more builtin OpenRouter models (#1973)
* 🔧 fix: Google LLM max input token correction

*  add: new free OpenRouter models

* fix google tokens

* 🔧 add: more OpenRouter Models
2024-04-11 18:00:44 +08:00
Maple Gao 576fd61b86 📝 docs: fix inner URL error due to docs update (#1980) 2024-04-11 17:58:13 +08:00
semantic-release-bot dc315cb7bf 🔖 chore(release): v0.147.3 [skip ci]
### [Version&nbsp;0.147.3](https://github.com/lobehub/lobe-chat/compare/v0.147.2...v0.147.3)
<sup>Released on **2024-04-11**</sup>

#### 💄 Styles

- **misc**: Support Google Proxy URL.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Support Google Proxy URL, closes [#1979](https://github.com/lobehub/lobe-chat/issues/1979) ([fbf2c24](https://github.com/lobehub/lobe-chat/commit/fbf2c24))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-11 09:47:51 +00:00
Arvin Xu fbf2c24ad5 💄 style: support Google Proxy URL (#1979)
* 📝 docs: update docs

* 🐛 fix: support GOOGLE_PROXY_URL
2024-04-11 17:44:42 +08:00
lobehubbot 6673d7344e 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-11 06:03:08 +00:00
Maple Gao 722921d10e 📖 docs: Add custom models new ENV set and ollama non-local configurations (#1969)
* 📖 docs: Add custom models new ENV set and ollama non-local configurations.

* 📖 docs: fix more CUSTOM_Models in docs

* Update .env.example

* Update azure-openai.mdx

* Update azure-openai.zh-CN.mdx
2024-04-11 14:00:01 +08:00
semantic-release-bot c80b3f4c39 🔖 chore(release): v0.147.2 [skip ci]
### [Version&nbsp;0.147.2](https://github.com/lobehub/lobe-chat/compare/v0.147.1...v0.147.2)
<sup>Released on **2024-04-11**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix custom model not display correctly.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix custom model not display correctly, closes [#1972](https://github.com/lobehub/lobe-chat/issues/1972) ([5d7cae9](https://github.com/lobehub/lobe-chat/commit/5d7cae9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-11 04:55:01 +00:00
Arvin Xu 5d7cae9844 🐛 fix: fix custom model not display correctly (#1972) 2024-04-11 12:51:49 +08:00
semantic-release-bot 0b3fffb8e7 🔖 chore(release): v0.147.1 [skip ci]
### [Version&nbsp;0.147.1](https://github.com/lobehub/lobe-chat/compare/v0.147.0...v0.147.1)
<sup>Released on **2024-04-11**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix normalizeLocale with first matching locale.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix normalizeLocale with first matching locale, closes [#1767](https://github.com/lobehub/lobe-chat/issues/1767) ([182ff23](https://github.com/lobehub/lobe-chat/commit/182ff23))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-11 03:21:39 +00:00
Guillaume Dorce 182ff2324f 🐛 fix: fix normalizeLocale with first matching locale (#1767)
* fix: return first matching locale in normalizeLocale

* Update resources.ts

* Create resources.test.ts

* Update locale.ts

* Update locale.ts

* Update resources.ts

* Update resources.ts

* Update resources.test.ts
2024-04-11 11:18:31 +08:00
lobehubbot b8c0b51b0d 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-11 03:11:37 +00:00
CanisMinor 30dd95a6a0 📝 docs: Fix docs typo 2024-04-11 03:08:25 +00:00
lobehubbot 48f2e52e69 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-10 20:21:35 +00:00
semantic-release-bot fe487427fa 🔖 chore(release): v0.147.0 [skip ci]
## [Version&nbsp;0.147.0](https://github.com/lobehub/lobe-chat/compare/v0.146.2...v0.147.0)
<sup>Released on **2024-04-10**</sup>

#### ♻ Code Refactoring

- **misc**: Add db migration, add migrations from v3 to v4, clean openai azure code, refactor agent runtime with openai compatible factory, refactor api key form locale, refactor openAI to openai and azure, refactor the hidden to enabled, refactor the key, refactor the model config selector, refactor the route auth as a middleware, refactor the server config to migrate model provider env, refactor the server config to migrate model provider env, rename the key to enabledModels.

####  Features

- **misc**: Refactor to support azure openai provider, support  close openai, support display model list, support model config modal, support model list with model providers, support open router auto model list, support openai model fetcher, support update model config, support user config model.

#### 🐛 Bug Fixes

- **misc**: Fix db migration, fix db migration.

#### 💄 Styles

- **misc**: Fix i18n of model list fetcher, improve detail design, improve logo style, update locale.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Add db migration ([6ceb818](https://github.com/lobehub/lobe-chat/commit/6ceb818))
* **misc**: Add migrations from v3 to v4 ([199ded2](https://github.com/lobehub/lobe-chat/commit/199ded2))
* **misc**: Clean openai azure code ([be4bcca](https://github.com/lobehub/lobe-chat/commit/be4bcca))
* **misc**: Refactor agent runtime with openai compatible factory ([89adf9d](https://github.com/lobehub/lobe-chat/commit/89adf9d))
* **misc**: Refactor api key form locale ([a069169](https://github.com/lobehub/lobe-chat/commit/a069169))
* **misc**: Refactor openAI to openai and azure ([2190a95](https://github.com/lobehub/lobe-chat/commit/2190a95))
* **misc**: Refactor the hidden to enabled ([78a1aac](https://github.com/lobehub/lobe-chat/commit/78a1aac))
* **misc**: Refactor the key ([d5c82f6](https://github.com/lobehub/lobe-chat/commit/d5c82f6))
* **misc**: Refactor the model config selector ([d865ca1](https://github.com/lobehub/lobe-chat/commit/d865ca1))
* **misc**: Refactor the route auth as a middleware ([ef5ee2a](https://github.com/lobehub/lobe-chat/commit/ef5ee2a))
* **misc**: Refactor the server config to migrate model provider env ([e4f110e](https://github.com/lobehub/lobe-chat/commit/e4f110e))
* **misc**: Refactor the server config to migrate model provider env ([c398063](https://github.com/lobehub/lobe-chat/commit/c398063))
* **misc**: Rename the key to enabledModels ([ebfa0aa](https://github.com/lobehub/lobe-chat/commit/ebfa0aa))

#### What's improved

* **misc**: Refactor to support azure openai provider ([d737afe](https://github.com/lobehub/lobe-chat/commit/d737afe))
* **misc**: Support  close openai ([1ff1aef](https://github.com/lobehub/lobe-chat/commit/1ff1aef))
* **misc**: Support display model list ([e59635f](https://github.com/lobehub/lobe-chat/commit/e59635f))
* **misc**: Support model config modal ([62d6bb7](https://github.com/lobehub/lobe-chat/commit/62d6bb7))
* **misc**: Support model list with model providers, closes [#1916](https://github.com/lobehub/lobe-chat/issues/1916) ([0895dd2](https://github.com/lobehub/lobe-chat/commit/0895dd2))
* **misc**: Support open router auto model list ([1ba90d3](https://github.com/lobehub/lobe-chat/commit/1ba90d3))
* **misc**: Support openai model fetcher ([56032e6](https://github.com/lobehub/lobe-chat/commit/56032e6))
* **misc**: Support update model config ([e8ed847](https://github.com/lobehub/lobe-chat/commit/e8ed847))
* **misc**: Support user config model ([72fd873](https://github.com/lobehub/lobe-chat/commit/72fd873))

#### What's fixed

* **misc**: Fix db migration ([4e75074](https://github.com/lobehub/lobe-chat/commit/4e75074))
* **misc**: Fix db migration ([571b6dd](https://github.com/lobehub/lobe-chat/commit/571b6dd))

#### Styles

* **misc**: Fix i18n of model list fetcher ([67ed8c2](https://github.com/lobehub/lobe-chat/commit/67ed8c2))
* **misc**: Improve detail design ([adcce07](https://github.com/lobehub/lobe-chat/commit/adcce07))
* **misc**: Improve logo style ([c5826ce](https://github.com/lobehub/lobe-chat/commit/c5826ce))
* **misc**: Update locale ([021bf91](https://github.com/lobehub/lobe-chat/commit/021bf91))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-10 20:19:25 +00:00
Arvin Xu 0895dd2110 feat: support model list with model providers (#1916)
 feat: support display model list
2024-04-11 04:15:44 +08:00
arvinxx 67ed8c246e 🌐 style: fix i18n of model list fetcher 2024-04-11 04:07:02 +08:00
arvinxx adcce07397 💄 style: improve detail design 2024-04-11 03:56:28 +08:00
arvinxx 4a305e9960 test: add more test for migration 2024-04-11 00:57:37 +08:00
arvinxx 021bf9189a 🌐 style: update locale 2024-04-11 00:36:05 +08:00
arvinxx a069169de9 ♻️ refactor: refactor api key form locale 2024-04-11 00:36:05 +08:00
arvinxx 02c4a759b0 🎨 chore: improve code 2024-04-11 00:36:05 +08:00
Arvin Xu 613a557396 🔧 ci: update workflow 2024-04-11 00:36:05 +08:00
Arvin Xu 4a34964359 🎨 chore: improve code 2024-04-11 00:36:05 +08:00
Arvin Xu 338fa0013e 🔧 chore: upgrade bun version 2024-04-11 00:36:05 +08:00
Arvin Xu 4e75074160 🗃️ fix: fix db migration 2024-04-11 00:36:05 +08:00
Arvin Xu ecd1d259b3 test: add test 2024-04-11 00:36:05 +08:00
Arvin Xu 32cd78f221 test: fix OpenRouter models test 2024-04-11 00:36:05 +08:00
Arvin Xu 9ebcc1ec7b 📸 test: update snapshot 2024-04-11 00:36:05 +08:00
Arvin Xu c5826cef30 💄 style: improve logo style 2024-04-11 00:36:05 +08:00
Arvin Xu 1ba90d389a feat: support open router auto model list 2024-04-11 00:36:05 +08:00
Arvin Xu 158301114c 🚨 chore: fix circular 2024-04-11 00:36:05 +08:00
Arvin Xu 571b6dd2aa 🐛 fix: fix db migration 2024-04-11 00:36:05 +08:00
arvinxx 56032e625b feat: support openai model fetcher 2024-04-11 00:36:05 +08:00
arvinxx ef5ee2ae1a 🎨 refactor: refactor the route auth as a middleware 2024-04-11 00:36:05 +08:00
arvinxx be4bccadb6 🔥 refactor: clean openai azure code 2024-04-11 00:36:05 +08:00
arvinxx 6ceb818106 🗃️ refactor: add db migration 2024-04-11 00:36:05 +08:00
arvinxx d737afe873 feat: refactor to support azure openai provider 2024-04-11 00:36:05 +08:00
arvinxx e4f110e19e ♻️ refactor: refactor the server config to migrate model provider env 2024-04-11 00:36:05 +08:00
Arvin Xu 1ff1aefe78 feat: support close openai 2024-04-11 00:36:05 +08:00
Arvin Xu c398063798 ♻️ refactor: refactor the server config to migrate model provider env 2024-04-11 00:36:05 +08:00
Arvin Xu 199ded24f1 🗃️ refactor: add migrations from v3 to v4 2024-04-11 00:36:05 +08:00
Arvin Xu f9fc373ac6 test: add test 2024-04-11 00:36:05 +08:00
arvinxx 2190a9585b ♻️ refactor: refactor openAI to openai and azure 2024-04-11 00:36:05 +08:00
arvinxx 89adf9db5b ♻️ refactor: refactor agent runtime with openai compatible factory 2024-04-11 00:36:05 +08:00
arvinxx 78a1aac323 ♻️ refactor: refactor the hidden to enabled 2024-04-11 00:36:05 +08:00
Arvin Xu 6dc9884cdd test: add test for modelConfig selector 2024-04-11 00:36:05 +08:00
Arvin Xu dc2ac7ce90 test: add test for modelProvider selector 2024-04-11 00:36:05 +08:00
Arvin Xu d5c82f68cf ♻️ refactor: refactor the key 2024-04-11 00:36:04 +08:00
Arvin Xu e8ed847203 feat: support update model config 2024-04-11 00:36:04 +08:00
arvinxx 62d6bb72d9 feat: support model config modal 2024-04-11 00:36:04 +08:00
arvinxx ebfa0aa03c ♻️ refactor: rename the key to enabledModels 2024-04-11 00:36:04 +08:00
arvinxx 72fd873a76 feat: support user config model 2024-04-11 00:36:04 +08:00
arvinxx d865ca120b ♻️ refactor: refactor the model config selector 2024-04-11 00:36:04 +08:00
arvinxx e59635fc07 feat: support display model list 2024-04-11 00:36:04 +08:00
lobehubbot cef3f8cdec 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-10 16:31:54 +00:00
CanisMinor e97f62f65e 📝 docs: Update docs to fit next RSC (#1939)
* 📝 docs: Update docs to fit next rsc

* 📝 docs: Replace links

* chore: fix i18n config

* 📝 docs: update seo
2024-04-11 00:28:48 +08:00
semantic-release-bot 975d1255f7 🔖 chore(release): v0.146.2 [skip ci]
### [Version&nbsp;0.146.2](https://github.com/lobehub/lobe-chat/compare/v0.146.1...v0.146.2)
<sup>Released on **2024-04-10**</sup>

#### 🐛 Bug Fixes

- **misc**: Pin `ai@3.0.19` to fix error with chat stream output.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Pin `ai@3.0.19` to fix error with chat stream output, closes [#1946](https://github.com/lobehub/lobe-chat/issues/1946) ([07d4419](https://github.com/lobehub/lobe-chat/commit/07d4419))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-10 03:26:17 +00:00
Arvin Xu 07d4419a84 🐛 fix: pin ai@3.0.19 to fix error with chat stream output (#1946) 2024-04-10 11:22:58 +08:00
lobehubbot 8bf9db93ad 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-10 02:23:13 +00:00
semantic-release-bot df9886f3c3 🔖 chore(release): v0.146.1 [skip ci]
### [Version&nbsp;0.146.1](https://github.com/lobehub/lobe-chat/compare/v0.146.0...v0.146.1)
<sup>Released on **2024-04-10**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-10 02:22:26 +00:00
BrandonStudio a6eab05945 ️ perf: switch Anthropic check model to Haiku (#1943) 2024-04-10 10:19:16 +08:00
semantic-release-bot 1025b854e5 🔖 chore(release): v0.146.0 [skip ci]
## [Version&nbsp;0.146.0](https://github.com/lobehub/lobe-chat/compare/v0.145.13...v0.146.0)
<sup>Released on **2024-04-08**</sup>

####  Features

- **misc**: Add support for ZITADEL SSO provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add support for ZITADEL SSO provider, closes [#1904](https://github.com/lobehub/lobe-chat/issues/1904) ([44152f7](https://github.com/lobehub/lobe-chat/commit/44152f7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-08 16:23:39 +00:00
Yang Hanlin 44152f7b0a feat: add support for ZITADEL SSO provider (#1904)
*  feat: add ZITADEL SSO provider

* 📝 docs: add documentation for ZITADEL SSO provider
2024-04-09 00:20:21 +08:00
lobehubbot a3f6577b6b 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-07 02:14:29 +00:00
semantic-release-bot 3de590f91d 🔖 chore(release): v0.145.13 [skip ci]
### [Version&nbsp;0.145.13](https://github.com/lobehub/lobe-chat/compare/v0.145.12...v0.145.13)
<sup>Released on **2024-04-07**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the model settings for more clean code.

#### 🐛 Bug Fixes

- **misc**: Fix normalize russian locale.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the model settings for more clean code, closes [#1906](https://github.com/lobehub/lobe-chat/issues/1906) ([db5d3ac](https://github.com/lobehub/lobe-chat/commit/db5d3ac))

#### What's fixed

* **misc**: Fix normalize russian locale, closes [#1903](https://github.com/lobehub/lobe-chat/issues/1903) ([e86b596](https://github.com/lobehub/lobe-chat/commit/e86b596))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-07 02:13:49 +00:00
Arvin Xu db5d3ac382 ♻️ refactor: refactor the model settings for more clean code (#1906)
* ♻️ refactor: refactor the model settings for more clean code

* 🌐 chore: update i18n

* 🌐 chore: update i18n

* 🌐 chore: update i18n
2024-04-07 10:10:40 +08:00
MillerTGr e86b596d82 🐛 fix: fix normalize russian locale (#1903) 2024-04-07 10:10:24 +08:00
semantic-release-bot a930fcb87e 🔖 chore(release): v0.145.12 [skip ci]
### [Version&nbsp;0.145.12](https://github.com/lobehub/lobe-chat/compare/v0.145.11...v0.145.12)
<sup>Released on **2024-04-04**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix typo of azure-id sso provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix typo of azure-id sso provider, closes [#1898](https://github.com/lobehub/lobe-chat/issues/1898) ([6925b25](https://github.com/lobehub/lobe-chat/commit/6925b25))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-04 12:19:26 +00:00
EINDEX 6925b2543c 🐛 fix: fix typo of azure-id sso provider (#1898) 2024-04-04 20:16:28 +08:00
semantic-release-bot edb10809c8 🔖 chore(release): v0.145.11 [skip ci]
### [Version&nbsp;0.145.11](https://github.com/lobehub/lobe-chat/compare/v0.145.10...v0.145.11)
<sup>Released on **2024-04-03**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix page crash when using browser as the stt engine.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix page crash when using browser as the stt engine, closes [#1884](https://github.com/lobehub/lobe-chat/issues/1884) ([278820a](https://github.com/lobehub/lobe-chat/commit/278820a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-03 15:55:03 +00:00
cy948 278820a28f 🐛 fix: fix page crash when using browser as the stt engine (#1884)
* 🐛 fix: stt react hooks error

* 🐛 fix: warn active state in microphone button

* ♻️ refactor: move hooks

* ♻️ refactor: delete `export`

---------

Co-authored-by: cy948 <cy948@qq.com>
2024-04-03 23:51:48 +08:00
lobehubbot be41f71d6e 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-03 03:04:57 +00:00
Arvin Xu 13300485f2 🚨 chore: fix vercel build failure (#1875) 2024-04-03 11:02:01 +08:00
semantic-release-bot 333f7fd995 🔖 chore(release): v0.145.10 [skip ci]
### [Version&nbsp;0.145.10](https://github.com/lobehub/lobe-chat/compare/v0.145.9...v0.145.10)
<sup>Released on **2024-04-02**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-02 17:17:01 +00:00
Arvin Xu 182c8f4df1 ️ perf: improving plugin store open and close speed (#1870)
* ️ perf: improving plugin store open speed

* 💄 style: improve scrollbar style
2024-04-03 01:13:54 +08:00
semantic-release-bot 7228e2baae 🔖 chore(release): v0.145.9 [skip ci]
### [Version&nbsp;0.145.9](https://github.com/lobehub/lobe-chat/compare/v0.145.8...v0.145.9)
<sup>Released on **2024-04-02**</sup>

#### 💄 Styles

- **misc**: Improve scrollbar style.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve scrollbar style, closes [#1869](https://github.com/lobehub/lobe-chat/issues/1869) ([33d857f](https://github.com/lobehub/lobe-chat/commit/33d857f))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-02 16:49:45 +00:00
Arvin Xu 33d857fb7e 💄 style: improve scrollbar style (#1869)
* 💄 style: improve scrollbar styling

* 💄 style: fix scrollbar style
2024-04-03 00:46:11 +08:00
小云丨Arale 164fd056b8 📝 docs: fix Auth0 document image (#1866) 2024-04-02 22:56:15 +08:00
semantic-release-bot 857306732e 🔖 chore(release): v0.145.8 [skip ci]
### [Version&nbsp;0.145.8](https://github.com/lobehub/lobe-chat/compare/v0.145.7...v0.145.8)
<sup>Released on **2024-04-02**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor SSO providers.

#### 🐛 Bug Fixes

- **misc**: Fix plugins dropdown menu overflow.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor SSO providers, closes [#1865](https://github.com/lobehub/lobe-chat/issues/1865) ([290d33b](https://github.com/lobehub/lobe-chat/commit/290d33b))

#### What's fixed

* **misc**: Fix plugins dropdown menu overflow, closes [#1855](https://github.com/lobehub/lobe-chat/issues/1855) ([00e9068](https://github.com/lobehub/lobe-chat/commit/00e9068))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-02 13:02:38 +00:00
ElonWu 00e9068630 🐛 fix: fix plugins dropdown menu overflow (#1855) 2024-04-02 20:59:14 +08:00
Arvin Xu 290d33b34d ♻️ refactor: refactor SSO providers (#1865)
* ♻️ refactor: refactor providers

* 📝 docs: improve docs
2024-04-02 20:57:01 +08:00
semantic-release-bot 5b1babaea8 🔖 chore(release): v0.145.7 [skip ci]
### [Version&nbsp;0.145.7](https://github.com/lobehub/lobe-chat/compare/v0.145.6...v0.145.7)
<sup>Released on **2024-04-02**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix DraggablePanel bar interfere with the operation of the scrollbar.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix DraggablePanel bar interfere with the operation of the scrollbar, closes [#1775](https://github.com/lobehub/lobe-chat/issues/1775) ([4b7b243](https://github.com/lobehub/lobe-chat/commit/4b7b243))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-02 08:13:07 +00:00
lee88688 4b7b243fa1 🐛 fix: fix DraggablePanel bar interfere with the operation of the scrollbar (#1775)
* fix: The sidebar's DraggablePanel bar should not interfere with the operation of the scrollbar below.

* Update index.tsx
2024-04-02 16:09:55 +08:00
半颗白菜 caf378bb73 feat: support GitHub OAuth (#1850) 2024-04-02 14:35:21 +08:00
lobehubbot 8217e25289 📝 docs(bot): Auto sync agents & plugin to readme 2024-04-02 05:57:03 +00:00
semantic-release-bot 7e5bc5b0bf 🔖 chore(release): v0.145.6 [skip ci]
### [Version&nbsp;0.145.6](https://github.com/lobehub/lobe-chat/compare/v0.145.5...v0.145.6)
<sup>Released on **2024-04-02**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-04-02 05:56:29 +00:00
Arvin Xu 6275a28a75 ️ perf: improving loading state (#1838)
* ️ perf: improving loading state

* ️ perf: improving loading state on mobile

* ️ perf: improving loading state for settings
2024-04-02 13:53:30 +08:00
semantic-release-bot e707943bfe 🔖 chore(release): v0.145.5 [skip ci]
### [Version&nbsp;0.145.5](https://github.com/lobehub/lobe-chat/compare/v0.145.4...v0.145.5)
<sup>Released on **2024-03-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Add qwen api models patch in ollama.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Add qwen api models patch in ollama, closes [#1630](https://github.com/lobehub/lobe-chat/issues/1630) ([a1e754c](https://github.com/lobehub/lobe-chat/commit/a1e754c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-30 09:39:53 +00:00
Maple Gao a1e754cae3 🔨 fix: add qwen api models patch in ollama (#1630)
*  feat: Temporary qwen model name patch

* 🐛 fix: additional enter
2024-03-30 17:36:54 +08:00
semantic-release-bot 5ad9d18061 🔖 chore(release): v0.145.4 [skip ci]
### [Version&nbsp;0.145.4](https://github.com/lobehub/lobe-chat/compare/v0.145.3...v0.145.4)
<sup>Released on **2024-03-29**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix plugin install loading state error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix plugin install loading state error, closes [#1815](https://github.com/lobehub/lobe-chat/issues/1815) ([2412a73](https://github.com/lobehub/lobe-chat/commit/2412a73))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-29 16:16:48 +00:00
Arvin Xu 2412a736e6 🐛 fix: fix plugin install loading state error (#1815)
* 🐛 fix: fix antd locale

* 🐛 fix: fix plugin not finish install

*  test: fix test
2024-03-30 00:13:42 +08:00
semantic-release-bot 830d85958c 🔖 chore(release): v0.145.3 [skip ci]
### [Version&nbsp;0.145.3](https://github.com/lobehub/lobe-chat/compare/v0.145.2...v0.145.3)
<sup>Released on **2024-03-29**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix antd locale.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix antd locale, closes [#1814](https://github.com/lobehub/lobe-chat/issues/1814) ([e7fc148](https://github.com/lobehub/lobe-chat/commit/e7fc148))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-29 15:34:45 +00:00
Arvin Xu e7fc148456 🐛 fix: fix antd locale (#1814) 2024-03-29 23:31:26 +08:00
semantic-release-bot 712658a2f1 🔖 chore(release): v0.145.2 [skip ci]
### [Version&nbsp;0.145.2](https://github.com/lobehub/lobe-chat/compare/v0.145.1...v0.145.2)
<sup>Released on **2024-03-29**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix google ultra model id.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix google ultra model id, closes [#1813](https://github.com/lobehub/lobe-chat/issues/1813) ([c96ba12](https://github.com/lobehub/lobe-chat/commit/c96ba12))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-29 15:05:13 +00:00
Arvin Xu c96ba12061 🐛 fix: fix google ultra model id (#1813) 2024-03-29 23:01:37 +08:00
semantic-release-bot 6d7991f42b 🔖 chore(release): v0.145.1 [skip ci]
### [Version&nbsp;0.145.1](https://github.com/lobehub/lobe-chat/compare/v0.145.0...v0.145.1)
<sup>Released on **2024-03-29**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix Google Gemini pro 1.5 and system role not take effect.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix Google Gemini pro 1.5 and system role not take effect, closes [#1801](https://github.com/lobehub/lobe-chat/issues/1801) ([0a3e3f7](https://github.com/lobehub/lobe-chat/commit/0a3e3f7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-29 13:50:27 +00:00
Arvin Xu 0a3e3f7ba2 🐛 fix: fix Google Gemini pro 1.5 and system role not take effect (#1801)
* 🐛 fix: fix google gemini pro 1.5

* Update index.ts

* 1.5 support vision

* Update index.ts

* Update index.ts

* 🐛 fix: improve google model

* 🐛 fix: 修正 google 对话没有配对的问题

* 🐛 fix: 修正 vision 判断

* 🐛 fix: improve model card and region

* 🐛 fix: fix vision

* hide ultra model
2024-03-29 21:47:19 +08:00
semantic-release-bot 11013a71a3 🔖 chore(release): v0.145.0 [skip ci]
## [Version&nbsp;0.145.0](https://github.com/lobehub/lobe-chat/compare/v0.144.1...v0.145.0)
<sup>Released on **2024-03-29**</sup>

####  Features

- **misc**: Support TogetherAI as new model provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support TogetherAI as new model provider, closes [#1709](https://github.com/lobehub/lobe-chat/issues/1709) ([d6921ef](https://github.com/lobehub/lobe-chat/commit/d6921ef))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-29 09:03:46 +00:00
Tung Pham d6921efc4a feat: Support TogetherAI as new model provider (#1709)
* Support TogetherAI as new model provider

* Setting>LLM>TogetherAI temporary use text only, waiting for new icon for TogetherAI

* Add TOGETHERAI_API_KEY env into Dockerfile and update env docs

* Clean up debug log

* Avoid conflict CI test: model google/gemma-7b-it with openrouter

* Add test case for agent runtime TogetherAI
2024-03-29 17:00:40 +08:00
semantic-release-bot c15986e116 🔖 chore(release): v0.144.1 [skip ci]
### [Version&nbsp;0.144.1](https://github.com/lobehub/lobe-chat/compare/v0.144.0...v0.144.1)
<sup>Released on **2024-03-29**</sup>

#### 🐛 Bug Fixes

- **ollama**: Suppport vision for LLaVA models.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **ollama**: Suppport vision for LLaVA models, closes [#1791](https://github.com/lobehub/lobe-chat/issues/1791) ([e2d3de6](https://github.com/lobehub/lobe-chat/commit/e2d3de6))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-29 06:27:12 +00:00
ElonWu e2d3de6116 🐛 fix(ollama): suppport vision for LLaVA models (#1791)
Co-authored-by: elonwu <elonwu@apifox.cn>
2024-03-29 14:24:15 +08:00
semantic-release-bot 3fbafca692 🔖 chore(release): v0.144.0 [skip ci]
## [Version&nbsp;0.144.0](https://github.com/lobehub/lobe-chat/compare/v0.143.0...v0.144.0)
<sup>Released on **2024-03-29**</sup>

####  Features

- **misc**: Support authentik as sso.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support authentik as sso, closes [#1650](https://github.com/lobehub/lobe-chat/issues/1650) ([181dfa5](https://github.com/lobehub/lobe-chat/commit/181dfa5))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-29 02:08:26 +00:00
RealTong 181dfa5b66 feat: support authentik as sso (#1650)
*  feat: support authentik as sso

* 📝 docs: sso docs for Authentik
2024-03-29 10:05:19 +08:00
semantic-release-bot 78c7a07787 🔖 chore(release): v0.143.0 [skip ci]
## [Version&nbsp;0.143.0](https://github.com/lobehub/lobe-chat/compare/v0.142.9...v0.143.0)
<sup>Released on **2024-03-28**</sup>

####  Features

- **misc**: Add Bulgarian translation.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add Bulgarian translation, closes [#1732](https://github.com/lobehub/lobe-chat/issues/1732) ([e181dd1](https://github.com/lobehub/lobe-chat/commit/e181dd1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-28 17:58:45 +00:00
Plamen Vatev e181dd163f feat: add Bulgarian translation (#1732)
* added Bulgarian translation

* add bg_BG (Bulgarian) translation

* add bg_BG

* Update resources.ts

* Update resources.ts

* 🌐 chore: add bg-BG common
2024-03-29 01:55:45 +08:00
semantic-release-bot 1ba6e10670 🔖 chore(release): v0.142.9 [skip ci]
### [Version&nbsp;0.142.9](https://github.com/lobehub/lobe-chat/compare/v0.142.8...v0.142.9)
<sup>Released on **2024-03-28**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix Add agent and Converse button not jump.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix Add agent and Converse button not jump, closes [#1785](https://github.com/lobehub/lobe-chat/issues/1785) ([a52799c](https://github.com/lobehub/lobe-chat/commit/a52799c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-28 16:33:18 +00:00
rogepi a52799c422 🐛 fix: fix Add agent and Converse button not jump (#1785)
* fix: AgentDetail Button functions

* fix:  use SESSION_CHAT_URL
2024-03-29 00:30:03 +08:00
lobehubbot 44b20b7799 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-28 11:48:35 +00:00
semantic-release-bot 97c7352f32 🔖 chore(release): v0.142.8 [skip ci]
### [Version&nbsp;0.142.8](https://github.com/lobehub/lobe-chat/compare/v0.142.7...v0.142.8)
<sup>Released on **2024-03-28**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix gemini 1.5 pro model id to support gemini new models.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix gemini 1.5 pro model id to support gemini new models, closes [#1776](https://github.com/lobehub/lobe-chat/issues/1776) ([591dcb3](https://github.com/lobehub/lobe-chat/commit/591dcb3))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-28 11:47:50 +00:00
PedroZ 591dcb3cb5 🐛 fix: fix gemini 1.5 pro model id to support gemini new models (#1776) 2024-03-28 19:44:51 +08:00
Arvin Xu f0a3cbad48 📝 docs: add railway deployment docs (#1755)
* 📝 docs: add railway deployment docs

* Update model-provider.mdx

* Update model-provider.mdx
2024-03-27 15:04:06 +08:00
semantic-release-bot b36ac0d229 🔖 chore(release): v0.142.7 [skip ci]
### [Version&nbsp;0.142.7](https://github.com/lobehub/lobe-chat/compare/v0.142.6...v0.142.7)
<sup>Released on **2024-03-27**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix the missing German locale.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix the missing German locale, closes [#1753](https://github.com/lobehub/lobe-chat/issues/1753) ([a452612](https://github.com/lobehub/lobe-chat/commit/a452612))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-27 06:49:04 +00:00
Philipp Hochmann a452612f02 🐛 fix: fix the missing German locale (#1753) 2024-03-27 14:46:00 +08:00
HansKing98 39a131c00e 📝 docs: Update ZEROONE_API_KEY in .env.example (#1754)
01.AI Service 
change 'ZEROONEAI_API_KEY' to 'ZEROONE_API_KEY'
2024-03-27 14:43:46 +08:00
lobehubbot bc24039945 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-26 13:56:00 +00:00
semantic-release-bot 1474c95098 🔖 chore(release): v0.142.6 [skip ci]
### [Version&nbsp;0.142.6](https://github.com/lobehub/lobe-chat/compare/v0.142.5...v0.142.6)
<sup>Released on **2024-03-26**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix normalize german locale.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix normalize german locale, closes [#1750](https://github.com/lobehub/lobe-chat/issues/1750) ([69fcc78](https://github.com/lobehub/lobe-chat/commit/69fcc78))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-26 13:55:20 +00:00
Arvin Xu f64a885765 ️ perf: improve performance of image loading (#1746)
* ️ perf: improve performance of image load

* ♻️ refactor: refactor the market search bar for mobile

* ♻️ refactor: refactor the chat search bar for mobile
2024-03-26 21:52:10 +08:00
Philipp Hochmann 69fcc78aaa 🐛 fix: fix normalize german locale (#1750) 2024-03-26 21:51:58 +08:00
semantic-release-bot cc4d0b095b 🔖 chore(release): v0.142.5 [skip ci]
### [Version&nbsp;0.142.5](https://github.com/lobehub/lobe-chat/compare/v0.142.4...v0.142.5)
<sup>Released on **2024-03-26**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix mobile click, fix mobile click issue.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix mobile click ([3775b28](https://github.com/lobehub/lobe-chat/commit/3775b28))
* **misc**: Fix mobile click issue, closes [#1744](https://github.com/lobehub/lobe-chat/issues/1744) ([a6b1234](https://github.com/lobehub/lobe-chat/commit/a6b1234))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-26 09:59:13 +00:00
Arvin Xu a6b12345dd 🐛 fix: fix mobile click issue (#1744)
* 🐛 fix: fix mobile click

* 💄 style: improve settings scroll style
2024-03-26 17:56:06 +08:00
Arvin Xu f0ec54b340 Revert "🐛 fix: fix mobile click"
This reverts commit 3775b28a3c.
2024-03-26 08:34:27 +00:00
Arvin Xu 3775b28a3c 🐛 fix: fix mobile click 2024-03-26 08:33:58 +00:00
semantic-release-bot e4af666944 🔖 chore(release): v0.142.4 [skip ci]
### [Version&nbsp;0.142.4](https://github.com/lobehub/lobe-chat/compare/v0.142.3...v0.142.4)
<sup>Released on **2024-03-26**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-26 08:26:00 +00:00
Arvin Xu 5f50586043 ️ perf: refactor layouts implement to improve performance (#1736) 2024-03-26 16:22:42 +08:00
semantic-release-bot df0723539d 🔖 chore(release): v0.142.3 [skip ci]
### [Version&nbsp;0.142.3](https://github.com/lobehub/lobe-chat/compare/v0.142.2...v0.142.3)
<sup>Released on **2024-03-26**</sup>

#### 🐛 Bug Fixes

- **misc**: Pin `next-auth` temporary to fix build error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Pin `next-auth` temporary to fix build error, closes [#1739](https://github.com/lobehub/lobe-chat/issues/1739) ([e9ece9f](https://github.com/lobehub/lobe-chat/commit/e9ece9f))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-26 02:07:38 +00:00
Arvin Xu e9ece9fcfe 🐛 fix: pin next-auth temporary to fix build error (#1739) 2024-03-26 10:04:29 +08:00
旋律旋律你在干什么 388d3441df docs: fix typo (#1737) 2024-03-26 09:15:16 +08:00
semantic-release-bot ac72a34122 🔖 chore(release): v0.142.2 [skip ci]
### [Version&nbsp;0.142.2](https://github.com/lobehub/lobe-chat/compare/v0.142.1...v0.142.2)
<sup>Released on **2024-03-25**</sup>

#### 🐛 Bug Fixes

- **misc**: Support openrouter custom models env.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Support openrouter custom models env, closes [#1647](https://github.com/lobehub/lobe-chat/issues/1647) ([78baa16](https://github.com/lobehub/lobe-chat/commit/78baa16))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-25 14:37:09 +00:00
Linghui Gong 78baa16457 🐛 fix: support openrouter custom models env (#1647)
*  feat: add openrouter custom models env

*  add OPENROUTER_CUSTOM_MODELS env var test case
2024-03-25 22:34:06 +08:00
semantic-release-bot 601d6cdf3c 🔖 chore(release): v0.142.1 [skip ci]
### [Version&nbsp;0.142.1](https://github.com/lobehub/lobe-chat/compare/v0.142.0...v0.142.1)
<sup>Released on **2024-03-25**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-25 14:15:43 +00:00
Arvin Xu a53fa9aff1 ️ perf: improve layout performance and fix language switch (#1719)
* ️ perf: improve perf

* ️ perf: improve perf

* ♻️ refactor: refactor the layout provider

*  test: fix test

* 🎨 chore: improve code
2024-03-25 22:12:40 +08:00
semantic-release-bot 502750d44a 🔖 chore(release): v0.142.0 [skip ci]
## [Version&nbsp;0.142.0](https://github.com/lobehub/lobe-chat/compare/v0.141.2...v0.142.0)
<sup>Released on **2024-03-25**</sup>

####  Features

- **misc**: Support 01.AI as a new provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support 01.AI as a new provider, closes [#1627](https://github.com/lobehub/lobe-chat/issues/1627) ([08342fd](https://github.com/lobehub/lobe-chat/commit/08342fd))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-25 11:59:35 +00:00
Maple Gao 08342fd5f1 feat: support 01.AI as a new provider (#1627)
* add: Support 01-AI Models

* 🔧 chore: fix a config typo for model desc

* 🌐 add: Base 01.AI locale json

* 🐛 fix: remove custom model name and dark mode Logo for 01AI

* 💄 optimize: optimize the 01AI/Groq icon show and fix unused import

* 💄 optimize: optimize the settings icon show rules

*  feat: add 01.AI APIKey Error Form

* 💄 fix: PR 01.AI review issue

* 💄 revert: Groq logo change

* 🌐 style: update locale
2024-03-25 19:56:38 +08:00
Arvin Xu 99c47da944 📖 docs: Local Qwen for Ollama (#1723)
* 📖 docs: Local Qwen for Ollama (#1622)

* 📝 docs: update docs

* 📝 docs: update docs

* 📝 docs: update docs

---------

Co-authored-by: Maple Gao <esanisa@gmail.com>
2024-03-25 14:02:05 +08:00
lobehubbot b4e21dcef3 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-25 03:48:37 +00:00
kiner-tang c52aa10cf4 📝 docs: Update README.zh-CN.md (#1697) 2024-03-25 11:45:41 +08:00
lobehubbot c63446d83d 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-22 16:35:06 +00:00
semantic-release-bot d5e3be350c 🔖 chore(release): v0.141.2 [skip ci]
### [Version&nbsp;0.141.2](https://github.com/lobehub/lobe-chat/compare/v0.141.1...v0.141.2)
<sup>Released on **2024-03-22**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix window icon and scrollbar style.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix window icon and scrollbar style, closes [#1691](https://github.com/lobehub/lobe-chat/issues/1691) ([4f46845](https://github.com/lobehub/lobe-chat/commit/4f46845))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-22 16:34:28 +00:00
Arvin Xu 4f46845ebf 💄 fix: fix window icon and scrollbar style (#1691)
* 🐛 fix: fix window icon

* 💄 style: fix scrollbar style
2024-03-23 00:31:31 +08:00
Maple Gao 6a2633ab85 📖 doc: Update model service providers in README.md (#1689)
01.AI added too
2024-03-22 23:48:29 +08:00
semantic-release-bot 8a8e751cb0 🔖 chore(release): v0.141.1 [skip ci]
### [Version&nbsp;0.141.1](https://github.com/lobehub/lobe-chat/compare/v0.141.0...v0.141.1)
<sup>Released on **2024-03-22**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the Vercel Aanlytics and support Google Aanlytics.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the Vercel Aanlytics and support Google Aanlytics, closes [#1688](https://github.com/lobehub/lobe-chat/issues/1688) ([e07e9cf](https://github.com/lobehub/lobe-chat/commit/e07e9cf))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-22 13:11:15 +00:00
Arvin Xu e07e9cf7c5 ♻️ refactor: refactor the Vercel Aanlytics and support Google Aanlytics (#1688)
* ♻️ refactor: migrating to the latest Speed Insights package

*  feat: support google analytics

* 📝 docs: update docs

* 📝 docs: update docs
2024-03-22 21:08:09 +08:00
Maple Gao 9f436efe81 📖 docs: Update supported models in README.zh-CN.md (#1678) 2024-03-22 18:45:13 +08:00
semantic-release-bot 77f0caaf84 🔖 chore(release): v0.141.0 [skip ci]
## [Version&nbsp;0.141.0](https://github.com/lobehub/lobe-chat/compare/v0.140.1...v0.141.0)
<sup>Released on **2024-03-22**</sup>

####  Features

- **misc**: Using YJS and WebRTC to support sync data between different devices.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Using YJS and WebRTC to support sync data between different devices, closes [#1525](https://github.com/lobehub/lobe-chat/issues/1525) ([60d9186](https://github.com/lobehub/lobe-chat/commit/60d9186))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-22 08:10:04 +00:00
Arvin Xu 60d9186497 feat: using YJS and WebRTC to support sync data between different devices (#1525)
*  feat: support sync with webrtc

* 🎨 chore: improve code

* 🎨 chore: improve code

* 🐛 fix: fix dont sync when a node enter first

*  feat: support webrtc config settings

*  feat: add device info card

*  feat: finish sync settings

*  feat: finish sync settings page

* ♻️ refactor: refactor the db to support yjs sync

* 🐛 fix: disconnect when user disable sync

* ♻️ refactor: refactor the console with debug

* 🚸 style: add experiment feature tag

* 📱 style: fix with mobile

* 🌐 chore: add i18n

* 💄 style: improve random name action

* 🚸 style: add default Device Name

* 🚸 style: add mobile experiment tag

* 🚨 ci: fix lint
2024-03-22 16:07:06 +08:00
semantic-release-bot 065d3d75b4 🔖 chore(release): v0.140.1 [skip ci]
### [Version&nbsp;0.140.1](https://github.com/lobehub/lobe-chat/compare/v0.140.0...v0.140.1)
<sup>Released on **2024-03-22**</sup>

#### 💄 Styles

- **misc**:  add Moonshot Kimi Reverse model to Moonshot model provider..

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**:  add Moonshot Kimi Reverse model to Moonshot model provider., closes [#1659](https://github.com/lobehub/lobe-chat/issues/1659) ([5bae263](https://github.com/lobehub/lobe-chat/commit/5bae263))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-22 05:36:05 +00:00
Maple Gao 5bae263ba3 💄 style: add Moonshot Kimi Reverse model to Moonshot model provider. (#1659)
* feat:  Add Moonshot Kimi Reverse model to Moonshot model provider.
https://github.com/sherlcok314159/reverse-kimi

* 🔧 fix: add hidden for Kimi Reverse

---------

Co-authored-by: Arvin Xu <arvinx@foxmail.com>
2024-03-22 13:32:47 +08:00
semantic-release-bot 75ccbf6193 🔖 chore(release): v0.140.0 [skip ci]
## [Version&nbsp;0.140.0](https://github.com/lobehub/lobe-chat/compare/v0.139.2...v0.140.0)
<sup>Released on **2024-03-22**</sup>

####  Features

- **misc**: Add gemini 1.5 pro support.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add gemini 1.5 pro support, closes [#1669](https://github.com/lobehub/lobe-chat/issues/1669) ([2b280af](https://github.com/lobehub/lobe-chat/commit/2b280af))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-22 04:39:17 +00:00
Linghui Gong 2b280af079 feat: add gemini 1.5 pro support (#1669) 2024-03-22 12:36:25 +08:00
semantic-release-bot 2f71c6831d 🔖 chore(release): v0.139.2 [skip ci]
### [Version&nbsp;0.139.2](https://github.com/lobehub/lobe-chat/compare/v0.139.1...v0.139.2)
<sup>Released on **2024-03-22**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix code block display issue.

#### 💄 Styles

- **misc**: The bottom safe area height of iOS.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix code block display issue, closes [#1675](https://github.com/lobehub/lobe-chat/issues/1675) ([7707dda](https://github.com/lobehub/lobe-chat/commit/7707dda))

#### Styles

* **misc**: The bottom safe area height of iOS, closes [#1637](https://github.com/lobehub/lobe-chat/issues/1637) [#1181](https://github.com/lobehub/lobe-chat/issues/1181) ([44fae5e](https://github.com/lobehub/lobe-chat/commit/44fae5e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-22 03:39:51 +00:00
Arvin Xu 44fae5ec7d 💄 style: The bottom safe area height of iOS (#1637)
* 🐛 fix: The bottom safe area height of iOS (#1181)

* Update global.ts

---------

Co-authored-by: mushan0x0 <mushan0x0@gmail.com>
2024-03-22 11:36:50 +08:00
Arvin Xu 7707ddacfa 🐛 fix: fix code block display issue (#1675)
* Update package.json

* Delete .husky/commit-msg
2024-03-22 11:36:29 +08:00
lobehubbot 02e19f437b 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-22 02:51:24 +00:00
renovate[bot] 03757c7735 🔨 chore: update codecov/codecov-action action to v4 (#1214)
* Update codecov/codecov-action action to v4

* Update release.yml (#1673)

* Update test.yml

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Arvin Xu <arvinx@foxmail.com>
2024-03-22 10:48:12 +08:00
Arvin Xu 0b1d4cdbde 🔨 chore: fix vercel deployment error again (#1658) 2024-03-20 21:57:58 +08:00
Arvin Xu 5efb0b4cf4 🔨 chore: fix vercel deployment error (#1654) 2024-03-20 16:59:01 +08:00
gabou f42ff8c0d8 📝 docs : update Chinese Readme (#1631) 2024-03-19 08:57:44 +08:00
CanisMinor 04d8e53e26 📝 docs: improve docs (#1597)
* 📝 docs: Update docs to fit the new docs theme

* 📝 docs: Update docs

* 🔧 chore: fix build

* Update tts.zh-CN.mdx

* Update tts.mdx

---------

Co-authored-by: arvinxx <arvinx@foxmail.com>
2024-03-17 22:23:30 +08:00
semantic-release-bot d9353d12e1 🔖 chore(release): v0.139.1 [skip ci]
### [Version&nbsp;0.139.1](https://github.com/lobehub/lobe-chat/compare/v0.139.0...v0.139.1)
<sup>Released on **2024-03-17**</sup>

#### 💄 Styles

- **misc**: Improve model tags.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve model tags ([11cd5f4](https://github.com/lobehub/lobe-chat/commit/11cd5f4))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-17 04:13:01 +00:00
arvinxx 11cd5f477f 💄 style: improve model tags 2024-03-17 12:09:37 +08:00
renovate[bot] 9fa4c11d65 Update dependency vite to v5.1.6 (#1605)
* Update dependency vite to v5.1.6

* Update package.json

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Arvin Xu <arvinx@foxmail.com>
2024-03-17 11:45:37 +08:00
renovate[bot] 2572ecbf78 Update dependency @anthropic-ai/sdk to ^0.18.0 (#1606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-17 11:42:36 +08:00
Arvin Xu f8be0f4b56 📝 docs: Add Groq usage docs (#1598)
* docs: Add Groq usage docs (#1596)

* 📝 docs: update docs

---------

Co-authored-by: TC <34400653+tcmonster@users.noreply.github.com>
2024-03-16 21:42:07 +08:00
semantic-release-bot 05aa79f1c6 🔖 chore(release): v0.139.0 [skip ci]
## [Version&nbsp;0.139.0](https://github.com/lobehub/lobe-chat/compare/v0.138.2...v0.139.0)
<sup>Released on **2024-03-16**</sup>

####  Features

- **misc**: Support openrouter as a new model provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support openrouter as a new model provider, closes [#1572](https://github.com/lobehub/lobe-chat/issues/1572) ([780b1a2](https://github.com/lobehub/lobe-chat/commit/780b1a2))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-16 13:20:37 +00:00
Linghui Gong 780b1a225f feat: support openrouter as a new model provider (#1572)
*  feat: add openrouter provider

*  feat: add openrouter default headers

* 🐛 fix: test case bug
2024-03-16 21:17:37 +08:00
semantic-release-bot 6119be1d70 🔖 chore(release): v0.138.2 [skip ci]
### [Version&nbsp;0.138.2](https://github.com/lobehub/lobe-chat/compare/v0.138.1...v0.138.2)
<sup>Released on **2024-03-15**</sup>

#### 💄 Styles

- **misc**: Update Markdown in ChatItem.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Update Markdown in ChatItem ([be75549](https://github.com/lobehub/lobe-chat/commit/be75549))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-15 18:46:07 +00:00
canisminor1990 be7554957e 💄 style: Update Markdown in ChatItem 2024-03-16 02:41:14 +08:00
semantic-release-bot 7d4d83e563 🔖 chore(release): v0.138.1 [skip ci]
### [Version&nbsp;0.138.1](https://github.com/lobehub/lobe-chat/compare/v0.138.0...v0.138.1)
<sup>Released on **2024-03-15**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix URL typo.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix URL typo, closes [#1590](https://github.com/lobehub/lobe-chat/issues/1590) ([97137a9](https://github.com/lobehub/lobe-chat/commit/97137a9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-15 16:43:50 +00:00
PedroZ 97137a95fc 🐛 fix: Fix URL typo (#1590) 2024-03-16 00:40:52 +08:00
semantic-release-bot 57a1ec14d7 🔖 chore(release): v0.138.0 [skip ci]
## [Version&nbsp;0.138.0](https://github.com/lobehub/lobe-chat/compare/v0.137.0...v0.138.0)
<sup>Released on **2024-03-15**</sup>

####  Features

- **misc**: Support groq as a model provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support groq as a model provider, closes [#1569](https://github.com/lobehub/lobe-chat/issues/1569) [#1562](https://github.com/lobehub/lobe-chat/issues/1562) [#1570](https://github.com/lobehub/lobe-chat/issues/1570) ([a04c364](https://github.com/lobehub/lobe-chat/commit/a04c364))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-15 15:57:33 +00:00
Arvin Xu a04c364f04 feat: support groq as a model provider (#1569)
*  feat: support model provider groq (#1562)

* add Groq localization (#1570)

* 🐛 fix: fix groq logo and document

* 🌐 style: add i18n

---------

Co-authored-by: Jiaqi Cai <45190310+jcdiv47@users.noreply.github.com>
Co-authored-by: PedroZ <sdustpedro@gmail.com>
2024-03-15 23:54:29 +08:00
semantic-release-bot 04b9c1d6d4 🔖 chore(release): v0.137.0 [skip ci]
## [Version&nbsp;0.137.0](https://github.com/lobehub/lobe-chat/compare/v0.136.0...v0.137.0)
<sup>Released on **2024-03-15**</sup>

####  Features

- **ollama**: Improve connection check method and provide selector for user to control model options.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **ollama**: Improve connection check method and provide selector for user to control model options, closes [#1397](https://github.com/lobehub/lobe-chat/issues/1397) ([675902f](https://github.com/lobehub/lobe-chat/commit/675902f))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-15 14:50:17 +00:00
Johnson 675902f5a8 feat(ollama): improve connection check method and provide selector for user to control model options (#1397)
* 🐛 fix(ollama): change checker with ollama's tags api

* feat(ollama): add error card to pull model

* 🚚 chore: move files

* 💄 style: update llava logo

* 🐛 fix: add ollama service unavailable error type

* 🐛 fix: ollama show passed with error message exists

*  feat(ollama): add download moniter to show speed and eta remaining time

* 🚨 ci: fix lint

* 💄 style: improve download style

* 🌐 style: add i18n

---------

Co-authored-by: shijianyue <shijianyue@bytedance.com>
Co-authored-by: arvinxx <arvinx@foxmail.com>
2024-03-15 22:47:21 +08:00
Arvin Xu e472d6e827 📝 docs: update docs (#1587) 2024-03-15 21:18:50 +08:00
lobehubbot 3c78ca0110 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-15 13:14:06 +00:00
Arvin Xu 2910d05b25 📝 docs: update docs (#1586)
* 📝 docs: update docs

* 📝 docs: update docs

* 📝 docs: update docs
2024-03-15 21:10:55 +08:00
Arvin Xu 1c75a5bd06 📝 docs: improve docs (#1585) 2024-03-15 20:54:34 +08:00
semantic-release-bot 3979679847 🔖 chore(release): v0.136.0 [skip ci]
## [Version&nbsp;0.136.0](https://github.com/lobehub/lobe-chat/compare/v0.135.4...v0.136.0)
<sup>Released on **2024-03-15**</sup>

####  Features

- **misc**: Support azure-ad as a new sso provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support azure-ad as a new sso provider, closes [#1456](https://github.com/lobehub/lobe-chat/issues/1456) ([6649cd1](https://github.com/lobehub/lobe-chat/commit/6649cd1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-15 11:59:22 +00:00
Sebastian Silbermann 281edbc613 Revert "🔨 chore: fix build for the vercel (#1576)" (#1582)
This reverts commit 7bdfa70ad3.
2024-03-15 19:56:25 +08:00
EINDEX 6649cd1bcb feat: support azure-ad as a new sso provider (#1456)
*  feat: support azure-ad as sso

* 📝 docs: sso docs for azure-ad

* 🩹 fix: sso document

* 🩹 typo: fix typo for new env

* 🩹 fix: support chinese comma

* 📝 docs: Update multiple idp doc

* 📝 docs: document update
2024-03-15 19:53:41 +08:00
semantic-release-bot 24fc338136 🔖 chore(release): v0.135.4 [skip ci]
### [Version&nbsp;0.135.4](https://github.com/lobehub/lobe-chat/compare/v0.135.3...v0.135.4)
<sup>Released on **2024-03-15**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-15 09:35:15 +00:00
Arvin Xu 8abccca3c7 ️ perf: improve LCP by add image priority (#1580)
* ️ perf: try to improve LCP

* perf: try to improve LCP
2024-03-15 17:32:21 +08:00
semantic-release-bot 49f147a651 🔖 chore(release): v0.135.3 [skip ci]
### [Version&nbsp;0.135.3](https://github.com/lobehub/lobe-chat/compare/v0.135.2...v0.135.3)
<sup>Released on **2024-03-15**</sup>

#### 🐛 Bug Fixes

- **ollama**: Fix duplicate llama model and add llama2-chinese models.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **ollama**: Fix duplicate llama model and add llama2-chinese models, closes [#1579](https://github.com/lobehub/lobe-chat/issues/1579) ([6b9b5c8](https://github.com/lobehub/lobe-chat/commit/6b9b5c8))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-15 09:21:29 +00:00
Maple Gao 6b9b5c8a19 🐛 fix(ollama): fix duplicate llama model and add llama2-chinese models (#1579)
* 🔧 fix:duplicate llama2 config

*  llama2-chinese support
2024-03-15 17:18:33 +08:00
Arvin Xu 7bdfa70ad3 🔨 chore: fix build for the vercel (#1576) 2024-03-15 11:11:14 +08:00
semantic-release-bot 6adb2d6452 🔖 chore(release): v0.135.2 [skip ci]
### [Version&nbsp;0.135.2](https://github.com/lobehub/lobe-chat/compare/v0.135.1...v0.135.2)
<sup>Released on **2024-03-14**</sup>

#### ♻ Code Refactoring

- **misc**: Upgrade plugin db schema.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Upgrade plugin db schema, closes [#1571](https://github.com/lobehub/lobe-chat/issues/1571) ([757574a](https://github.com/lobehub/lobe-chat/commit/757574a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-14 14:01:38 +00:00
Arvin Xu 757574a5c5 🗃️ refactor: upgrade plugin db schema (#1571) 2024-03-14 21:58:32 +08:00
semantic-release-bot 2c4ee81d8a 🔖 chore(release): v0.135.1 [skip ci]
### [Version&nbsp;0.135.1](https://github.com/lobehub/lobe-chat/compare/v0.135.0...v0.135.1)
<sup>Released on **2024-03-14**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the db model.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the db model, closes [#1567](https://github.com/lobehub/lobe-chat/issues/1567) ([3d56dd6](https://github.com/lobehub/lobe-chat/commit/3d56dd6))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-14 12:23:08 +00:00
Arvin Xu 3d56dd6a1a ♻️ refactor: refactor the db model (#1567)
* ♻️ refactor: refactor the db code

*  test: fix test

* ♻️ refactor: refactor the  user model
2024-03-14 20:20:09 +08:00
lobehubbot 2cf2abd029 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-14 08:46:16 +00:00
semantic-release-bot 40769be4f9 🔖 chore(release): v0.135.0 [skip ci]
## [Version&nbsp;0.135.0](https://github.com/lobehub/lobe-chat/compare/v0.134.1...v0.135.0)
<sup>Released on **2024-03-14**</sup>

####  Features

- **misc**: Add claude 3 to bedrock provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add claude 3 to bedrock provider, closes [#1551](https://github.com/lobehub/lobe-chat/issues/1551) ([6e1fe33](https://github.com/lobehub/lobe-chat/commit/6e1fe33))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-14 08:45:35 +00:00
Linghui Gong 6e1fe333aa feat: add claude 3 to bedrock provider (#1551)
*  feat: new claude 3 models in bedrock

*  support claude 3 params and stream handling

* ♻️ fix: remove useless condition check

*  feat: add haiku to both bedrock and anthropic provider
2024-03-14 16:42:36 +08:00
semantic-release-bot 0988466b99 🔖 chore(release): v0.134.1 [skip ci]
### [Version&nbsp;0.134.1](https://github.com/lobehub/lobe-chat/compare/v0.134.0...v0.134.1)
<sup>Released on **2024-03-13**</sup>

#### 💄 Styles

- **misc**: Add more model display name.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add more model display name, closes [#1554](https://github.com/lobehub/lobe-chat/issues/1554) ([31c987a](https://github.com/lobehub/lobe-chat/commit/31c987a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-13 10:24:11 +00:00
PedroZ 31c987a33a 💄 style: add more model display name (#1554) 2024-03-13 18:20:57 +08:00
lobehubbot f8f410c8ec 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-13 02:51:14 +00:00
semantic-release-bot 04789b9af0 🔖 chore(release): v0.134.0 [skip ci]
## [Version&nbsp;0.134.0](https://github.com/lobehub/lobe-chat/compare/v0.133.5...v0.134.0)
<sup>Released on **2024-03-13**</sup>

####  Features

- **misc**: Support anthropic proxy url.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support anthropic proxy url, closes [#1529](https://github.com/lobehub/lobe-chat/issues/1529) ([a5a9257](https://github.com/lobehub/lobe-chat/commit/a5a9257))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-13 02:50:38 +00:00
Linghui Gong a5a9257eb6 feat: support anthropic proxy url (#1529)
*  feat: anthropic proxy url

*  i18n: update translations

*  fix: remove unused debug code
2024-03-13 10:47:36 +08:00
semantic-release-bot 3ca693d627 🔖 chore(release): v0.133.5 [skip ci]
### [Version&nbsp;0.133.5](https://github.com/lobehub/lobe-chat/compare/v0.133.4...v0.133.5)
<sup>Released on **2024-03-12**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-12 04:00:23 +00:00
Arvin Xu 9f1635e0c1 ️ perf: refactor the responsive layout to improve performance (#1541) 2024-03-12 11:57:31 +08:00
semantic-release-bot a4023b74f2 🔖 chore(release): v0.133.4 [skip ci]
### [Version&nbsp;0.133.4](https://github.com/lobehub/lobe-chat/compare/v0.133.3...v0.133.4)
<sup>Released on **2024-03-11**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix sitemap missing in docker building.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix sitemap missing in docker building, closes [#1533](https://github.com/lobehub/lobe-chat/issues/1533) ([49752da](https://github.com/lobehub/lobe-chat/commit/49752da))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-11 09:45:06 +00:00
Arvin Xu 49752da6c4 🐛 fix: fix sitemap missing in docker building (#1533) 2024-03-11 17:42:07 +08:00
CanisMinor 46b02717cf 📝 docs: Update docs/usage/features/agent-market.mdx (#1530) 2024-03-11 11:30:43 +08:00
Arvin Xu f94ba2587f Update vision.mdx 2024-03-11 10:34:11 +08:00
semantic-release-bot afb7bc9de7 🔖 chore(release): v0.133.3 [skip ci]
### [Version&nbsp;0.133.3](https://github.com/lobehub/lobe-chat/compare/v0.133.2...v0.133.3)
<sup>Released on **2024-03-10**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix the max token of claude 3.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix the max token of claude 3, closes [#1526](https://github.com/lobehub/lobe-chat/issues/1526) ([222fae3](https://github.com/lobehub/lobe-chat/commit/222fae3))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-10 15:27:05 +00:00
Arvin Xu 222fae315b 🐛 fix: fix the max token of claude 3 (#1526)
* Update index.ts

*  test: fix test
2024-03-10 23:24:04 +08:00
semantic-release-bot 192688af88 🔖 chore(release): v0.133.2 [skip ci]
### [Version&nbsp;0.133.2](https://github.com/lobehub/lobe-chat/compare/v0.133.1...v0.133.2)
<sup>Released on **2024-03-10**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix qwen model id and improve anthropic logo text color.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix qwen model id and improve anthropic logo text color, closes [#1524](https://github.com/lobehub/lobe-chat/issues/1524) ([c68f5da](https://github.com/lobehub/lobe-chat/commit/c68f5da))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-10 13:58:23 +00:00
Arvin Xu c68f5da8e9 🐛 fix: fix qwen model id and improve anthropic logo text color (#1524)
* 💄 style: improve llm order

* 🐛 fix: fix qwen model id

* 🐛 fix: fix qwen model id

* 🐛 fix: fix Anthropic color
2024-03-10 21:55:25 +08:00
renovate[bot] f8566e42da Update dependency vite to v5.1.5 (#1521)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-10 19:10:36 +08:00
CanisMinor 536c885564 🔧 chore: add mdx lint (#1475)
* 🔧 chore: Add mdx lint

* 📝 docs: Update docs

* 📝 docs: update docs

---------

Co-authored-by: arvinxx <arvinx@foxmail.com>
2024-03-10 18:46:41 +08:00
lobehubbot 219a0e10c7 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-10 06:49:55 +00:00
Arvin Xu 40ffd72d5a 📝 docs: update docs (#1522)
* 📝 docs: update docs

* 📝 docs: update docs

* 📝 docs: update docs

* 📝 docs: update docs

* 📝 docs: update docs

* 📝 docs: update docs

* 📝 docs: update docs

* 📝 docs: update docs

* 📝 docs: update docs

* 📝 docs: update docs

* 📝 docs: update docs
2024-03-10 14:47:00 +08:00
semantic-release-bot 5a2bd5fce2 🔖 chore(release): v0.133.1 [skip ci]
### [Version&nbsp;0.133.1](https://github.com/lobehub/lobe-chat/compare/v0.133.0...v0.133.1)
<sup>Released on **2024-03-08**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix sitemap config.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix sitemap config ([a2542a7](https://github.com/lobehub/lobe-chat/commit/a2542a7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-08 04:28:36 +00:00
Arvin Xu a2542a7d92 🐛 fix: fix sitemap config 2024-03-08 04:25:03 +00:00
lobehubbot dbcde3fef9 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-07 14:38:00 +00:00
Davy 419f73b482 📝 docs: Update README.md (#1481)
* Update README.md

Adding info about GitHub Actions

* Update README.zh-CN.md
2024-03-07 22:35:07 +08:00
semantic-release-bot 83aaa1b52f 🔖 chore(release): v0.133.0 [skip ci]
## [Version&nbsp;0.133.0](https://github.com/lobehub/lobe-chat/compare/v0.132.2...v0.133.0)
<sup>Released on **2024-03-07**</sup>

####  Features

- **misc**: Support Mistral model provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support Mistral model provider, closes [#1455](https://github.com/lobehub/lobe-chat/issues/1455) ([4f94bfe](https://github.com/lobehub/lobe-chat/commit/4f94bfe))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-07 03:05:58 +00:00
Linghui Gong 4f94bfef32 feat: support Mistral model provider (#1455)
*  feat: support mistral as model provider

* 🐛 fix: a test case bug

*  add missing tests for anthropic and mistral
2024-03-07 11:03:03 +08:00
semantic-release-bot 883fdd817a 🔖 chore(release): v0.132.2 [skip ci]
### [Version&nbsp;0.132.2](https://github.com/lobehub/lobe-chat/compare/v0.132.1...v0.132.2)
<sup>Released on **2024-03-07**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix anthropic streaming on Vercel/Cloudflare.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix anthropic streaming on Vercel/Cloudflare, closes [#1480](https://github.com/lobehub/lobe-chat/issues/1480) ([227101a](https://github.com/lobehub/lobe-chat/commit/227101a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-07 02:26:40 +00:00
Linghui Gong 227101a6e7 🐛 fix: fix anthropic streaming on Vercel/Cloudflare (#1480)
* 📝 docs(bot): Auto sync agents & plugin to readme

* 🐛 fix: anthropic streaming issue on vercel

* 📝 update document, remove anthropic known issue

---------

Co-authored-by: lobehubbot <i@lobehub.com>
Co-authored-by: GH Action - Upstream Sync <action@github.com>
2024-03-07 10:23:52 +08:00
lobehubbot 96117fa36a 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-06 15:04:09 +00:00
semantic-release-bot b7347f6a0c 🔖 chore(release): v0.132.1 [skip ci]
### [Version&nbsp;0.132.1](https://github.com/lobehub/lobe-chat/compare/v0.132.0...v0.132.1)
<sup>Released on **2024-03-06**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix hydration error while OAuth callback.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix hydration error while OAuth callback, closes [#1474](https://github.com/lobehub/lobe-chat/issues/1474) ([ff93825](https://github.com/lobehub/lobe-chat/commit/ff93825))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-06 15:03:32 +00:00
cy948 ff93825a44 🐛 fix: fix hydration error while OAuth callback (#1474)
* 🐛 fix: fix LOCALE_COOKIE not pass to server while OAuth callback

* 🐛 fix: allow i18n cookie cross site
2024-03-06 23:00:33 +08:00
lobehubbot a8265c4aa8 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-05 15:27:39 +00:00
semantic-release-bot 2b852c5a34 🔖 chore(release): v0.132.0 [skip ci]
## [Version&nbsp;0.132.0](https://github.com/lobehub/lobe-chat/compare/v0.131.0...v0.132.0)
<sup>Released on **2024-03-05**</sup>

####  Features

- **misc**: Support anthropic as model provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support anthropic as model provider, closes [#1409](https://github.com/lobehub/lobe-chat/issues/1409) ([a42cf8c](https://github.com/lobehub/lobe-chat/commit/a42cf8c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-05 15:26:59 +00:00
Linghui Gong a42cf8c2ea feat: support anthropic as model provider (#1409)
*  feat: support anthropic as model provider

*  feat: support anthropic with vision

*  test: fix some with test

* 🐛 fix: anthropic error handling

*  chore: fix broken tests

* 🐛 fix: remove unused imports

* 📝 doc: add note for anthropic with vercel/cloudflare

* 📝 docs: update docs

* 📝 docs: update docs

* 💄 style: update claude icons

* 💄 style: update tags

---------

Co-authored-by: arvinxx <arvinx@foxmail.com>
2024-03-05 23:23:58 +08:00
lobehubbot 00a2972cb3 📝 docs(bot): Auto sync agents & plugin to readme 2024-03-05 06:19:38 +00:00
semantic-release-bot 346dfff609 🔖 chore(release): v0.131.0 [skip ci]
## [Version&nbsp;0.131.0](https://github.com/lobehub/lobe-chat/compare/v0.130.7...v0.131.0)
<sup>Released on **2024-03-05**</sup>

####  Features

- **misc**: Support langfuse integration.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support langfuse integration, closes [#1325](https://github.com/lobehub/lobe-chat/issues/1325) ([aaedfa7](https://github.com/lobehub/lobe-chat/commit/aaedfa7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-05 06:18:49 +00:00
Arvin Xu aaedfa716e feat: support langfuse integration (#1325)
*  feat: support langfuse trace

*  test: fix test

*  test: add test

*  test: add db user test

*  test: add test

* ♻️ refactor: refactor the route code

* ♻️ refactor: make  updateMessageContent the private method

*  feat: langfuse with user events

*  test: fix test

* ️ perf: improve trace

*  test: add tests

* 🚧 wip: notification

* ♻️ refactor: refactor the common settings

*  feat: add about page

*  feat: add about page

*  feat: add control with user settings

*  feat: add telemetry in mobile

*  test: fix test

* 🌐 chore: add i18n
2024-03-05 14:15:49 +08:00
renovate[bot] 04a6ef75fe Update dependency commitlint to v19 (#1447)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-03 20:28:21 +08:00
renovate[bot] 9ed648b5d8 Update dependency @commitlint/cli to v19 (#1445)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-03 20:22:56 +08:00
renovate[bot] c95e4f075d Update dependency ai to v3 (#1446)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-03 14:25:52 +08:00
renovate[bot] 0a0310d585 Update dependency query-string to v9 (#1448)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-03 14:25:29 +08:00
semantic-release-bot 4acc738139 🔖 chore(release): v0.130.7 [skip ci]
### [Version&nbsp;0.130.7](https://github.com/lobehub/lobe-chat/compare/v0.130.6...v0.130.7)
<sup>Released on **2024-03-03**</sup>

#### ♻ Code Refactoring

- **misc**: Update gpt-3.5-turbo model card.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Update gpt-3.5-turbo model card, closes [#1449](https://github.com/lobehub/lobe-chat/issues/1449) ([d0be0c7](https://github.com/lobehub/lobe-chat/commit/d0be0c7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-03 04:02:33 +00:00
Arvin Xu d0be0c7355 ♻️ refactor: update gpt-3.5-turbo model card (#1449)
* ♻️ refactor: update gpt-3.5 model info

*  test: update test
2024-03-03 11:59:47 +08:00
renovate[bot] 61bf0ec277 Update dependency @auth/core to latest (#1444)
* Update dependency @auth/core to ^0.28.0

* Update package.json

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Arvin Xu <arvinx@foxmail.com>
2024-03-03 11:33:24 +08:00
semantic-release-bot 01c7ad40c6 🔖 chore(release): v0.130.6 [skip ci]
### [Version&nbsp;0.130.6](https://github.com/lobehub/lobe-chat/compare/v0.130.5...v0.130.6)
<sup>Released on **2024-03-01**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the plugin and tool slice.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the plugin and tool slice, closes [#1437](https://github.com/lobehub/lobe-chat/issues/1437) ([003e230](https://github.com/lobehub/lobe-chat/commit/003e230))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-01 15:53:40 +00:00
LobeHub Bot 003e230c57 ♻️ refactor: refactor the plugin and tool slice (#1437)
* ♻️ refactor: refactor the plugin and tool slice

*  test: update test

---------

Co-authored-by: arvinxx <arvinx@foxmail.com>
2024-03-01 23:49:14 +08:00
Tony H Dillion bf29ec533a 📝 docs: improve README (#1434)
* Fix typo in Update README.zh-CN.md

* fix text Update README.zh-CN.md
2024-03-01 23:06:43 +08:00
semantic-release-bot b066cbf1fb 🔖 chore(release): v0.130.5 [skip ci]
### [Version&nbsp;0.130.5](https://github.com/lobehub/lobe-chat/compare/v0.130.4...v0.130.5)
<sup>Released on **2024-03-01**</sup>

#### 💄 Styles

- **misc**: Support switch model with tag.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Support switch model with tag, closes [#1435](https://github.com/lobehub/lobe-chat/issues/1435) ([233150e](https://github.com/lobehub/lobe-chat/commit/233150e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-03-01 13:57:48 +00:00
Arvin Xu 233150e752 💄 style: support switch model with tag (#1435) 2024-03-01 21:55:05 +08:00
Arvin Xu 438b4c2bdb test: add test (#1433)
*  test: add test

*  test: add tests
2024-03-01 21:28:44 +08:00
semantic-release-bot 11f84972fd 🔖 chore(release): v0.130.4 [skip ci]
### [Version&nbsp;0.130.4](https://github.com/lobehub/lobe-chat/compare/v0.130.3...v0.130.4)
<sup>Released on **2024-02-29**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the core chatStream and plugin gateway auth.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the core chatStream and plugin gateway auth, closes [#1426](https://github.com/lobehub/lobe-chat/issues/1426) ([7d3c1b6](https://github.com/lobehub/lobe-chat/commit/7d3c1b6))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-29 14:10:48 +00:00
Arvin Xu 7d3c1b6ea6 ♻️ refactor: refactor the core chatStream and plugin gateway auth (#1426)
* ♻️ refactor: refactor the core chatStream

* ♻️ refactor: refactor the plugin api auth

*  test: add google tests

*  test: add google tests

*  test: add google tests

* ♻️ refactor: refactor the plugin api auth
2024-02-29 22:08:09 +08:00
semantic-release-bot eef5eba32f 🔖 chore(release): v0.130.3 [skip ci]
### [Version&nbsp;0.130.3](https://github.com/lobehub/lobe-chat/compare/v0.130.2...v0.130.3)
<sup>Released on **2024-02-29**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the google api route and add more tests for chat route.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the google api route and add more tests for chat route, closes [#1424](https://github.com/lobehub/lobe-chat/issues/1424) ([063a4d5](https://github.com/lobehub/lobe-chat/commit/063a4d5))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-29 07:31:15 +00:00
Arvin Xu 063a4d5a2e ♻️ refactor: refactor the google api route and add more tests for chat route (#1424)
* ♻️ refactor: refactor the Google api router

*  test: add test for the chat api router
2024-02-29 15:28:34 +08:00
semantic-release-bot d49b5ad036 🔖 chore(release): v0.130.2 [skip ci]
### [Version&nbsp;0.130.2](https://github.com/lobehub/lobe-chat/compare/v0.130.1...v0.130.2)
<sup>Released on **2024-02-29**</sup>

#### 🐛 Bug Fixes

- **misc**: Update azure OpenAI api version options to latest.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Update azure OpenAI api version options to latest, closes [#1423](https://github.com/lobehub/lobe-chat/issues/1423) ([d992262](https://github.com/lobehub/lobe-chat/commit/d992262))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-29 05:16:11 +00:00
Zack Chang d992262beb 🐛 fix: update azure OpenAI api version options to latest (#1423) 2024-02-29 13:13:30 +08:00
semantic-release-bot 9a6d9ce9ce 🔖 chore(release): v0.130.1 [skip ci]
### [Version&nbsp;0.130.1](https://github.com/lobehub/lobe-chat/compare/v0.130.0...v0.130.1)
<sup>Released on **2024-02-28**</sup>

#### 🐛 Bug Fixes

- **google**: Add safetySettings to avoid error response with google AI model.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **google**: Add safetySettings to avoid error response with google AI model, closes [#1418](https://github.com/lobehub/lobe-chat/issues/1418) ([87bf1fb](https://github.com/lobehub/lobe-chat/commit/87bf1fb))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-28 16:23:13 +00:00
Arvin Xu 6aa168911d test: add test for agent runtime providers (#1417)
*  test: add test for agent runtime providers

*  test: fix test

*  test: fix crypto relative test
2024-02-29 00:20:24 +08:00
keung67 87bf1fbfc7 🐛 fix(google): add safetySettings to avoid error response with google AI model (#1418)
* add safetySettings, set block_none

HarmBlockThreshold.BLOCK_NONE

* 🎨 chore: format code

* 📝 docs(bot): Auto sync agents & plugin to readme
2024-02-29 00:20:08 +08:00
semantic-release-bot dd9d93ea99 🔖 chore(release): v0.130.0 [skip ci]
## [Version&nbsp;0.130.0](https://github.com/lobehub/lobe-chat/compare/v0.129.6...v0.130.0)
<sup>Released on **2024-02-27**</sup>

####  Features

- **misc**: Support multiple API Keys.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support multiple API Keys, closes [#1345](https://github.com/lobehub/lobe-chat/issues/1345) ([17c5da3](https://github.com/lobehub/lobe-chat/commit/17c5da3))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-27 05:51:03 +00:00
Larify 17c5da3f8f feat: support multiple API Keys (#1345)
*  feat: Support multiple API keys [RFC 027]

* 📝 docs: add env variable API_KEY_SELECT_MODE

* 🔧 chore: Adjust the parameter API_KEY_SELECT_MODE to be optional

* 🔧 fix: Adjustments made according to Code Review requirements

*  test: add test for ApiKeyManager

* 🔧 fix: Support for multiple API Keys from user input on the client side

* 🔧 chore: handle Perplexity API Key

* 🔧 chore: update OpenAI or Azure API Key select

* 🔧 chore: update OpenAI or Azure API Key select
2024-02-27 13:48:26 +08:00
lobehubbot a1a055d763 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-27 03:42:53 +00:00
Arvin Xu 311ca88e2f 📝 docs: add more deployment documents (#1393)
* 📝 docs: Creating self-hosting documents repocloud.mdx (#1388)

* Creating self-hosting documents repocloud.mdx

Adding deployment documentation for RepoCloud as requested :)

* Update repocloud.mdx

Modifying with svg instead of png as requested

* 📝 docs: create repocloud.zn-CN.mdx (#1389)

* Create repocloud.zn-CN.mdx

* Update repocloud.zn-CN.mdx

Changing png to svg

* 📝 docs: update docs

* 📝 docs: add netlify deployment

* 🔧 chore: add netlify.toml config

*  docs: update platform deployment

*  docs: update readme

---------

Co-authored-by: cosark <121065588+cosark@users.noreply.github.com>
2024-02-27 11:40:16 +08:00
semantic-release-bot 33d4354897 🔖 chore(release): v0.129.6 [skip ci]
### [Version&nbsp;0.129.6](https://github.com/lobehub/lobe-chat/compare/v0.129.5...v0.129.6)
<sup>Released on **2024-02-25**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix github url.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix github url ([42ea0f5](https://github.com/lobehub/lobe-chat/commit/42ea0f5))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-25 14:30:53 +00:00
arvinxx 42ea0f568a 🐛 fix: fix github url 2024-02-25 22:27:59 +08:00
lobehubbot 6c3856e703 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-25 01:52:12 +00:00
semantic-release-bot 650a1e9efe 🔖 chore(release): v0.129.5 [skip ci]
### [Version&nbsp;0.129.5](https://github.com/lobehub/lobe-chat/compare/v0.129.4...v0.129.5)
<sup>Released on **2024-02-25**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix eliminate UI jitter on navigation, improving experience for users sensitive to motion.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix eliminate UI jitter on navigation, improving experience for users sensitive to motion, closes [#1381](https://github.com/lobehub/lobe-chat/issues/1381) ([9231413](https://github.com/lobehub/lobe-chat/commit/9231413))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-25 01:51:35 +00:00
Tom 923141368c 🐛 fix: fix eliminate UI jitter on navigation, improving experience for users sensitive to motion (#1381) 2024-02-25 09:48:49 +08:00
lobehubbot 3ec7704730 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-25 01:37:10 +00:00
renovate[bot] 0e68259e5d Update dependency vite to v5.1.4 (#1382)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-25 09:34:18 +08:00
arvinxx 8c82e3d7d7 📝 docs: update gemma usage docs 2024-02-24 21:10:56 +08:00
arvinxx 573ffbac77 📝 docs: add gemma usage docs 2024-02-24 20:53:18 +08:00
semantic-release-bot 6316306975 🔖 chore(release): v0.129.4 [skip ci]
### [Version&nbsp;0.129.4](https://github.com/lobehub/lobe-chat/compare/v0.129.3...v0.129.4)
<sup>Released on **2024-02-24**</sup>

#### 🐛 Bug Fixes

- **ollama**: Fix gemma model id.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **ollama**: Fix gemma model id, closes [#1377](https://github.com/lobehub/lobe-chat/issues/1377) ([3da50ff](https://github.com/lobehub/lobe-chat/commit/3da50ff))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-24 01:08:12 +00:00
Arvin Xu 3da50ff4c7 🐛 fix(ollama): fix gemma model id (#1377) 2024-02-24 09:05:35 +08:00
semantic-release-bot ec76917a28 🔖 chore(release): v0.129.3 [skip ci]
### [Version&nbsp;0.129.3](https://github.com/lobehub/lobe-chat/compare/v0.129.2...v0.129.3)
<sup>Released on **2024-02-23**</sup>

#### 💄 Styles

- **misc**: Add gemma model logo for ollama.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add gemma model logo for ollama, closes [#1369](https://github.com/lobehub/lobe-chat/issues/1369) ([e2fb3a3](https://github.com/lobehub/lobe-chat/commit/e2fb3a3))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-23 14:28:48 +00:00
Arvin Xu e2fb3a328d 💄 style: add gemma model logo for ollama (#1369) 2024-02-23 22:26:04 +08:00
lobehubbot 4bbb773334 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-23 10:15:17 +00:00
CanisMinor daae02e647 📝 docs: Update readme (#1366)
* 📝 docs: Update README.md

* 📝 docs: Update README.zh-CN.md

* 📝 docs: Fix typo

* 📝 docs: Fix typo

* Update README.md

* Update README.zh-CN.md
2024-02-23 18:12:41 +08:00
lobehubbot 15a1eed1e3 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-23 07:18:04 +00:00
semantic-release-bot c4484fa4c8 🔖 chore(release): v0.129.2 [skip ci]
### [Version&nbsp;0.129.2](https://github.com/lobehub/lobe-chat/compare/v0.129.1...v0.129.2)
<sup>Released on **2024-02-23**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix OAuth don't get user id from session.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix OAuth don't get user id from session, closes [#1347](https://github.com/lobehub/lobe-chat/issues/1347) ([ce4d6ca](https://github.com/lobehub/lobe-chat/commit/ce4d6ca))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-23 07:17:27 +00:00
cy948 ce4d6ca9bd 🐛 fix: fix OAuth don't get user id from session (#1347)
* ⬆️ chore: update next-auth to 5.0.0-beta.13

- ⬆️ chore: update @auth/core to ^0.27.0

* 🐛 fix: Could not get `user_id` from session

* ⬆️ chore: Unlock next-auth to `beta`

* 📝 docs: Add custom session guide

* 🐛 fix: use `user_id` from next-auth
2024-02-23 15:14:50 +08:00
arvinxx 6485db72aa 📝 docs: improve ollama docs 2024-02-22 23:11:56 +08:00
Arvin Xu 6827d20c11 📝 docs: add ollama documents about self-hosting and usage (#1355)
* 📝 docs: add ollama documents

* 📝 docs: update image usage
2024-02-22 23:04:02 +08:00
semantic-release-bot 8ddf81aea5 🔖 chore(release): v0.129.1 [skip ci]
### [Version&nbsp;0.129.1](https://github.com/lobehub/lobe-chat/compare/v0.129.0...v0.129.1)
<sup>Released on **2024-02-22**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-22 12:56:48 +00:00
Arvin Xu 0db8c268e2 ️ perf: improve pages a11y (#1353)
* ️ fix: improve a11y

* ️ perf: improve logo

* ️ perf: improve viewport scale

* ️ perf: improve a11y for settings page

* 🌐 chore: update i18n
2024-02-22 20:54:12 +08:00
semantic-release-bot 0031c6856d 🔖 chore(release): v0.129.0 [skip ci]
## [Version&nbsp;0.129.0](https://github.com/lobehub/lobe-chat/compare/v0.128.10...v0.129.0)
<sup>Released on **2024-02-22**</sup>

####  Features

- **misc**: Support perplexity AI provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support perplexity AI provider, closes [#1339](https://github.com/lobehub/lobe-chat/issues/1339) ([61c88fb](https://github.com/lobehub/lobe-chat/commit/61c88fb))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-22 07:19:26 +00:00
Sangmin Ahn 61c88fbe61 feat: support perplexity AI provider (#1339)
*  feat: support a new model provider, perplexity

* 🌐 style: update i18n

* 🚸 chore: improve model list index
2024-02-22 15:16:44 +08:00
semantic-release-bot d5472a2eac 🔖 chore(release): v0.128.10 [skip ci]
### [Version&nbsp;0.128.10](https://github.com/lobehub/lobe-chat/compare/v0.128.9...v0.128.10)
<sup>Released on **2024-02-21**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix the robots.txt config.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix the robots.txt config ([c4adfe4](https://github.com/lobehub/lobe-chat/commit/c4adfe4))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-21 13:42:25 +00:00
arvinxx c4adfe44d3 🐛 fix: fix the robots.txt config 2024-02-21 21:39:28 +08:00
semantic-release-bot cd506dde85 🔖 chore(release): v0.128.9 [skip ci]
### [Version&nbsp;0.128.9](https://github.com/lobehub/lobe-chat/compare/v0.128.8...v0.128.9)
<sup>Released on **2024-02-20**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix the robots.txt config.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix the robots.txt config ([34901b4](https://github.com/lobehub/lobe-chat/commit/34901b4))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-20 14:48:42 +00:00
arvinxx 34901b40d5 🐛 fix: fix the robots.txt config 2024-02-20 22:45:43 +08:00
semantic-release-bot 7f669f5ec0 🔖 chore(release): v0.128.8 [skip ci]
### [Version&nbsp;0.128.8](https://github.com/lobehub/lobe-chat/compare/v0.128.7...v0.128.8)
<sup>Released on **2024-02-20**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-20 13:35:55 +00:00
Arvin Xu 79be7afed7 🔍️ perf: add sitemap and robot.txt to improve SEO (#1337)
* 🔍️ fix: add sitemap and robots.txt

* 🐛 fix: fix canonical url

* 🐛 fix: fix canonical url

* 🐛 fix: fix canonical url

* 🐛 fix: fix deploy url

* 🐛 fix: fix canonical url

* 🐛 fix: fix the robots config
2024-02-20 21:33:10 +08:00
cy948 cf78c5bbee 📝 docs(authentication): add varible NEXTAUTH_URL (#1335) 2024-02-20 19:15:53 +08:00
Arvin Xu 2b3e457ffe 📝 docs: Update docs (#1332)
* Update README.md

* 📝 docs: update docs
2024-02-20 14:21:50 +08:00
arvinxx c7a0bc2119 📝 docs: update docs 2024-02-20 13:37:03 +08:00
semantic-release-bot 5f9a52cc09 🔖 chore(release): v0.128.7 [skip ci]
### [Version&nbsp;0.128.7](https://github.com/lobehub/lobe-chat/compare/v0.128.6...v0.128.7)
<sup>Released on **2024-02-20**</sup>

#### 💄 Styles

- **misc**: Improve docs url and add more docs.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve docs url and add more docs, closes [#1329](https://github.com/lobehub/lobe-chat/issues/1329) ([85b3136](https://github.com/lobehub/lobe-chat/commit/85b3136))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-20 04:44:56 +00:00
Arvin Xu 85b31369da 💄 style: improve docs url and add more docs (#1329)
* 💄 style: improve docs url

* 📝 docs: update docs

* 📝 docs: update docs

* Update README.md

* Update README.zh-CN.md

* 📝 docs: update docs
2024-02-20 12:42:21 +08:00
lobehubbot bd16e5a061 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-20 02:03:11 +00:00
semantic-release-bot 0694cc46cf 🔖 chore(release): v0.128.6 [skip ci]
### [Version&nbsp;0.128.6](https://github.com/lobehub/lobe-chat/compare/v0.128.5...v0.128.6)
<sup>Released on **2024-02-20**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix OAuth errors on Docker deployment.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix OAuth errors on Docker deployment, closes [#1323](https://github.com/lobehub/lobe-chat/issues/1323) ([922e843](https://github.com/lobehub/lobe-chat/commit/922e843))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-20 02:02:27 +00:00
cy948 922e84306c 🐛 fix: fix OAuth errors on Docker deployment (#1323)
* 📝 docs: add ENV `NEXTAUTH_URL` to docs

* 🐛 fix: OAuth errors on Docker deployment

* 📌 chore: Lock next-auth to 5.0.0-beta.11
2024-02-20 09:59:40 +08:00
Yusuf Mansur Özer 961a007433 📝 docs: fix typo on README.md (#1324) 2024-02-19 16:00:55 +08:00
arvinxx 087bc60aaa 📝 docs: update docs 2024-02-19 15:08:02 +08:00
arvinxx 15cf626d79 📝 docs: update docs 2024-02-19 14:42:46 +08:00
holocron.so 3aaf325e64 Update docs/agents/topics.mdx 2024-02-19 05:35:08 +00:00
holocron.so 3a72ba4fc6 Update docs/agents/prompt.mdx 2024-02-19 05:34:38 +00:00
lobehubbot 12728b8f05 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-19 03:23:08 +00:00
arvinxx 439775be5a 📝 docs: fix docs 2024-02-19 11:20:13 +08:00
arvinxx d57fdd233f 📝 docs: update docs 2024-02-19 00:00:20 +08:00
semantic-release-bot 3245e127fb 🔖 chore(release): v0.128.5 [skip ci]
### [Version&nbsp;0.128.5](https://github.com/lobehub/lobe-chat/compare/v0.128.4...v0.128.5)
<sup>Released on **2024-02-18**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix the document url.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix the document url ([43b5677](https://github.com/lobehub/lobe-chat/commit/43b5677))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-18 14:36:29 +00:00
arvinxx 43b5677aaf 🐛 fix: fix the document url 2024-02-18 22:33:23 +08:00
arvinxx dd947e6572 📝 docs: fix upstream sync docs 2024-02-18 22:22:19 +08:00
semantic-release-bot c285117786 🔖 chore(release): v0.128.4 [skip ci]
### [Version&nbsp;0.128.4](https://github.com/lobehub/lobe-chat/compare/v0.128.3...v0.128.4)
<sup>Released on **2024-02-18**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix documents i18n.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix documents i18n, closes [#1319](https://github.com/lobehub/lobe-chat/issues/1319) ([a0600dc](https://github.com/lobehub/lobe-chat/commit/a0600dc))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-18 14:16:19 +00:00
Arvin Xu a0600dce80 🐛 fix: fix documents i18n (#1319)
* 🐛 fix: fix plugin install button

* 🌐 style: update i18n
2024-02-18 22:13:42 +08:00
renovate[bot] 99c65caf9d ⬆️ chore: update dependency husky to v9 (#1166)
* Update dependency husky to v9

* ⬆️ chore: migrate to husky 9

* 📝 docs: update docs

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: arvinxx <arvinx@foxmail.com>
2024-02-18 21:55:49 +08:00
semantic-release-bot 3be8eb1534 🔖 chore(release): v0.128.3 [skip ci]
### [Version&nbsp;0.128.3](https://github.com/lobehub/lobe-chat/compare/v0.128.2...v0.128.3)
<sup>Released on **2024-02-18**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor with chat docs site.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor with chat docs site, closes [#1309](https://github.com/lobehub/lobe-chat/issues/1309) ([c131fa6](https://github.com/lobehub/lobe-chat/commit/c131fa6))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-18 13:44:18 +00:00
arvinxx f440a00ff5 🔧 chore: update wiki sync 2024-02-18 21:41:23 +08:00
Arvin Xu c131fa68f0 ♻️ refactor: refactor with chat docs site (#1309)
* 📝 docs: add package.json

* 🔧 chore: update config

* 🔧 chore: update config

* 📝 docs: update docs

* 📝 docs: add en-US docs

* 📝 docs: update docs

* 📝 docs: fix docs url

* 🔧 chore: add docs rewrites

* 🔧 chore: add docs rewrites

* 🔧 chore: fix docs rewrites

* 💄 style: update docs link

* 🚚 chore: move to contributing docs

* 🔧 chore: update contributing ci workflow

* 💄 style: update docs link
2024-02-18 21:39:04 +08:00
Arvin Xu c831b978f9 📌 chore: pin vite and vitest to fix test (#1317)
* 📌 chore: pin vite to fix test

* 📌 chore: pin vite to fix test

* 📌 chore: pin vite to fix test
2024-02-18 17:06:03 +08:00
semantic-release-bot 9e0c05c136 🔖 chore(release): v0.128.2 [skip ci]
### [Version&nbsp;0.128.2](https://github.com/lobehub/lobe-chat/compare/v0.128.1...v0.128.2)
<sup>Released on **2024-02-15**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix agent avatar click wrong navigation.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix agent avatar click wrong navigation, closes [#1308](https://github.com/lobehub/lobe-chat/issues/1308) ([adc7bc1](https://github.com/lobehub/lobe-chat/commit/adc7bc1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-15 15:21:13 +00:00
Arvin Xu adc7bc1605 🐛 fix: fix agent avatar click wrong navigation (#1308) 2024-02-15 23:18:37 +08:00
semantic-release-bot 50f2d60912 🔖 chore(release): v0.128.1 [skip ci]
### [Version&nbsp;0.128.1](https://github.com/lobehub/lobe-chat/compare/v0.128.0...v0.128.1)
<sup>Released on **2024-02-15**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix auto lang switch.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix auto lang switch, closes [#1305](https://github.com/lobehub/lobe-chat/issues/1305) ([7a51329](https://github.com/lobehub/lobe-chat/commit/7a51329))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-15 01:45:41 +00:00
Arvin Xu 7a51329bc4 🐛 fix: fix auto lang switch (#1305) 2024-02-15 09:42:58 +08:00
semantic-release-bot c67c25f688 🔖 chore(release): v0.128.0 [skip ci]
## [Version&nbsp;0.128.0](https://github.com/lobehub/lobe-chat/compare/v0.127.2...v0.128.0)
<sup>Released on **2024-02-14**</sup>

####  Features

- **misc**: Support define default agent config with `DEFAULT_AGENT_CONFIG` ENV.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support define default agent config with `DEFAULT_AGENT_CONFIG` ENV, closes [#1291](https://github.com/lobehub/lobe-chat/issues/1291) ([c7c096e](https://github.com/lobehub/lobe-chat/commit/c7c096e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-14 17:11:26 +00:00
Arvin Xu c7c096e6c8 feat: Support define default agent config with DEFAULT_AGENT_CONFIG ENV (#1291)
*  feat: add parser

*  feat: add parser

*  feat: support DEFAULT_AGENT_CONFIG env

*  feat: add parser

* 📝 docs: add docs

* 🐛 fix: fix max token config
2024-02-15 01:08:44 +08:00
semantic-release-bot 6bf1bfa3ca 🔖 chore(release): v0.127.2 [skip ci]
### [Version&nbsp;0.127.2](https://github.com/lobehub/lobe-chat/compare/v0.127.1...v0.127.2)
<sup>Released on **2024-02-14**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the sidebar to fix first render state.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the sidebar to fix first render state, closes [#1301](https://github.com/lobehub/lobe-chat/issues/1301) ([c477491](https://github.com/lobehub/lobe-chat/commit/c477491))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-14 16:19:35 +00:00
Arvin Xu c477491fa4 ♻️ refactor: refactor the sidebar to fix first render state (#1301) 2024-02-15 00:16:44 +08:00
lobehubbot 95933827e7 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-14 08:33:29 +00:00
semantic-release-bot 7b201c5f08 🔖 chore(release): v0.127.1 [skip ci]
### [Version&nbsp;0.127.1](https://github.com/lobehub/lobe-chat/compare/v0.127.0...v0.127.1)
<sup>Released on **2024-02-14**</sup>

#### 💄 Styles

- **misc**: Improve settings tabs style and refactor the LLM setting page.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve settings tabs style and refactor the LLM setting page, closes [#1299](https://github.com/lobehub/lobe-chat/issues/1299) ([31f6f15](https://github.com/lobehub/lobe-chat/commit/31f6f15))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-14 08:32:56 +00:00
Arvin Xu 31f6f15ea4 💄 style: improve settings tabs style and refactor the LLM setting page (#1299)
*  test: add test for auth

* ♻️ refactor: refactor the LLM setting page

* 💄 style: improve settings tabs style

* ♻️ refactor: refactor the settings layout

* 🐛 fix: fix double click on iOS

* 🐛 fix: fix goback routing
2024-02-14 16:30:17 +08:00
semantic-release-bot 72ff40437a 🔖 chore(release): v0.127.0 [skip ci]
## [Version&nbsp;0.127.0](https://github.com/lobehub/lobe-chat/compare/v0.126.5...v0.127.0)
<sup>Released on **2024-02-13**</sup>

####  Features

- **llm**: Support Ollama AI Provider for local LLM.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **llm**: Support Ollama AI Provider for local LLM ([3b6f249](https://github.com/lobehub/lobe-chat/commit/3b6f249))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-13 16:21:26 +00:00
arvinxx 3b6f24934e feat(llm): support Ollama AI Provider for local LLM 2024-02-14 00:18:37 +08:00
Arvin Xu fbcfc96a8d feat(llm): support Ollama AI Provider (local LLM) (#1293)
*  feat(llm): support Ollama AI Provider (local llm)

* 🎨 refactor: improve code style

*  feat: add more ollama model

* 🌐 style: add locales

---------

Co-authored-by: Johnson <shijianyue47@gmail.com>
Co-authored-by: shijianyue <shijianyue@bytedance.com>
2024-02-14 00:01:32 +08:00
semantic-release-bot ff5d9aee9f 🔖 chore(release): v0.126.5 [skip ci]
### [Version&nbsp;0.126.5](https://github.com/lobehub/lobe-chat/compare/v0.126.4...v0.126.5)
<sup>Released on **2024-02-12**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor with the auth code.

#### 🐛 Bug Fixes

- **misc**: Fix middleware auth console error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor with the auth code ([8cee01f](https://github.com/lobehub/lobe-chat/commit/8cee01f))

#### What's fixed

* **misc**: Fix middleware auth console error ([ad3ade8](https://github.com/lobehub/lobe-chat/commit/ad3ade8))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-12 01:17:03 +00:00
Arvin Xu fc08478ba4 Merge pull request #1289 from lobehub/fix/auth
🐛 fix: fix auth in middleware
2024-02-12 09:14:28 +08:00
arvinxx 8cee01fc10 ♻️ refactor: refactor with the auth code 2024-02-11 22:08:01 +08:00
arvinxx ad3ade80ae 🐛 fix: fix middleware auth console error 2024-02-11 22:07:27 +08:00
lobehubbot 21c192d662 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-11 06:49:19 +00:00
semantic-release-bot 7582625fae 🔖 chore(release): v0.126.4 [skip ci]
### [Version&nbsp;0.126.4](https://github.com/lobehub/lobe-chat/compare/v0.126.3...v0.126.4)
<sup>Released on **2024-02-11**</sup>

#### ♻ Code Refactoring

- **misc**: Update Model provider request url.

#### 🐛 Bug Fixes

- **misc**: Fix auth error in console, fix token tag usage display.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Update Model provider request url ([b64acc0](https://github.com/lobehub/lobe-chat/commit/b64acc0))

#### What's fixed

* **misc**: Fix auth error in console ([8e7ee82](https://github.com/lobehub/lobe-chat/commit/8e7ee82))
* **misc**: Fix token tag usage display ([6e7134b](https://github.com/lobehub/lobe-chat/commit/6e7134b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-11 06:48:39 +00:00
Arvin Xu 6b7be077a2 Merge pull request #1286 from lobehub/fix/fix-bugs
🐛 fix: fix auth error in console and some other bugs
2024-02-11 14:46:01 +08:00
arvinxx b64acc0b84 ♻️ refactor: update Model provider request url 2024-02-11 14:38:58 +08:00
arvinxx 6e7134bf98 🐛 fix: fix token tag usage display 2024-02-11 14:28:17 +08:00
arvinxx 8e7ee8227c 🐛 fix: fix auth error in console 2024-02-11 14:28:17 +08:00
semantic-release-bot 6297ba6995 🔖 chore(release): v0.126.3 [skip ci]
### [Version&nbsp;0.126.3](https://github.com/lobehub/lobe-chat/compare/v0.126.2...v0.126.3)
<sup>Released on **2024-02-09**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix auth layout error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix auth layout error ([efd7d14](https://github.com/lobehub/lobe-chat/commit/efd7d14))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-09 09:14:02 +00:00
arvinxx efd7d14e09 🐛 fix: fix auth layout error 2024-02-09 17:10:31 +08:00
semantic-release-bot bfc8372e86 🔖 chore(release): v0.126.2 [skip ci]
### [Version&nbsp;0.126.2](https://github.com/lobehub/lobe-chat/compare/v0.126.1...v0.126.2)
<sup>Released on **2024-02-09**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix OAuth throws an error on Vercel deploy.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix OAuth throws an error on Vercel deploy, closes [#1278](https://github.com/lobehub/lobe-chat/issues/1278) [#1277](https://github.com/lobehub/lobe-chat/issues/1277) [#1274](https://github.com/lobehub/lobe-chat/issues/1274) ([81d2d76](https://github.com/lobehub/lobe-chat/commit/81d2d76))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-09 08:58:46 +00:00
Arvin Xu 81d2d76dda 🐛 fix: fix OAuth throws an error on Vercel deploy (#1278)
* 🐛 fix(oauth): fix OAuth throws an error on Vercel deploy (#1277)

* 🐛 fix(oauth): OAuth throws an error (#1274)

* 🐛 fix(oauth): "ikm" argument must be of type string or an instance of SecretKeyObject

* 📝 docs: Update Auth0 callback URLs in deployment docs

The documentation for both the English and Chinese versions of the
Authentication setup has been updated to include instructions on
configuring the Allowed Callback URLs for Auth0. This step is crucial
for ensuring that the authentication process works correctly after
deployment. The notes added emphasize the importance of keeping the
callback URLs consistent with the deployed service's URLs.

* 📝 docs(oauth): Fix wiki documents

* 🐛 fix: only add auth layout when enabled

---------

Co-authored-by: 小云丨Arale <30863298+CloudPassenger@users.noreply.github.com>
2024-02-09 16:55:55 +08:00
lobehubbot 9177f72013 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-09 08:33:32 +00:00
semantic-release-bot c5c3ac83c7 🔖 chore(release): v0.126.1 [skip ci]
### [Version&nbsp;0.126.1](https://github.com/lobehub/lobe-chat/compare/v0.126.0...v0.126.1)
<sup>Released on **2024-02-09**</sup>

#### 🐛 Bug Fixes

- **misc**: Add basePath to support subdirectory.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Add basePath to support subdirectory, closes [#1179](https://github.com/lobehub/lobe-chat/issues/1179) ([43e544a](https://github.com/lobehub/lobe-chat/commit/43e544a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-09 08:32:57 +00:00
Arvin Xu 43e544a354 🐛 fix: add basePath to support subdirectory (#1179)
* 🔧 chore: test the base path

* 🐛 fix: fix api base path

* 🐛 fix: fix api base path

* 🐛 fix: fix api base path

* 🐛 fix: fix image base path

* 🐛 fix: fix api base path

* 🐛 fix: fix image base path

* 🐛 fix: fix manifest.json

* 🐛 fix: fix manifest.json

*  test: fix test

* 🔧 chore: clean code

* 🔧 chore: clean code

* 📝 docs: update docs

* 🐛 fix: fix api base path

*  test: fix test

* 🐛 fix: fix image base path

* 🐛 fix: fix image base path
2024-02-09 16:30:25 +08:00
lobehubbot 105e1a8dfe 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-09 02:17:13 +00:00
semantic-release-bot b279a383bb 🔖 chore(release): v0.126.0 [skip ci]
## [Version&nbsp;0.126.0](https://github.com/lobehub/lobe-chat/compare/v0.125.0...v0.126.0)
<sup>Released on **2024-02-09**</sup>

####  Features

- **misc**: Support umami analytics.

#### 🐛 Bug Fixes

- **misc**: The back button on the chat setting page can correctly return to the configured Agent chat page.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support umami analytics, closes [#1267](https://github.com/lobehub/lobe-chat/issues/1267) ([da7beba](https://github.com/lobehub/lobe-chat/commit/da7beba))

#### What's fixed

* **misc**: The back button on the chat setting page can correctly return to the configured Agent chat page, closes [#1272](https://github.com/lobehub/lobe-chat/issues/1272) ([4cc1ad5](https://github.com/lobehub/lobe-chat/commit/4cc1ad5))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-09 02:16:36 +00:00
Bryan da7beba421 feat: Support umami analytics (#1267)
*  feat(analytics): support umami

* 📝 docs: add docs
2024-02-09 10:14:06 +08:00
Ryan 4cc1ad5496 🐛 fix: The back button on the chat setting page can correctly return to the configured Agent chat page (#1272) 2024-02-09 10:13:40 +08:00
lobehubbot ea305ee8cc 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-08 08:07:22 +00:00
semantic-release-bot a21992be73 🔖 chore(release): v0.125.0 [skip ci]
## [Version&nbsp;0.125.0](https://github.com/lobehub/lobe-chat/compare/v0.124.3...v0.125.0)
<sup>Released on **2024-02-08**</sup>

####  Features

- **misc**: Support login & session authentication via OAuth 2.0 (Auth0).

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support login & session authentication via OAuth 2.0 (Auth0), closes [#1143](https://github.com/lobehub/lobe-chat/issues/1143) ([0609690](https://github.com/lobehub/lobe-chat/commit/0609690))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-08 08:06:48 +00:00
小云丨Arale 060969098c feat: support login & session authentication via OAuth 2.0 (Auth0) (#1143)
*  feat: adding OAuth2 support

* 🐛 fix: translation for OAuth2

* ♻️ refactor: refactor OAuth 2.0

- clean up code under /api/openai
- update middleware.ts to use custom middleware
- clean up unnessary type definitions

* ♻️ refactor(config): Use server config to enable/disable OAuth 2.0

* 🐛 fix: Adapt OAuth 2.0 middleware to new authentication methods

* 📝 docs(config): Environment variables for Authentication Service Providers

* 📝 docs: Add authentication setup guides for LobeChat

docs: Add authentication setup guides for LobeChat
```

Added detailed documentation for setting up the authentication services in LobeChat, with a focus on integrating Auth0. This includes guides for creating an Auth0 application, adding users, and configuring environment variables. Advanced topics cover connecting to existing single sign-on services and setting up social logins. This effort enhances the platform's security and provides clear instructions for enterprise users on authentication procedures.

* 📝 docs: Add authentication integration guide for LobeChat

docs: Add authentication integration guide with Auth.js

Adds a comprehensive guide on integrating a new authentication provider
using Auth.js in both English and Chinese documentation. The guide
includes pre-requisites, step-by-step code integration, server
configuration updates, frontend changes, and environment variable setup.
```

The changes introduce a new guide in the documentation for integrating new authentication providers using Auth.js. The guide is provided in both English and Chinese, ensuring broad accessibility. It covers the necessary pre-requisites, detailed instructions for adding the core authentication code, updating server configuration, modifying frontend components, and setting up the required environment variables. This will aid developers in implementing authentication features using Auth.js in the LobeChat application.
2024-02-08 16:04:10 +08:00
lobehubbot b51d1aa2da 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-07 13:23:04 +00:00
semantic-release-bot 6bd0c2f677 🔖 chore(release): v0.124.3 [skip ci]
### [Version&nbsp;0.124.3](https://github.com/lobehub/lobe-chat/compare/v0.124.2...v0.124.3)
<sup>Released on **2024-02-07**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix use azure api key error.

#### 💄 Styles

- **settings**: Improve LLM connection checker style.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix use azure api key error, closes [#1263](https://github.com/lobehub/lobe-chat/issues/1263) ([4e08f63](https://github.com/lobehub/lobe-chat/commit/4e08f63))

#### Styles

* **settings**: Improve LLM connection checker style, closes [#1252](https://github.com/lobehub/lobe-chat/issues/1252) ([4905d9e](https://github.com/lobehub/lobe-chat/commit/4905d9e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-07 13:22:24 +00:00
Arvin Xu 4e08f6346c 🐛 fix: fix use azure api key error (#1263) 2024-02-07 21:19:46 +08:00
QuentinHsu 4905d9e8ad 💄 style(settings): improve LLM connection checker style (#1252)
* 💄 style(settings): improve LLM connection checker style

* 💄 style(settings): improve LLM connection checker style 2/n
2024-02-07 21:19:29 +08:00
semantic-release-bot c4263df1cf 🔖 chore(release): v0.124.2 [skip ci]
### [Version&nbsp;0.124.2](https://github.com/lobehub/lobe-chat/compare/v0.124.1...v0.124.2)
<sup>Released on **2024-02-06**</sup>

#### 💄 Styles

- **misc**: Add moonshot i18n.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add moonshot i18n, closes [#1251](https://github.com/lobehub/lobe-chat/issues/1251) ([4b6663b](https://github.com/lobehub/lobe-chat/commit/4b6663b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-06 08:39:21 +00:00
Arvin Xu 4b6663bf24 🌐 style: add moonshot i18n (#1251) 2024-02-06 16:36:33 +08:00
semantic-release-bot b57e473c79 🔖 chore(release): v0.124.1 [skip ci]
### [Version&nbsp;0.124.1](https://github.com/lobehub/lobe-chat/compare/v0.124.0...v0.124.1)
<sup>Released on **2024-02-06**</sup>

#### 💄 Styles

- **misc**: Improve direction UX.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve direction UX, closes [#1169](https://github.com/lobehub/lobe-chat/issues/1169) ([e3929dc](https://github.com/lobehub/lobe-chat/commit/e3929dc))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-06 08:19:15 +00:00
e3929dc2ff 🌐 style: improve direction UX (#1169) 2024-02-06 16:16:32 +08:00
semantic-release-bot b14d6af30e 🔖 chore(release): v0.124.0 [skip ci]
## [Version&nbsp;0.124.0](https://github.com/lobehub/lobe-chat/compare/v0.123.4...v0.124.0)
<sup>Released on **2024-02-06**</sup>

####  Features

- **misc**: Support Moonshot AI Provider.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support Moonshot AI Provider, closes [#1232](https://github.com/lobehub/lobe-chat/issues/1232) ([a6de202](https://github.com/lobehub/lobe-chat/commit/a6de202))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-06 08:06:37 +00:00
Arvin Xu a6de2028a9 feat: support Moonshot AI Provider (#1232)
*  feat: support moonshot

* 📝 docs: update documents

* 🎨 chore: clean code
2024-02-06 16:03:38 +08:00
semantic-release-bot 2b7b0adc4b 🔖 chore(release): v0.123.4 [skip ci]
### [Version&nbsp;0.123.4](https://github.com/lobehub/lobe-chat/compare/v0.123.3...v0.123.4)
<sup>Released on **2024-02-06**</sup>

#### 💄 Styles

- **misc**: Improve clear topic tips.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve clear topic tips, closes [#1247](https://github.com/lobehub/lobe-chat/issues/1247) ([2d133e9](https://github.com/lobehub/lobe-chat/commit/2d133e9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-06 07:34:50 +00:00
2d133e9cf1 💄 style: improve clear topic tips (#1247) 2024-02-06 15:32:05 +08:00
lobehubbot 7354096234 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-06 07:24:21 +00:00
semantic-release-bot cc598a867e 🔖 chore(release): v0.123.3 [skip ci]
### [Version&nbsp;0.123.3](https://github.com/lobehub/lobe-chat/compare/v0.123.2...v0.123.3)
<sup>Released on **2024-02-06**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix non-https `crypto.subtile` missing error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix non-https `crypto.subtile` missing error, closes [#1238](https://github.com/lobehub/lobe-chat/issues/1238) ([1750d0b](https://github.com/lobehub/lobe-chat/commit/1750d0b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-06 07:23:34 +00:00
Arvin Xu 1750d0bd95 🐛 fix: fix non-https crypto.subtile missing error (#1238)
* 🐛 fix: fix gpt-4 missing with custom model

* 🐛 fix: fix switch locale holdup

* 🎨 chore: clean code

* 🐛 fix: fix non-https crypto error

*  test: fix test
2024-02-06 15:20:57 +08:00
Arthals b8118a2094 📝 docs: add link to default model (#1233) 2024-02-06 10:03:59 +08:00
lobehubbot b1cb1b1299 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-06 01:00:04 +00:00
semantic-release-bot 08e1f0e50e 🔖 chore(release): v0.123.2 [skip ci]
### [Version&nbsp;0.123.2](https://github.com/lobehub/lobe-chat/compare/v0.123.1...v0.123.2)
<sup>Released on **2024-02-06**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix docker build.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix docker build, closes [#1231](https://github.com/lobehub/lobe-chat/issues/1231) ([e180722](https://github.com/lobehub/lobe-chat/commit/e180722))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-06 00:59:30 +00:00
Arvin Xu e180722add 🐛 fix: fix docker build (#1231)
* 💄 style: add file tag for model select

* 🐛 fix: fix docker build

* ♻️ refactor: clean code
2024-02-06 08:56:54 +08:00
lobehubbot 6fc3ae9bad 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-05 14:23:14 +00:00
semantic-release-bot 1fd90d670a 🔖 chore(release): v0.123.1 [skip ci]
### [Version&nbsp;0.123.1](https://github.com/lobehub/lobe-chat/compare/v0.123.0...v0.123.1)
<sup>Released on **2024-02-05**</sup>

#### 🐛 Bug Fixes

- **misc**: Improve auth control of plugin gateways, update dockerfile.

#### 💄 Styles

- **misc**: Add gpt-4-all feature flag.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Improve auth control of plugin gateways ([6354ad8](https://github.com/lobehub/lobe-chat/commit/6354ad8))
* **misc**: Update dockerfile ([e66aed3](https://github.com/lobehub/lobe-chat/commit/e66aed3))

#### Styles

* **misc**: Add gpt-4-all feature flag ([360b36c](https://github.com/lobehub/lobe-chat/commit/360b36c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-05 14:22:30 +00:00
Arvin Xu 2291571c35 Merge pull request #1229 from lobehub/fix/docker-deploy
🐛 fix: docker deploy and update deploy documents
2024-02-05 22:19:42 +08:00
arvinxx 360b36cc93 💄 style: add gpt-4-all feature flag 2024-02-05 21:58:32 +08:00
arvinxx 6131567c48 ⬆️ chore: upgrade ahooks 2024-02-05 20:24:41 +08:00
arvinxx 6354ad89f1 🐛 fix: improve auth control of plugin gateways 2024-02-05 20:18:25 +08:00
arvinxx 917b0fe217 📝 docs: update docs 2024-02-05 20:14:51 +08:00
arvinxx e66aed33c4 🐛 fix: update dockerfile 2024-02-05 20:10:25 +08:00
arvinxx 612fd19719 📝 docs: update deploy url to fix password protection 2024-02-05 20:07:14 +08:00
semantic-release-bot 31446a937c 🔖 chore(release): v0.123.0 [skip ci]
## [Version&nbsp;0.123.0](https://github.com/lobehub/lobe-chat/compare/v0.122.9...v0.123.0)
<sup>Released on **2024-02-05**</sup>

####  Features

- **misc**: Support Google / Zhipu / AWS Bedrock model providers.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support Google / Zhipu / AWS Bedrock model providers, closes [#1173](https://github.com/lobehub/lobe-chat/issues/1173) ([d5929f6](https://github.com/lobehub/lobe-chat/commit/d5929f6))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-05 05:02:24 +00:00
Arvin Xu d5929f6093 feat: support Google / Zhipu / AWS Bedrock model providers (#1173)
*  feat: support claude

*  feat: support google vision

*  feat: add proxy to provider

*  feat: add google config

*  feat: fix google error handle

*  feat: support bedrock error handle

* ♻️ refactor: refactor the auth with jwt

*  test: fix the openai  runtime test

* ♻️ refactor: refactor the settings config

*  feat: refactor the model select in agent setting

* 🎨 chore: improve model list

*  feat: support custom api Key form

* 🎨 chore: improve code

* ♻️ refactor: refactor the custom models

* 💄 style: improve model icon

*  feat: add google handle

* 🌐 style: add i18n

* 📝 docs: add env document about new providers

* 💄 style: improve plugin tag and model options
2024-02-05 12:59:48 +08:00
lobehubbot 81f3ad150a 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-05 02:57:25 +00:00
semantic-release-bot 2c7b3475f3 🔖 chore(release): v0.122.9 [skip ci]
### [Version&nbsp;0.122.9](https://github.com/lobehub/lobe-chat/compare/v0.122.8...v0.122.9)
<sup>Released on **2024-02-05**</sup>

#### 💄 Styles

- **settings**: Improve LLM connection checker style.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **settings**: Improve LLM connection checker style, closes [#1222](https://github.com/lobehub/lobe-chat/issues/1222) ([8c349a1](https://github.com/lobehub/lobe-chat/commit/8c349a1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-05 02:56:52 +00:00
Arvin Xu 8c349a1735 💄 style(settings): improve LLM connection checker style (#1222)
* 🚸 perf(check): improve user experience/usability
* 🚸 perf(check): adapt to mobile devices


Co-authored-by: QuentinHsu <xuquentinyang@gmail.com>
2024-02-05 10:54:19 +08:00
semantic-release-bot 70024890d0 🔖 chore(release): v0.122.8 [skip ci]
### [Version&nbsp;0.122.8](https://github.com/lobehub/lobe-chat/compare/v0.122.7...v0.122.8)
<sup>Released on **2024-02-03**</sup>

#### 💄 Styles

- **misc**: Allow user to add agent without redirection.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Allow user to add agent without redirection, closes [#1199](https://github.com/lobehub/lobe-chat/issues/1199) ([6577ca1](https://github.com/lobehub/lobe-chat/commit/6577ca1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-03 09:42:37 +00:00
Justin3go 6577ca1f00 💄 style: allow user to add agent without redirection (#1199)
*  feat: allow user to add agent without redirection

*  test: add test in action.ts if isSwitchSession is false

* 🔖 chore: add additional skeleton button for loading

* 🌐 style: add i18n

* 🔖 chore: Refactor agent creation and session handling in Header component
2024-02-03 17:40:06 +08:00
lobehubbot 2b720c2694 📝 docs(bot): Auto sync agents & plugin to readme 2024-02-02 16:27:10 +00:00
semantic-release-bot 0f64694fb6 🔖 chore(release): v0.122.7 [skip ci]
### [Version&nbsp;0.122.7](https://github.com/lobehub/lobe-chat/compare/v0.122.6...v0.122.7)
<sup>Released on **2024-02-02**</sup>

#### 💄 Styles

- **misc**: Update the gpt-4-1106-preview model to gpt-4-0125-preview.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Update the gpt-4-1106-preview model to gpt-4-0125-preview, closes [#1210](https://github.com/lobehub/lobe-chat/issues/1210) ([fe623e1](https://github.com/lobehub/lobe-chat/commit/fe623e1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-02-02 16:26:37 +00:00
cklogic fe623e1acb 💄 style: Update the gpt-4-1106-preview model to gpt-4-0125-preview (#1210) 2024-02-03 00:24:02 +08:00
lobehubbot 5d9cd735bc 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-31 11:35:03 +00:00
semantic-release-bot fbc4f7839f 🔖 chore(release): v0.122.6 [skip ci]
### [Version&nbsp;0.122.6](https://github.com/lobehub/lobe-chat/compare/v0.122.5...v0.122.6)
<sup>Released on **2024-01-31**</sup>

#### 🐛 Bug Fixes

- **check**: The state of connectivity can only be singular.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **check**: The state of connectivity can only be singular, closes [#1201](https://github.com/lobehub/lobe-chat/issues/1201) ([c412baf](https://github.com/lobehub/lobe-chat/commit/c412baf))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-31 11:34:30 +00:00
QuentinHsu c412baf73b 🐛 fix(check): the state of connectivity can only be singular (#1201) 2024-01-31 19:31:31 +08:00
lobehubbot 89eed24dc7 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-31 03:35:49 +00:00
semantic-release-bot f904230ee8 🔖 chore(release): v0.122.5 [skip ci]
### [Version&nbsp;0.122.5](https://github.com/lobehub/lobe-chat/compare/v0.122.4...v0.122.5)
<sup>Released on **2024-01-31**</sup>

#### 🐛 Bug Fixes

- **misc**: The plugin has a hallucination and gets stuck.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: The plugin has a hallucination and gets stuck, closes [#1191](https://github.com/lobehub/lobe-chat/issues/1191) ([0189759](https://github.com/lobehub/lobe-chat/commit/0189759))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-31 03:35:09 +00:00
mushan0x0 018975985b 🐛 fix: The plugin has a hallucination and gets stuck (#1191) 2024-01-31 11:32:40 +08:00
semantic-release-bot 36125f4f46 🔖 chore(release): v0.122.4 [skip ci]
### [Version&nbsp;0.122.4](https://github.com/lobehub/lobe-chat/compare/v0.122.3...v0.122.4)
<sup>Released on **2024-01-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix plugin gateway auth.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix plugin gateway auth, closes [#1195](https://github.com/lobehub/lobe-chat/issues/1195) ([2184167](https://github.com/lobehub/lobe-chat/commit/2184167))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-30 15:38:34 +00:00
Arvin Xu 2184167f09 🚑️ fix: fix plugin gateway auth (#1195)
* 🚑️ fix: fix plugin auth

* 💚 fix: fix build

* 🐛 fix: fix query of chat settings

* 🐛 fix: fix auth
2024-01-30 23:36:02 +08:00
semantic-release-bot 3ad7d63fb5 🔖 chore(release): v0.122.3 [skip ci]
### [Version&nbsp;0.122.3](https://github.com/lobehub/lobe-chat/compare/v0.122.2...v0.122.3)
<sup>Released on **2024-01-30**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the setting storage from localStorage to indexedDB.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the setting storage from localStorage to indexedDB, closes [#1180](https://github.com/lobehub/lobe-chat/issues/1180) ([615e796](https://github.com/lobehub/lobe-chat/commit/615e796))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-30 14:40:58 +00:00
Arvin Xu 615e796357 ♻️ refactor: refactor the setting storage from localStorage to indexedDB (#1180)
* 🚧 wip: add user schema

* ♻️ refactor: refactor the copy with new api

* ♻️ refactor: refactor a preference slice

* ♻️ refactor: refactor the settings store

*  test: fix test

* 🎨 chore: clean code

* 🎨 chore: clean code

* 🎨 chore: clean code

* 🎨 chore: clean code

* 🐛 fix: fix update default agent

* 🐛 fix: fix update default agent
2024-01-30 22:38:25 +08:00
Arthals b72f842232 📝 docs: update docker auto-update script (#1165)
* 📝 docs: update docker auto-update script

* 📝 docs: update envfile configuration way

* 🐛 fix: typo
2024-01-30 21:17:42 +08:00
lobehubbot d9d921cc9f 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-30 08:02:45 +00:00
semantic-release-bot ce908a5199 🔖 chore(release): v0.122.2 [skip ci]
### [Version&nbsp;0.122.2](https://github.com/lobehub/lobe-chat/compare/v0.122.1...v0.122.2)
<sup>Released on **2024-01-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix unexpected topic switch when favoriting topic.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix unexpected topic switch when favoriting topic, closes [#1186](https://github.com/lobehub/lobe-chat/issues/1186) ([ab4de13](https://github.com/lobehub/lobe-chat/commit/ab4de13))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-30 08:02:12 +00:00
Justin3go ab4de1345c 🐛 fix: fix unexpected topic switch when favoriting topic (#1186) 2024-01-30 15:59:45 +08:00
semantic-release-bot feeb589c85 🔖 chore(release): v0.122.1 [skip ci]
### [Version&nbsp;0.122.1](https://github.com/lobehub/lobe-chat/compare/v0.122.0...v0.122.1)
<sup>Released on **2024-01-29**</sup>

#### 💄 Styles

- **misc**: Fix antd tab width flicker when show function debug.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Fix antd tab width flicker when show function debug, closes [#1171](https://github.com/lobehub/lobe-chat/issues/1171) ([14e99d2](https://github.com/lobehub/lobe-chat/commit/14e99d2))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-29 13:25:52 +00:00
曹绿 14e99d2455 💄 style: fix antd tab width flicker when show function debug (#1171) 2024-01-29 21:23:16 +08:00
semantic-release-bot 688b8a7264 🔖 chore(release): v0.122.0 [skip ci]
## [Version&nbsp;0.122.0](https://github.com/lobehub/lobe-chat/compare/v0.121.4...v0.122.0)
<sup>Released on **2024-01-29**</sup>

####  Features

- **misc**: Add create agent action in group menu.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add create agent action in group menu, closes [#1177](https://github.com/lobehub/lobe-chat/issues/1177) ([17ec1eb](https://github.com/lobehub/lobe-chat/commit/17ec1eb))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-29 13:18:46 +00:00
Justin3go 17ec1eb7b7 feat: add create agent action in group menu (#1177)
*  feat: add createSession functionality in group menu

* 🔖 chore: Refactor Actions component in CollapseGroup directory
2024-01-29 21:16:18 +08:00
lobehubbot 86208bf22b 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-29 06:19:54 +00:00
semantic-release-bot 164bac6547 🔖 chore(release): v0.121.4 [skip ci]
### [Version&nbsp;0.121.4](https://github.com/lobehub/lobe-chat/compare/v0.121.3...v0.121.4)
<sup>Released on **2024-01-29**</sup>

#### 🐛 Bug Fixes

- **misc**: Pin ahooks to fix test ci and settings crash.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Pin ahooks to fix test ci and settings crash, closes [#1178](https://github.com/lobehub/lobe-chat/issues/1178) ([bc223a4](https://github.com/lobehub/lobe-chat/commit/bc223a4))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-29 06:19:15 +00:00
Arvin Xu bc223a4a77 🐛 fix: pin ahooks to fix test ci and settings crash (#1178) 2024-01-29 14:16:45 +08:00
CanisMinor c8756a6ff8 📝 docs: Update README.zh-CN.md 2024-01-29 11:14:29 +08:00
CanisMinor 02fe3eb569 📝 docs: Update README.md 2024-01-29 11:13:48 +08:00
lobehubbot 663c068dbc 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-28 09:36:07 +00:00
renovate[bot] af0ba29420 Update dependency jsdom to v24 (#1167)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-28 17:33:35 +08:00
Arvin Xu 519a08bc6f 📝 docs: update wiki (#1156)
* Update _Sidebar.md

* Update Home.md
2024-01-26 22:32:25 +08:00
lobehubbot 2925432aa0 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-26 13:24:11 +00:00
semantic-release-bot 14fadd0002 🔖 chore(release): v0.121.3 [skip ci]
### [Version&nbsp;0.121.3](https://github.com/lobehub/lobe-chat/compare/v0.121.2...v0.121.3)
<sup>Released on **2024-01-26**</sup>

#### 💄 Styles

- **misc**: Improve stop loading icon.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve stop loading icon, closes [#1154](https://github.com/lobehub/lobe-chat/issues/1154) ([6444fc2](https://github.com/lobehub/lobe-chat/commit/6444fc2))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-26 13:23:39 +00:00
Arvin Xu 6444fc2ce0 💄 style: improve stop loading icon (#1154)
* 💄 style: improve stop loading

* 💄 style: improve stop loading
2024-01-26 21:21:10 +08:00
semantic-release-bot 00c2bb56ea 🔖 chore(release): v0.121.2 [skip ci]
### [Version&nbsp;0.121.2](https://github.com/lobehub/lobe-chat/compare/v0.121.1...v0.121.2)
<sup>Released on **2024-01-25**</sup>

#### 💄 Styles

- **misc**: Remove centered prop from CreateGroupModal.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Remove centered prop from CreateGroupModal, closes [#1146](https://github.com/lobehub/lobe-chat/issues/1146) ([7b01676](https://github.com/lobehub/lobe-chat/commit/7b01676))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-25 02:52:31 +00:00
Justin3go 7b01676e37 💄 style: Remove centered prop from CreateGroupModal (#1146) 2024-01-25 10:49:59 +08:00
semantic-release-bot 5916b377bd 🔖 chore(release): v0.121.1 [skip ci]
### [Version&nbsp;0.121.1](https://github.com/lobehub/lobe-chat/compare/v0.121.0...v0.121.1)
<sup>Released on **2024-01-24**</sup>

#### 🐛 Bug Fixes

- **misc**: Automatically fill in the wrong password.

#### 💄 Styles

- **misc**: Fix  default plugins height unstabled when scrolling.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Automatically fill in the wrong password, closes [#1144](https://github.com/lobehub/lobe-chat/issues/1144) ([0159a1a](https://github.com/lobehub/lobe-chat/commit/0159a1a))

#### Styles

* **misc**: Fix  default plugins height unstabled when scrolling, closes [#1142](https://github.com/lobehub/lobe-chat/issues/1142) ([abed417](https://github.com/lobehub/lobe-chat/commit/abed417))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-24 16:17:59 +00:00
mushan0x0 abed4177e2 💄 style: fix default plugins height unstabled when scrolling (#1142)
* ️ perf: Add cache to render default plugins

* 🐛 fix: The debug panel cannot be closed
2024-01-25 00:15:29 +08:00
mushan0x0 0159a1adde 🐛 fix: Automatically fill in the wrong password (#1144) 2024-01-25 00:14:10 +08:00
lobehubbot f0761024f5 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-24 08:41:41 +00:00
semantic-release-bot 51a685ad80 🔖 chore(release): v0.121.0 [skip ci]
## [Version&nbsp;0.121.0](https://github.com/lobehub/lobe-chat/compare/v0.120.6...v0.121.0)
<sup>Released on **2024-01-24**</sup>

####  Features

- **misc**: Add session group manager.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add session group manager, closes [#1055](https://github.com/lobehub/lobe-chat/issues/1055) [#1045](https://github.com/lobehub/lobe-chat/issues/1045) [#1126](https://github.com/lobehub/lobe-chat/issues/1126) [#1120](https://github.com/lobehub/lobe-chat/issues/1120) ([e3281fc](https://github.com/lobehub/lobe-chat/commit/e3281fc))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-24 08:41:07 +00:00
CanisMinor e3281fc64b feat: add session group manager (#1055)
*  feat: implement custom session grouping (#1045)

*  feat: Add session group manager

*  test: update test

* ♻️ refactor: refactor session group with db mode (#1126)

* ♻️ refactor: refactor with db

* 🎨 chore: improve code

* 🔥 chore: clean code

* 🗃️ fix: add migration to new data structure

* 📝 docs: add a document of how to implement a complete feature (#1120)

* Create Database.zh-CN.md

* Update Database.zh-CN.md

* 📝 docs: update docs

* Update Database.zh-CN.md

*  test: add test for the database

*  test: add test for the database

*  test: update test

* 🐛 fix: fix remove session group bug

*  test: fix test

*  test: add test for common action

* 🎨 chore: clear console

* 🐛 fix: support clear all sessionGroups

*  test: add test for sessionService

* 🐛 fix: fix agent import

* 📝 docs: Update Feature-Development.zh-CN.md

* 🌐 style: add i18n

* 🚸 style: add manager for default group

---------

Co-authored-by: Justin3go <just@justin3go.com>
Co-authored-by: arvinxx <arvinx@foxmail.com>
2024-01-24 16:38:23 +08:00
CanisMinor 6276b25ab7 🔧 chore: Update 2_feature_request_cn.yml 2024-01-24 10:44:47 +08:00
lobehubbot 5e0e54efa3 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-23 12:47:38 +00:00
Arvin Xu df1e635df3 ⬆️ chore: upgrade bun version (#1133)
* ⬆️ chore: upgrade bun version

*  chore: add ajv-keywords
2024-01-23 20:45:12 +08:00
lobehubbot e4f6f1c048 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-22 10:07:57 +00:00
semantic-release-bot 43ba29b8c3 🔖 chore(release): v0.120.6 [skip ci]
### [Version&nbsp;0.120.6](https://github.com/lobehub/lobe-chat/compare/v0.120.5...v0.120.6)
<sup>Released on **2024-01-22**</sup>

#### 💄 Styles

- **misc**: Fix share image tags not align.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Fix share image tags not align, closes [#1047](https://github.com/lobehub/lobe-chat/issues/1047) ([28206b6](https://github.com/lobehub/lobe-chat/commit/28206b6))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-22 10:07:25 +00:00
Justin3go 28206b6304 💄 style: fix share image tags not align (#1047) 2024-01-22 18:04:41 +08:00
semantic-release-bot 5d611dc69f 🔖 chore(release): v0.120.5 [skip ci]
### [Version&nbsp;0.120.5](https://github.com/lobehub/lobe-chat/compare/v0.120.4...v0.120.5)
<sup>Released on **2024-01-21**</sup>

#### 💄 Styles

- **misc**: Update locale and add test for globalStore.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Update locale and add test for globalStore, closes [#1119](https://github.com/lobehub/lobe-chat/issues/1119) ([4545cf0](https://github.com/lobehub/lobe-chat/commit/4545cf0))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-21 14:20:39 +00:00
Arvin Xu 4545cf0c32 🌐 style: update locale and add test for globalStore (#1119)
* 🌐 style: update locale and add test

* 📱 style: improve mobile height using `dvh`

---------

Co-authored-by: canisminor1990 <i@canisminor.cc>
2024-01-21 22:17:59 +08:00
lobehubbot 37af4aa28d 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-21 12:55:49 +00:00
semantic-release-bot f752ca810d 🔖 chore(release): v0.120.4 [skip ci]
### [Version&nbsp;0.120.4](https://github.com/lobehub/lobe-chat/compare/v0.120.3...v0.120.4)
<sup>Released on **2024-01-21**</sup>

#### 🐛 Bug Fixes

- **misc**: Refactor url state management and fix some detail experience.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Refactor url state management and fix some detail experience, closes [#1117](https://github.com/lobehub/lobe-chat/issues/1117) ([a355d2c](https://github.com/lobehub/lobe-chat/commit/a355d2c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-21 12:55:05 +00:00
Arvin Xu a355d2cec3 🐛 fix: refactor url state management and fix some detail experience (#1117)
* 💄 chore: fix metadataBase warning

* 💄 style: improve discover icon

* ♻️ refactor: refactor url state management and remove persist hydration

* 🚚 refactor: refactor with better position

* 🎨 chore: improve code

* 🐛 fix: fix topicId cannot use null

* 🐛 fix: fix not rerender

* 🐛 fix: fix redirect replace

* 🐛 fix: fix not hide input after send

* ️ perf: prefetch more page
2024-01-21 20:52:25 +08:00
lobehubbot 79f2d75ef3 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-20 16:20:24 +00:00
Arvin Xu 342da47d50 🔨 chore: fix lint (#1109) 2024-01-21 00:17:40 +08:00
lobehubbot afc2e13d2a 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-19 15:38:51 +00:00
Arvin Xu dcda32989f 📝 docs: update development docs (#1104)
* Rename index.zh-CN.md to Intro.zh-CN.md

* Rename index.md to Intro.md

* Rename index.zh-CN.md to State-Management-Intro.zh-CN.md

* Rename index.md to State-Management-Intro.md

* Update _Sidebar.md

* Update Home.md
2024-01-19 23:36:08 +08:00
semantic-release-bot a0044812f5 🔖 chore(release): v0.120.3 [skip ci]
### [Version&nbsp;0.120.3](https://github.com/lobehub/lobe-chat/compare/v0.120.2...v0.120.3)
<sup>Released on **2024-01-19**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor antd i18n and improve locale order.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor antd i18n and improve locale order, closes [#1103](https://github.com/lobehub/lobe-chat/issues/1103) [#1083](https://github.com/lobehub/lobe-chat/issues/1083) ([c89f527](https://github.com/lobehub/lobe-chat/commit/c89f527))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-19 13:59:06 +00:00
Arvin Xu c89f527ef4 ♻️ refactor: refactor antd i18n and improve locale order (#1103)
* 🐛 fix: antd i18n miss error (#1083)

* 📝 docs(bot): Auto sync agents & plugin to readme

* 🐛 fix: antd i18n miss error

* 🐛 fix: update logic

* 🍻 chore: update

---------

Co-authored-by: lobehubbot <i@lobehub.com>

* 🐛 fix: fix antd locale fetch

* 🐛 fix: fix antd locale fetch

* 🐛 fix: fix antd locale fetch

---------

Co-authored-by: 红 <wxh1220@gmail.com>
Co-authored-by: lobehubbot <i@lobehub.com>
2024-01-19 21:56:20 +08:00
lobehubbot d89ebf3d38 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-19 12:39:45 +00:00
Arvin Xu 7a2facdc72 📝 docs: Update index.zh-CN.md (#1099)
* Update index.zh-CN.md

* ️ chore: improve dev compiler
2024-01-19 20:36:57 +08:00
CanisMinor 7253fd5122 📝 docs: Add text-to-image feat (#1089)
* 📝 docs: Add text-to-image feat

* 🔧 chore: Fix readmeWorkflow

* 📝 docs: Update readme

* 📝 docs: Update readme

* 🔧 chore: Replace ts-node, bun with tsx

* 📝 docs: Sync latest plugin list

* 📝 docs: Fix emoji

* 📝 docs: Update docs
2024-01-18 23:50:14 +08:00
lobehubbot f665a93b18 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-18 11:37:45 +00:00
5c2983dfca 💄 chore: improve font size settings (#1088)
* 💄 chore: improve font size settings

* chore: update
2024-01-18 19:34:52 +08:00
lobehubbot 3d72189da0 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-18 05:23:35 +00:00
CanisMinor 3068f112cd 📝 docs: Add codecov badege (#1086) 2024-01-18 13:20:39 +08:00
lobehubbot 7c7a88308f 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-17 16:05:34 +00:00
semantic-release-bot b000d9d217 🔖 chore(release): v0.120.2 [skip ci]
### [Version&nbsp;0.120.2](https://github.com/lobehub/lobe-chat/compare/v0.120.1...v0.120.2)
<sup>Released on **2024-01-17**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix setPluginMessage can not stop create ai message.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix setPluginMessage can not stop create ai message, closes [#1078](https://github.com/lobehub/lobe-chat/issues/1078) ([67de28d](https://github.com/lobehub/lobe-chat/commit/67de28d))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-17 16:04:56 +00:00
Arvin Xu 67de28dbc8 🐛 fix: fix setPluginMessage can not stop create ai message (#1078)
* 🐛 fix: fix setPluginMessage can not stop create ai message

* 🐛 fix: fix standalone plugin not valid plugin settings

*  test: add test for plugin slice

*  test: add test for toolSlice

*  test: update test

* 🎨 chore: clean code
2024-01-18 00:02:12 +08:00
semantic-release-bot 7bcb2e185a 🔖 chore(release): v0.120.1 [skip ci]
### [Version&nbsp;0.120.1](https://github.com/lobehub/lobe-chat/compare/v0.120.0...v0.120.1)
<sup>Released on **2024-01-16**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix list scrolling white screen on mobile.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix list scrolling white screen on mobile, closes [#1072](https://github.com/lobehub/lobe-chat/issues/1072) ([af10947](https://github.com/lobehub/lobe-chat/commit/af10947))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-16 13:20:44 +00:00
Arvin Xu af10947b0d 🐛 fix: fix list scrolling white screen on mobile (#1072)
* 🐛 fix: fix list overscan

* 🐛 fix: fix textarea too long

* 💚 ci: try to fix test ci

* 💚 ci: try to fix test ci
2024-01-16 21:17:58 +08:00
Arvin Xu 96ed6b9142 📝 docs: add more development docs (#1070)
* 📝 docs: add more development docs

* 📝 docs: add more development docs

* 📝 docs: update docs

* 📝 docs: update document

* 📝 docs: update documents

* 💚 ci: try to fix test ci

* 💚 ci: try to fix test ci
2024-01-16 20:57:44 +08:00
lobehubbot 1b93bfe243 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-16 05:01:43 +00:00
Arvin Xu ae99142e69 📝 docs: improve readme and wiki documents (#1066)
* 📝 docs: update OPENAI_PROXY_URL document

* 📝 docs: update document

* 📝 docs: update dev document

* 📝 docs: add common error for Deployment

* 📝 docs: update docs
2024-01-16 12:59:16 +08:00
lobehubbot 1c680c077e 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-15 16:30:39 +00:00
semantic-release-bot f6a93e5733 🔖 chore(release): v0.120.0 [skip ci]
## [Version&nbsp;0.120.0](https://github.com/lobehub/lobe-chat/compare/v0.119.13...v0.120.0)
<sup>Released on **2024-01-15**</sup>

####  Features

- **misc**: Adding Arabic Language Support.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Adding Arabic Language Support, closes [#1049](https://github.com/lobehub/lobe-chat/issues/1049) ([a325ef9](https://github.com/lobehub/lobe-chat/commit/a325ef9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-15 16:29:51 +00:00
Ayman Mustafa a325ef915d feat: adding Arabic Language Support (#1049)
* 🌐 feat(lang): Add Arabic language support

* 🌐 feat(lang): Add Arabic to LocaleOptions & fix RTL direction

* 🌐 feat(lang): Add Arabic to LocaleOptions & fix RTL direction

* 🎨 style(lang): Improve RTL support and use native Arabic label
2024-01-16 00:27:24 +08:00
renovate[bot] 260caa3cb7 Update dependency brotli-wasm to v2 (#1036) 2024-01-14 10:58:35 +08:00
lcxyhhxi 88a1b7bb3d Add sidebar tab switch on redirect (#1017)
* 📝 docs: update documents

* 🐛 fix: Add sidebar tab switch on redirect

---------

Co-authored-by: 李篡 <licuan@ainnovation.com>
2024-01-13 01:32:53 +08:00
lobehubbot 067f20e6d4 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-12 15:22:05 +00:00
Arvin Xu fe018961a1 📝 docs: add API Key guide in README for zh-CN (#1030) 2024-01-12 23:19:23 +08:00
Arvin Xu 0679c9b964 📝 docs: Update LICENSE (#1011)
* Update LICENSE

* Update package.json
2024-01-11 20:23:15 +08:00
lobehubbot cc401eb972 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-11 08:50:05 +00:00
Arvin Xu b5ded8f1e9 🔨 chore: lock @DuCanhGH/next-pwa to 10.1.0 to fix build (#1012) 2024-01-11 16:47:42 +08:00
semantic-release-bot 99025b7aa8 🔖 chore(release): v0.119.13 [skip ci]
### [Version&nbsp;0.119.13](https://github.com/lobehub/lobe-chat/compare/v0.119.12...v0.119.13)
<sup>Released on **2024-01-10**</sup>

#### 💄 Styles

- **misc**: Add delete and regenerate for function message.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add delete and regenerate for function message, closes [#992](https://github.com/lobehub/lobe-chat/issues/992) ([7f8c717](https://github.com/lobehub/lobe-chat/commit/7f8c717))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-10 04:34:43 +00:00
Arvin Xu 7f8c717afc 🚸 style: add delete and regenerate for function message (#992)
* 🚸 style: add delete and regenerate for function message

* 🐛 fix: fix plugin state update error

*  test: fix test
2024-01-10 12:32:18 +08:00
lobehubbot c0f1ca7701 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-09 10:03:45 +00:00
semantic-release-bot 1c3706538a 🔖 chore(release): v0.119.12 [skip ci]
### [Version&nbsp;0.119.12](https://github.com/lobehub/lobe-chat/compare/v0.119.11...v0.119.12)
<sup>Released on **2024-01-09**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix new line after sending messages with enter key.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix new line after sending messages with enter key, closes [#990](https://github.com/lobehub/lobe-chat/issues/990) ([e6ab019](https://github.com/lobehub/lobe-chat/commit/e6ab019))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-09 10:03:14 +00:00
Arvin Xu e6ab0196e2 🐛 fix: fix new line after sending messages with enter key (#990)
* 💄 style: fix topic bar empty when hide at first render

* 🐛 fix: having line breaks after sending messages

*  test: add test for preventDefault

*  test: add test for preventDefault
2024-01-09 18:00:49 +08:00
lobehubbot 05209a2309 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-09 06:31:36 +00:00
semantic-release-bot efb28378ef 🔖 chore(release): v0.119.11 [skip ci]
### [Version&nbsp;0.119.11](https://github.com/lobehub/lobe-chat/compare/v0.119.10...v0.119.11)
<sup>Released on **2024-01-09**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor ChatInput to support cmd+enter.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor ChatInput to support cmd+enter, closes [#983](https://github.com/lobehub/lobe-chat/issues/983) ([437a223](https://github.com/lobehub/lobe-chat/commit/437a223))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-09 06:31:04 +00:00
Arvin Xu 437a22364a ♻️ refactor: refactor ChatInput to support cmd+enter (#983)
* ♻️ refactor: refactor input area

* 🚸 style: support cmd+enter

* 🎨 chore: clean code

* 🌐 chore: add i18n

* 💄 style: improve button menu

*  test: add test for TextArea

* 🐛 fix: fix support with win control key

* 💄 style: improve window key display

* 🌐 chore: update i18n

*  test: fix test

* 💄 style: fix button min width

* 💄 style: fix textarea unnecessary box-shadow
2024-01-09 14:28:34 +08:00
semantic-release-bot 3776ff7680 🔖 chore(release): v0.119.10 [skip ci]
### [Version&nbsp;0.119.10](https://github.com/lobehub/lobe-chat/compare/v0.119.9...v0.119.10)
<sup>Released on **2024-01-08**</sup>

#### 🐛 Bug Fixes

- **misc**: Debug information cannot be selected.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Debug information cannot be selected, closes [#980](https://github.com/lobehub/lobe-chat/issues/980) ([f02612d](https://github.com/lobehub/lobe-chat/commit/f02612d))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-08 15:44:11 +00:00
mushan0x0 f02612d200 🐛 fix: debug information cannot be selected (#980) 2024-01-08 23:41:41 +08:00
semantic-release-bot 7a2eb5ec32 🔖 chore(release): v0.119.9 [skip ci]
### [Version&nbsp;0.119.9](https://github.com/lobehub/lobe-chat/compare/v0.119.8...v0.119.9)
<sup>Released on **2024-01-08**</sup>

#### 💄 Styles

- **misc**: Fix ChatInput fullscreen display not correct.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Fix ChatInput fullscreen display not correct, closes [#982](https://github.com/lobehub/lobe-chat/issues/982) ([e4012c4](https://github.com/lobehub/lobe-chat/commit/e4012c4))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-08 15:07:42 +00:00
Arvin Xu e4012c4f97 💄 style: fix ChatInput fullscreen display not correct (#982)
* 💄 style: fix fullscreen display not correct

* 💄 style: fix fullscreen display not correct
2024-01-08 23:05:25 +08:00
Arvin Xu 42c9a9eba1 👷 chore: update PR / issue template (#979)
* ⬆️ chore: upgrade pr / issue template

* 👷 chore: upgrade issue template
2024-01-08 12:31:26 +08:00
Arvin Xu b38b323950 ⬆️ chore: upgrade vitest (#978) 2024-01-08 11:26:53 +08:00
Arvin Xu 2cb16c1364 📝 docs: add common error document (#976)
* 📝 docs: add common error document

* 📝 docs: add common error document
2024-01-08 10:30:06 +08:00
semantic-release-bot 8c9303bb01 🔖 chore(release): v0.119.8 [skip ci]
### [Version&nbsp;0.119.8](https://github.com/lobehub/lobe-chat/compare/v0.119.7...v0.119.8)
<sup>Released on **2024-01-07**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix spotting tool call correctly.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix spotting tool call correctly, closes [#972](https://github.com/lobehub/lobe-chat/issues/972) ([216e700](https://github.com/lobehub/lobe-chat/commit/216e700))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-07 15:16:49 +00:00
Arvin Xu 216e700689 🐛 fix: fix spotting tool call correctly (#972)
* 🐛 fix: fix function call waiting too long

* 🔥 chore: remove unused code
2024-01-07 23:14:26 +08:00
semantic-release-bot c04e1a3196 🔖 chore(release): v0.119.7 [skip ci]
### [Version&nbsp;0.119.7](https://github.com/lobehub/lobe-chat/compare/v0.119.6...v0.119.7)
<sup>Released on **2024-01-07**</sup>

#### 💄 Styles

- **misc**: Improve share modal style.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve share modal style, closes [#965](https://github.com/lobehub/lobe-chat/issues/965) ([62c0573](https://github.com/lobehub/lobe-chat/commit/62c0573))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-07 05:39:37 +00:00
Arvin Xu 62c0573826 💄 style: improve share modal style (#965)
* 💄 style: improve share image modal style

* 💄 style: improve share image modal style
2024-01-07 13:37:05 +08:00
semantic-release-bot 0561b2cc3c 🔖 chore(release): v0.119.6 [skip ci]
### [Version&nbsp;0.119.6](https://github.com/lobehub/lobe-chat/compare/v0.119.5...v0.119.6)
<sup>Released on **2024-01-06**</sup>

#### 💄 Styles

- **misc**: Improve conversation style.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve conversation style, closes [#962](https://github.com/lobehub/lobe-chat/issues/962) ([b9cc862](https://github.com/lobehub/lobe-chat/commit/b9cc862))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-06 16:35:47 +00:00
Arvin Xu b9cc86296e 💄 style: improve conversation style (#962) 2024-01-07 00:33:32 +08:00
semantic-release-bot e195b09980 🔖 chore(release): v0.119.5 [skip ci]
### [Version&nbsp;0.119.5](https://github.com/lobehub/lobe-chat/compare/v0.119.4...v0.119.5)
<sup>Released on **2024-01-06**</sup>

#### 💄 Styles

- **misc**: Fix topic i18n.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Fix topic i18n, closes [#961](https://github.com/lobehub/lobe-chat/issues/961) ([4e9ebe2](https://github.com/lobehub/lobe-chat/commit/4e9ebe2))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-06 15:57:35 +00:00
Arvin Xu 4e9ebe2618 🌐 style: fix topic i18n (#961) 2024-01-06 23:55:17 +08:00
semantic-release-bot 3b773ccfca 🔖 chore(release): v0.119.4 [skip ci]
### [Version&nbsp;0.119.4](https://github.com/lobehub/lobe-chat/compare/v0.119.3...v0.119.4)
<sup>Released on **2024-01-06**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor to virtual list with react-virtuoso.

#### 🐛 Bug Fixes

- **misc**: Fix auto scroll error and BackBottom error.

#### 💄 Styles

- **misc**: Fix BackBottom zIndex, improve chat list on mobile, improve chat list scrolling to bottom at initial render, improve custom model input, improve topic scroll.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor to virtual list with react-virtuoso ([d6d63b2](https://github.com/lobehub/lobe-chat/commit/d6d63b2))

#### What's fixed

* **misc**: Fix auto scroll error and BackBottom error ([6100970](https://github.com/lobehub/lobe-chat/commit/6100970))

#### Styles

* **misc**: Fix BackBottom zIndex ([254cc54](https://github.com/lobehub/lobe-chat/commit/254cc54))
* **misc**: Improve chat list on mobile ([a894fc5](https://github.com/lobehub/lobe-chat/commit/a894fc5))
* **misc**: Improve chat list scrolling to bottom at initial render ([476304b](https://github.com/lobehub/lobe-chat/commit/476304b))
* **misc**: Improve custom model input ([1c4722f](https://github.com/lobehub/lobe-chat/commit/1c4722f))
* **misc**: Improve topic scroll ([8daf3ac](https://github.com/lobehub/lobe-chat/commit/8daf3ac))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-06 15:44:26 +00:00
Arvin Xu 1d63c53edd Merge pull request #941 from lobehub/refactor/Virtual-List
️ perf: refactor to virtual list to improve ux
2024-01-06 23:41:51 +08:00
arvinxx 254cc540ec 🚸 style: fix BackBottom zIndex 2024-01-06 23:32:18 +08:00
arvinxx 1c4722fe7e 🚸 style: improve custom model input 2024-01-06 23:08:22 +08:00
arvinxx 8daf3acfec 🚸 style: improve topic scroll 2024-01-06 23:08:22 +08:00
arvinxx a894fc5d08 📱 style: improve chat list on mobile 2024-01-06 23:08:22 +08:00
arvinxx 6100970ada 🐛 fix: fix auto scroll error and BackBottom error 2024-01-06 23:08:22 +08:00
arvinxx 0bfcb2f84d ️ perf: refactor the topic to virtualized 2024-01-06 23:08:22 +08:00
arvinxx 476304b00e 🚸 style: improve chat list scrolling to bottom at initial render 2024-01-06 23:08:20 +08:00
Arvin Xu 6b53970c84 🔨 chore: fix vercel build error (#960) 2024-01-06 22:48:44 +08:00
arvinxx d6d63b2cf7 ♻️ refactor: refactor to virtual list with react-virtuoso 2024-01-06 12:52:03 +08:00
lobehubbot 0279cb8438 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-06 04:31:40 +00:00
semantic-release-bot 4fa99db9a7 🔖 chore(release): v0.119.3 [skip ci]
### [Version&nbsp;0.119.3](https://github.com/lobehub/lobe-chat/compare/v0.119.2...v0.119.3)
<sup>Released on **2024-01-06**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix deploy error. Changed SquareAsterisk to AsteriskSquare.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix deploy error. Changed SquareAsterisk to AsteriskSquare, closes [#952](https://github.com/lobehub/lobe-chat/issues/952) ([61cbcf1](https://github.com/lobehub/lobe-chat/commit/61cbcf1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-06 04:31:09 +00:00
Ray Huang 61cbcf1453 🐛 fix: fix deploy error. Changed SquareAsterisk to AsteriskSquare (#952) 2024-01-06 12:28:51 +08:00
semantic-release-bot 9abb75e732 🔖 chore(release): v0.119.2 [skip ci]
### [Version&nbsp;0.119.2](https://github.com/lobehub/lobe-chat/compare/v0.119.1...v0.119.2)
<sup>Released on **2024-01-05**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix function call error with smooth animation.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix function call error with smooth animation, closes [#946](https://github.com/lobehub/lobe-chat/issues/946) ([7242aee](https://github.com/lobehub/lobe-chat/commit/7242aee))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-05 06:48:20 +00:00
Arvin Xu 7242aeea58 🐛 fix: fix function call error with smooth animation (#946) 2024-01-05 14:45:58 +08:00
lobehubbot 061ed42fa5 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-05 06:05:38 +00:00
semantic-release-bot a9686f00bd 🔖 chore(release): v0.119.1 [skip ci]
### [Version&nbsp;0.119.1](https://github.com/lobehub/lobe-chat/compare/v0.119.0...v0.119.1)
<sup>Released on **2024-01-05**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-05 06:04:58 +00:00
Arvin Xu 40d87c2767 ️ perf: support smooth message output (#945)
* ️ perf: improve smooth message output

*  test: add test for the fetch utils

* 📌 chore: pin `vitest` to fix test
2024-01-05 14:02:41 +08:00
孙茂胤 (Sun, Maoyin) d7d0c620cb Typo fix: correcting document file names and corresponding links (#942)
* Typo fix:  correcting document file names and corresponding links

* Correct link in document home page
2024-01-05 12:21:51 +08:00
renovate[bot] 569b652aff chore: update dependency @ducanh2912/next-pwa to v10 (#687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-04 20:20:10 +08:00
lobehubbot 584d8241b9 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-04 10:05:51 +00:00
semantic-release-bot 10b97ced0a 🔖 chore(release): v0.119.0 [skip ci]
## [Version&nbsp;0.119.0](https://github.com/lobehub/lobe-chat/compare/v0.118.10...v0.119.0)
<sup>Released on **2024-01-04**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the ChatList.

####  Features

- **misc**: Support auto rename topic, support delete and regenerate message, support duplicate session, support duplicate topic.

#### 🐛 Bug Fixes

- **misc**: Fix can't uninstall custom plugin in custom plugin modal.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the ChatList ([20f21de](https://github.com/lobehub/lobe-chat/commit/20f21de))

#### What's improved

* **misc**: Support auto rename topic ([4c5a345](https://github.com/lobehub/lobe-chat/commit/4c5a345))
* **misc**: Support delete and regenerate message ([a05be1c](https://github.com/lobehub/lobe-chat/commit/a05be1c))
* **misc**: Support duplicate session ([7a1e011](https://github.com/lobehub/lobe-chat/commit/7a1e011))
* **misc**: Support duplicate topic ([ecf3e5a](https://github.com/lobehub/lobe-chat/commit/ecf3e5a))

#### What's fixed

* **misc**: Fix can't uninstall custom plugin in custom plugin modal ([acae827](https://github.com/lobehub/lobe-chat/commit/acae827))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-04 10:05:09 +00:00
Arvin Xu 90dfa55f34 Merge pull request #934 from lobehub/feat/more-actions 2024-01-04 18:02:44 +08:00
arvinxx 7c34c8640f 📌 chore: pin react-hotkeys-hook 2024-01-04 17:55:36 +08:00
arvinxx 6f7a3ccb5c test: add test for the session action 2024-01-04 17:48:57 +08:00
arvinxx 52172d6431 🌐 chore: update locale 2024-01-04 17:08:53 +08:00
arvinxx 7a1e011eee feat: support duplicate session 2024-01-04 17:01:25 +08:00
arvinxx 53e75dd1da ️ perf: throttle version check to reduce request 2024-01-04 16:51:37 +08:00
arvinxx ecf3e5a537 feat: support duplicate topic 2024-01-04 16:51:37 +08:00
arvinxx 4c5a345e65 feat: support auto rename topic 2024-01-04 14:00:28 +08:00
arvinxx acae827bcb 🐛 fix: fix can't uninstall custom plugin in custom plugin modal 2024-01-04 13:43:06 +08:00
arvinxx a05be1cd4a feat: support delete and regenerate message 2024-01-04 13:42:11 +08:00
arvinxx d8f55d5b23 ️ perf: reduce rerender of ChatList 2024-01-04 13:27:25 +08:00
arvinxx 20f21de75a ♻️ refactor: refactor the ChatList 2024-01-04 13:26:21 +08:00
semantic-release-bot eb205763a8 🔖 chore(release): v0.118.10 [skip ci]
### [Version&nbsp;0.118.10](https://github.com/lobehub/lobe-chat/compare/v0.118.9...v0.118.10)
<sup>Released on **2024-01-03**</sup>

#### 🐛 Bug Fixes

- **misc**: Add chat defaultNS.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Add chat defaultNS, closes [#929](https://github.com/lobehub/lobe-chat/issues/929) ([94c2aa1](https://github.com/lobehub/lobe-chat/commit/94c2aa1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-03 14:41:20 +00:00
Arvin Xu 94c2aa131d 🐛 fix: add chat defaultNS (#929)
* 🐛 fix: add chat defaultNS

* 🌐 fix: add error locale

* 🌐 fix: add error locale
2024-01-03 22:38:55 +08:00
renovate[bot] 26086ca5f5 Update dependency react-i18next to v14 (#788)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-03 21:28:15 +08:00
semantic-release-bot 95265e007f 🔖 chore(release): v0.118.9 [skip ci]
### [Version&nbsp;0.118.9](https://github.com/lobehub/lobe-chat/compare/v0.118.8...v0.118.9)
<sup>Released on **2024-01-03**</sup>

#### 💄 Styles

- **misc**: Add leaving protect alert.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add leaving protect alert, closes [#927](https://github.com/lobehub/lobe-chat/issues/927) ([ea1d0c0](https://github.com/lobehub/lobe-chat/commit/ea1d0c0))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-03 13:15:56 +00:00
Arvin Xu ea1d0c01de 🚸 style: add leaving protect alert (#927)
* 🐛 fix: add unload safe

* 🚸 style: add leaving protect alert

* 🚸 style: add leaving protect alert

*  test: add test for the toggleChatLoading
2024-01-03 21:13:35 +08:00
Arvin Xu 2557501743 📝 docs: add auto add locale guide (#921) 2024-01-03 17:42:00 +08:00
semantic-release-bot b5df7c7954 🔖 chore(release): v0.118.8 [skip ci]
### [Version&nbsp;0.118.8](https://github.com/lobehub/lobe-chat/compare/v0.118.7...v0.118.8)
<sup>Released on **2024-01-03**</sup>

#### 💄 Styles

- **misc**: Add Vietnamese files and add the vi-VN option in the General Settings.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add Vietnamese files and add the vi-VN option in the General Settings, closes [#860](https://github.com/lobehub/lobe-chat/issues/860) ([c2e5606](https://github.com/lobehub/lobe-chat/commit/c2e5606))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-03 09:03:29 +00:00
Cong Le c2e560644b 🌐 style: Add Vietnamese files and add the vi-VN option in the General Settings (#860)
* 🔨 chore: Add vi-VN locale to language setting option

* 🔨 chore: Add all Vietnamese files for the UI

*  feat: add SpeedInsights and change local port to 4010

* 🔨 chore: remove SpeedInsight and revert local port number

* 🔨 chore: remove Vercel SpeedInsights package

* 🔨 chore: Update the vi-VN folder using i18nrc.js and add the missing string "downloading"
2024-01-03 17:00:57 +08:00
semantic-release-bot e801dbeb86 🔖 chore(release): v0.118.7 [skip ci]
### [Version&nbsp;0.118.7](https://github.com/lobehub/lobe-chat/compare/v0.118.6...v0.118.7)
<sup>Released on **2024-01-03**</sup>

#### 🐛 Bug Fixes

- **misc**: Desensitize openai base url in the error response.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Desensitize openai base url in the error response, closes [#918](https://github.com/lobehub/lobe-chat/issues/918) ([ab0aeb7](https://github.com/lobehub/lobe-chat/commit/ab0aeb7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-03 07:32:54 +00:00
Arvin Xu ab0aeb7e68 🐛 fix: desensitize openai base url in the error response (#918)
* 🐛 fix: desensitized openai base url

* 🎨 chore: improve code
2024-01-03 15:30:37 +08:00
semantic-release-bot d6b1dda7ec 🔖 chore(release): v0.118.6 [skip ci]
### [Version&nbsp;0.118.6](https://github.com/lobehub/lobe-chat/compare/v0.118.5...v0.118.6)
<sup>Released on **2024-01-03**</sup>

#### ♻ Code Refactoring

- **misc**: Migration the ChatList into Conversation.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Migration the ChatList into Conversation, closes [#916](https://github.com/lobehub/lobe-chat/issues/916) ([6ee3795](https://github.com/lobehub/lobe-chat/commit/6ee3795))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-03 05:44:36 +00:00
Arvin Xu 6ee379562b ♻️ refactor: migration the ChatList into Conversation (#916)
* ♻️ refactor: migration the ChatList into conversation

* ♻️ refactor: refactor chat list

* 🎨 chore: improve code

* 🚚 refactor: refactor with hooks
2024-01-03 13:42:11 +08:00
Arvin Xu a7e74d7124 test: add test for createHyperStorage middleware (#906) 2024-01-02 21:24:14 +08:00
semantic-release-bot 459139a92e 🔖 chore(release): v0.118.5 [skip ci]
### [Version&nbsp;0.118.5](https://github.com/lobehub/lobe-chat/compare/v0.118.4...v0.118.5)
<sup>Released on **2024-01-02**</sup>

#### 🐛 Bug Fixes

- **misc**: Mobile device return to the previous page error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Mobile device return to the previous page error, closes [#886](https://github.com/lobehub/lobe-chat/issues/886) ([99cfc0f](https://github.com/lobehub/lobe-chat/commit/99cfc0f))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-02 12:35:03 +00:00
mushan0x0 99cfc0f6ac 🐛 fix: mobile device return to the previous page error (#886) 2024-01-02 20:32:41 +08:00
lobehubbot a9193c0344 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-02 07:34:34 +00:00
lcxyhhxi 13f03cd165 📝 docs: update dev documents (#901)
Co-authored-by: 李篡 <licuan@ainnovation.com>
2024-01-02 15:32:18 +08:00
lobehubbot e2d08fe910 📝 docs(bot): Auto sync agents & plugin to readme 2024-01-02 07:01:57 +00:00
semantic-release-bot f22eee2dac 🔖 chore(release): v0.118.4 [skip ci]
### [Version&nbsp;0.118.4](https://github.com/lobehub/lobe-chat/compare/v0.118.3...v0.118.4)
<sup>Released on **2024-01-02**</sup>

#### 🐛 Bug Fixes

- **misc**: Update dalle identifier to fix unstable dalle function call.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Update dalle identifier to fix unstable dalle function call, closes [#896](https://github.com/lobehub/lobe-chat/issues/896) ([9d9ac32](https://github.com/lobehub/lobe-chat/commit/9d9ac32))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-02 07:01:18 +00:00
Arvin Xu 9d9ac327e2 🐛 fix: update dalle identifier to fix unstable dalle function call (#896)
* 🐛 fix: fix dalle identifier

*  test: fix test

* 💄 style: improve dalle3 avatar
2024-01-02 14:58:59 +08:00
semantic-release-bot cf70b35c67 🔖 chore(release): v0.118.3 [skip ci]
### [Version&nbsp;0.118.3](https://github.com/lobehub/lobe-chat/compare/v0.118.2...v0.118.3)
<sup>Released on **2024-01-01**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix parse error of tool calls at end.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix parse error of tool calls at end, closes [#893](https://github.com/lobehub/lobe-chat/issues/893) ([f369b6e](https://github.com/lobehub/lobe-chat/commit/f369b6e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2024-01-01 19:26:50 +00:00
Arvin Xu f369b6e349 🐛 fix: fix parse error of tool calls at end (#893)
* 🐛 fix: fix tool calls at end

*  test: add test for the function call
2024-01-02 03:24:32 +08:00
semantic-release-bot 12388e3664 🔖 chore(release): v0.118.2 [skip ci]
### [Version&nbsp;0.118.2](https://github.com/lobehub/lobe-chat/compare/v0.118.1...v0.118.2)
<sup>Released on **2023-12-31**</sup>

#### 🐛 Bug Fixes

- **misc**: Pin antd version to fix chat page crash.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Pin antd version to fix chat page crash, closes [#884](https://github.com/lobehub/lobe-chat/issues/884) ([31484ff](https://github.com/lobehub/lobe-chat/commit/31484ff))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-31 01:58:27 +00:00
Arvin Xu 31484ff398 📌 fix: pin antd version to fix chat page crash (#884) 2023-12-31 09:56:12 +08:00
semantic-release-bot c56ea1a9e4 🔖 chore(release): v0.118.1 [skip ci]
### [Version&nbsp;0.118.1](https://github.com/lobehub/lobe-chat/compare/v0.118.0...v0.118.1)
<sup>Released on **2023-12-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix dalle image download error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix dalle image download error, closes [#868](https://github.com/lobehub/lobe-chat/issues/868) ([5b6d11f](https://github.com/lobehub/lobe-chat/commit/5b6d11f))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-30 05:10:05 +00:00
mushan0x0 5b6d11ffc3 🐛 fix: fix dalle image download error (#868) 2023-12-30 13:07:30 +08:00
semantic-release-bot 226d9e98c9 🔖 chore(release): v0.118.0 [skip ci]
## [Version&nbsp;0.118.0](https://github.com/lobehub/lobe-chat/compare/v0.117.5...v0.118.0)
<sup>Released on **2023-12-29**</sup>

####  Features

- **misc**: Support markdown type plugin.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support markdown type plugin, closes [#865](https://github.com/lobehub/lobe-chat/issues/865) ([2791166](https://github.com/lobehub/lobe-chat/commit/2791166))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-29 12:33:04 +00:00
Arvin Xu 2791166265 feat: support markdown type plugin (#865)
*  feat: support markdown type plugin

* 🚨 ci: fix ci

* 🚨 ci: fix test

*  feat: support trigger AI message and create assistant message

*  test: add unit tests

* 📸 test: update test

* 📸 test: update test

* 💄 style: improve loading style
2023-12-29 20:30:51 +08:00
semantic-release-bot baaf06aad8 🔖 chore(release): v0.117.5 [skip ci]
### [Version&nbsp;0.117.5](https://github.com/lobehub/lobe-chat/compare/v0.117.4...v0.117.5)
<sup>Released on **2023-12-29**</sup>

#### 🐛 Bug Fixes

- **misc**: The input box is prone to losing focus.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: The input box is prone to losing focus, closes [#834](https://github.com/lobehub/lobe-chat/issues/834) ([26a42f6](https://github.com/lobehub/lobe-chat/commit/26a42f6))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-29 09:24:56 +00:00
mushan0x0 26a42f6269 🐛 fix: the input box is prone to losing focus (#834)
* 🐛 fix: the input box is prone to losing focus

*  test: Add `useAutoFocus` tests
2023-12-29 17:22:46 +08:00
semantic-release-bot a3176b90f3 🔖 chore(release): v0.117.4 [skip ci]
### [Version&nbsp;0.117.4](https://github.com/lobehub/lobe-chat/compare/v0.117.3...v0.117.4)
<sup>Released on **2023-12-28**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix messages not refresh when creating a new topic.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix messages not refresh when creating a new topic, closes [#856](https://github.com/lobehub/lobe-chat/issues/856) ([5e7985a](https://github.com/lobehub/lobe-chat/commit/5e7985a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-28 16:28:30 +00:00
Arvin Xu 5e7985acd1 🐛 fix: fix messages not refresh when creating a new topic (#856) 2023-12-29 00:26:08 +08:00
semantic-release-bot a8daca5b8a 🔖 chore(release): v0.117.3 [skip ci]
### [Version&nbsp;0.117.3](https://github.com/lobehub/lobe-chat/compare/v0.117.2...v0.117.3)
<sup>Released on **2023-12-28**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix tool calls at end, fix vision model max tokens, improve vision model checker.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix tool calls at end ([b0b615a](https://github.com/lobehub/lobe-chat/commit/b0b615a))
* **misc**: Fix vision model max tokens ([8b704a0](https://github.com/lobehub/lobe-chat/commit/8b704a0))
* **misc**: Improve vision model checker ([da7d177](https://github.com/lobehub/lobe-chat/commit/da7d177))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-28 15:48:01 +00:00
Arvin Xu cdecbfd305 Merge pull request #854 from lobehub/fix/vision-model
🐛 fix: fix vision model relative bugs
2023-12-28 23:45:35 +08:00
arvinxx da7d177563 🐛 fix: improve vision model checker 2023-12-28 23:38:24 +08:00
arvinxx b0b615affe 🐛 fix: fix tool calls at end 2023-12-28 23:31:28 +08:00
arvinxx 8b704a04f5 🐛 fix: fix vision model max tokens 2023-12-28 23:16:44 +08:00
semantic-release-bot 6df51e26e4 🔖 chore(release): v0.117.2 [skip ci]
### [Version&nbsp;0.117.2](https://github.com/lobehub/lobe-chat/compare/v0.117.1...v0.117.2)
<sup>Released on **2023-12-28**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix market locale missing.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix market locale missing, closes [#851](https://github.com/lobehub/lobe-chat/issues/851) ([e23ec66](https://github.com/lobehub/lobe-chat/commit/e23ec66))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-28 15:01:59 +00:00
Arvin Xu e23ec66681 🐛 fix: fix market locale missing (#851)
* 🐛 fix: fix market locale problem

*  test: add test for the AgentMarket

*  test: add test for the PluginStore
2023-12-28 22:59:47 +08:00
Arvin Xu 24ed73696b 📝 docs: fix plugin settings env docs (#850) 2023-12-28 21:45:20 +08:00
lobehubbot 516c7711a6 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-27 15:49:42 +00:00
semantic-release-bot 2b36cdf991 🔖 chore(release): v0.117.1 [skip ci]
### [Version&nbsp;0.117.1](https://github.com/lobehub/lobe-chat/compare/v0.117.0...v0.117.1)
<sup>Released on **2023-12-27**</sup>

#### 💄 Styles

- **misc**: Add image download functionality to DALL·E render component.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add image download functionality to DALL·E render component, closes [#778](https://github.com/lobehub/lobe-chat/issues/778) ([31b8047](https://github.com/lobehub/lobe-chat/commit/31b8047))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-27 15:49:11 +00:00
Justin3go 31b8047d7d style: add image download functionality to DALL·E render component (#778) 2023-12-27 23:47:02 +08:00
arvinxx 10765eb038 📝 docs: update documents [skip ci] 2023-12-27 21:08:39 +08:00
arvinxx 1c8c93f1c8 📝 docs: update documents [skip ci] 2023-12-27 20:47:57 +08:00
lobehubbot a48b1fcdc6 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-27 12:46:04 +00:00
semantic-release-bot 01bdcb776d 🔖 chore(release): v0.117.0 [skip ci]
## [Version&nbsp;0.117.0](https://github.com/lobehub/lobe-chat/compare/v0.116.5...v0.117.0)
<sup>Released on **2023-12-27**</sup>

####  Features

- **misc**: Support plugin settings env.

#### 🐛 Bug Fixes

- **misc**: Improve topic search experience.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support plugin settings env, closes [#821](https://github.com/lobehub/lobe-chat/issues/821) ([efd9dc9](https://github.com/lobehub/lobe-chat/commit/efd9dc9))

#### What's fixed

* **misc**: Improve topic search experience, closes [#828](https://github.com/lobehub/lobe-chat/issues/828) ([ad55f1c](https://github.com/lobehub/lobe-chat/commit/ad55f1c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-27 12:45:23 +00:00
Arvin Xu efd9dc9df2 feat: support plugin settings env (#821)
*  feat: support plugin settings env

* 📝 docs: add plugin settings document
2023-12-27 20:43:03 +08:00
ad55f1c4a8 🚸 fix: improve topic search experience (#828) 2023-12-27 20:41:20 +08:00
semantic-release-bot 4717741880 🔖 chore(release): v0.116.5 [skip ci]
### [Version&nbsp;0.116.5](https://github.com/lobehub/lobe-chat/compare/v0.116.4...v0.116.5)
<sup>Released on **2023-12-27**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix input box losing focus after sending a message on the desktop.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix input box losing focus after sending a message on the desktop, closes [#830](https://github.com/lobehub/lobe-chat/issues/830) ([d491af9](https://github.com/lobehub/lobe-chat/commit/d491af9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-27 12:21:24 +00:00
mushan0x0 d491af9834 🐛 fix: fix input box losing focus after sending a message on the desktop (#830) 2023-12-27 20:19:15 +08:00
semantic-release-bot 749292105b 🔖 chore(release): v0.116.4 [skip ci]
### [Version&nbsp;0.116.4](https://github.com/lobehub/lobe-chat/compare/v0.116.3...v0.116.4)
<sup>Released on **2023-12-26**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix ShareModal.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix ShareModal ([4592515](https://github.com/lobehub/lobe-chat/commit/4592515))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-26 17:11:48 +00:00
CanisMinor 4592515004 🐛 fix: Fix ShareModal 2023-12-27 01:09:44 +08:00
semantic-release-bot 1d0481bc79 🔖 chore(release): v0.116.3 [skip ci]
### [Version&nbsp;0.116.3](https://github.com/lobehub/lobe-chat/compare/v0.116.2...v0.116.3)
<sup>Released on **2023-12-26**</sup>

#### 💄 Styles

- **misc**: Fix typo.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Fix typo ([9d329a9](https://github.com/lobehub/lobe-chat/commit/9d329a9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-26 16:24:22 +00:00
canisminor1990 9d329a9ad1 💄 style: Fix typo 2023-12-27 00:20:12 +08:00
semantic-release-bot 307b95b9a5 🔖 chore(release): v0.116.2 [skip ci]
### [Version&nbsp;0.116.2](https://github.com/lobehub/lobe-chat/compare/v0.116.1...v0.116.2)
<sup>Released on **2023-12-26**</sup>

#### 💄 Styles

- **misc**: Update Modal style.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Update Modal style ([ac7d309](https://github.com/lobehub/lobe-chat/commit/ac7d309))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-26 15:35:08 +00:00
canisminor1990 a9352874d8 👷 ci: Fix type in ShareModal 2023-12-26 23:31:14 +08:00
canisminor1990 ac7d309854 💄 style: Update Modal style 2023-12-26 23:24:46 +08:00
semantic-release-bot eefaa3940f 🔖 chore(release): v0.116.1 [skip ci]
### [Version&nbsp;0.116.1](https://github.com/lobehub/lobe-chat/compare/v0.116.0...v0.116.1)
<sup>Released on **2023-12-26**</sup>

#### 💄 Styles

- **misc**: Support slider and select plugin setting render.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Support slider and select plugin setting render, closes [#819](https://github.com/lobehub/lobe-chat/issues/819) ([3190b44](https://github.com/lobehub/lobe-chat/commit/3190b44))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-26 14:55:02 +00:00
Arvin Xu 3190b44bfb 💄 style: support slider and select plugin setting render (#819) 2023-12-26 22:52:55 +08:00
Vijay 40feaa8a60 📝 docs: add LinkedIn badge on share tab (#817) 2023-12-26 22:29:01 +08:00
semantic-release-bot e2d561e14b 🔖 chore(release): v0.116.0 [skip ci]
## [Version&nbsp;0.116.0](https://github.com/lobehub/lobe-chat/compare/v0.115.13...v0.116.0)
<sup>Released on **2023-12-26**</sup>

####  Features

- **misc**: Support OpenAI tool calls.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support OpenAI tool calls ([9681fdc](https://github.com/lobehub/lobe-chat/commit/9681fdc))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-26 13:28:05 +00:00
arvinxx 9681fdc220 feat: support OpenAI tool calls 2023-12-26 21:25:40 +08:00
Arvin Xu 74249a2ab4 feat: support OpenAI tool calls (#776) 2023-12-26 21:10:15 +08:00
lobehubbot e265540d93 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-26 12:42:53 +00:00
semantic-release-bot 0e4980838b 🔖 chore(release): v0.115.13 [skip ci]
### [Version&nbsp;0.115.13](https://github.com/lobehub/lobe-chat/compare/v0.115.12...v0.115.13)
<sup>Released on **2023-12-26**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix remove tts and translate not working.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix remove tts and translate not working, closes [#818](https://github.com/lobehub/lobe-chat/issues/818) ([4a275e9](https://github.com/lobehub/lobe-chat/commit/4a275e9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-26 12:42:17 +00:00
Arvin Xu 4a275e9dc7 🐛 fix: fix remove tts and translate not working (#818)
* ♻️ refactor: clean message service methods

* 🐛 fix: fix remove tts and translate not working
2023-12-26 20:39:55 +08:00
lobehubbot 6ec425b2cb 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-26 02:15:02 +00:00
Jai707 2df8896cf9 Mastodon option in share tab (#809)
* added mastodon share button

* added mastodon share button
2023-12-26 10:12:56 +08:00
semantic-release-bot 92b4efe87f 🔖 chore(release): v0.115.12 [skip ci]
### [Version&nbsp;0.115.12](https://github.com/lobehub/lobe-chat/compare/v0.115.11...v0.115.12)
<sup>Released on **2023-12-25**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix active setting tab after click agent setting button.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix active setting tab after click agent setting button ([c480fa9](https://github.com/lobehub/lobe-chat/commit/c480fa9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-25 14:38:27 +00:00
canisminor1990 c480fa97aa 🐛 fix: Fix active setting tab after click agent setting button 2023-12-25 22:34:58 +08:00
semantic-release-bot dc5389239b 🔖 chore(release): v0.115.11 [skip ci]
### [Version&nbsp;0.115.11](https://github.com/lobehub/lobe-chat/compare/v0.115.10...v0.115.11)
<sup>Released on **2023-12-25**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix agent system role modal scrolling when content is too long.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix agent system role modal scrolling when content is too long, closes [#801](https://github.com/lobehub/lobe-chat/issues/801) ([f482a80](https://github.com/lobehub/lobe-chat/commit/f482a80))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-25 14:06:18 +00:00
Justin3go f482a80238 🐛 fix: fix agent system role modal scrolling when content is too long (#801) 2023-12-25 22:04:10 +08:00
lobehubbot 5986374436 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-25 13:37:23 +00:00
semantic-release-bot ca00f07853 🔖 chore(release): v0.115.10 [skip ci]
### [Version&nbsp;0.115.10](https://github.com/lobehub/lobe-chat/compare/v0.115.9...v0.115.10)
<sup>Released on **2023-12-25**</sup>

#### 💄 Styles

- **misc**: Fix some style problem.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Fix some style problem ([447c006](https://github.com/lobehub/lobe-chat/commit/447c006))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-25 13:36:55 +00:00
canisminor1990 447c006e01 💄 style: Fix some style problem 2023-12-25 21:32:33 +08:00
semantic-release-bot dc7642d8de 🔖 chore(release): v0.115.9 [skip ci]
### [Version&nbsp;0.115.9](https://github.com/lobehub/lobe-chat/compare/v0.115.8...v0.115.9)
<sup>Released on **2023-12-24**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix `PLUGINS_INDEX_URL` not working, fix a translation error in Traditional Chinese.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix `PLUGINS_INDEX_URL` not working, closes [#793](https://github.com/lobehub/lobe-chat/issues/793) ([152913e](https://github.com/lobehub/lobe-chat/commit/152913e))
* **misc**: Fix a translation error in Traditional Chinese, closes [#789](https://github.com/lobehub/lobe-chat/issues/789) ([80c02ee](https://github.com/lobehub/lobe-chat/commit/80c02ee))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-24 10:09:33 +00:00
Arvin Xu 152913e29d 🐛 fix: fix PLUGINS_INDEX_URL not working (#793) 2023-12-24 18:07:07 +08:00
linzjian666 80c02ee5c1 🐛 fix: fix a translation error in Traditional Chinese (#789) 2023-12-24 18:06:40 +08:00
semantic-release-bot 3969a21791 🔖 chore(release): v0.115.8 [skip ci]
### [Version&nbsp;0.115.8](https://github.com/lobehub/lobe-chat/compare/v0.115.7...v0.115.8)
<sup>Released on **2023-12-24**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix CUSTOM_MODEL `-` operator not working.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix CUSTOM_MODEL `-` operator not working, closes [#791](https://github.com/lobehub/lobe-chat/issues/791) ([26b968f](https://github.com/lobehub/lobe-chat/commit/26b968f))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-24 09:23:13 +00:00
Arvin Xu 26b968f0bd 🐛 fix: fix CUSTOM_MODEL - operator not working (#791) 2023-12-24 17:21:05 +08:00
lobehubbot d5e60f31f8 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-23 16:38:23 +00:00
semantic-release-bot ecade19d05 🔖 chore(release): v0.115.7 [skip ci]
### [Version&nbsp;0.115.7](https://github.com/lobehub/lobe-chat/compare/v0.115.6...v0.115.7)
<sup>Released on **2023-12-23**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix auto scrolling when generating message.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix auto scrolling when generating message, closes [#785](https://github.com/lobehub/lobe-chat/issues/785) ([1a236e6](https://github.com/lobehub/lobe-chat/commit/1a236e6))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-23 16:37:49 +00:00
Arvin Xu 1a236e6325 🐛 fix: fix auto scrolling when generating message (#785) 2023-12-24 00:35:27 +08:00
semantic-release-bot 0268262c93 🔖 chore(release): v0.115.6 [skip ci]
### [Version&nbsp;0.115.6](https://github.com/lobehub/lobe-chat/compare/v0.115.5...v0.115.6)
<sup>Released on **2023-12-23**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix maxTokens params still work when disable enableMaxTokens.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix maxTokens params still work when disable enableMaxTokens, closes [#779](https://github.com/lobehub/lobe-chat/issues/779) ([20956ea](https://github.com/lobehub/lobe-chat/commit/20956ea))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-23 10:33:21 +00:00
Arvin Xu 20956ea6bb 🐛 fix: fix maxTokens params still work when disable enableMaxTokens (#779)
* 🐛 fix: fix max tokens

*  test: update test

* 🐛 fix: fix max tokens
2023-12-23 18:31:19 +08:00
semantic-release-bot f044552df3 🔖 chore(release): v0.115.5 [skip ci]
### [Version&nbsp;0.115.5](https://github.com/lobehub/lobe-chat/compare/v0.115.4...v0.115.5)
<sup>Released on **2023-12-23**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix image display error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix image display error, closes [#777](https://github.com/lobehub/lobe-chat/issues/777) ([08659d6](https://github.com/lobehub/lobe-chat/commit/08659d6))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-23 10:05:07 +00:00
Arvin Xu 08659d605f 🐛 fix: fix image display error (#777) 2023-12-23 18:02:59 +08:00
semantic-release-bot ab99e3fd84 🔖 chore(release): v0.115.4 [skip ci]
### [Version&nbsp;0.115.4](https://github.com/lobehub/lobe-chat/compare/v0.115.3...v0.115.4)
<sup>Released on **2023-12-23**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the ChatMessage type.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the ChatMessage type ([40375bd](https://github.com/lobehub/lobe-chat/commit/40375bd))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-23 09:47:00 +00:00
arvinxx 40375bd058 ♻️ refactor: refactor the ChatMessage type 2023-12-23 17:44:11 +08:00
semantic-release-bot 043bd34e34 🔖 chore(release): v0.115.3 [skip ci]
### [Version&nbsp;0.115.3](https://github.com/lobehub/lobe-chat/compare/v0.115.2...v0.115.3)
<sup>Released on **2023-12-23**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor and clean global store and chat store.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor and clean global store and chat store, closes [#774](https://github.com/lobehub/lobe-chat/issues/774) ([6120042](https://github.com/lobehub/lobe-chat/commit/6120042))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-23 09:36:09 +00:00
Arvin Xu 6120042aee ♻️ refactor: refactor and clean global store and chat store (#774)
* ♻️ refactor: refactor the globalStore implement and usage

* 🔥 refactor: clean deprecated code

* ♻️ refactor: refactor the chat store to slice mode
2023-12-23 17:33:59 +08:00
semantic-release-bot 03490f9791 🔖 chore(release): v0.115.2 [skip ci]
### [Version&nbsp;0.115.2](https://github.com/lobehub/lobe-chat/compare/v0.115.1...v0.115.2)
<sup>Released on **2023-12-23**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix envs like `CUSTOM_MODELS` don't work with docker deployment.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix envs like `CUSTOM_MODELS` don't work with docker deployment, closes [#773](https://github.com/lobehub/lobe-chat/issues/773) ([54dc18b](https://github.com/lobehub/lobe-chat/commit/54dc18b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-23 08:13:26 +00:00
Arvin Xu 54dc18b92f 🐛 fix: fix envs like CUSTOM_MODELS don't work with docker deployment (#773)
* ♻️ refactor: refactor the FileList

* 🐛 fix: fix agent market index not work with docker

* 🐛 fix: fix CUSTOM_MODEL don't work with docker deployment

*  test: add test

* 📝 docs: update docs
2023-12-23 16:11:17 +08:00
semantic-release-bot 75c1126b61 🔖 chore(release): v0.115.1 [skip ci]
### [Version&nbsp;0.115.1](https://github.com/lobehub/lobe-chat/compare/v0.115.0...v0.115.1)
<sup>Released on **2023-12-22**</sup>

#### 💄 Styles

- **misc**: Lock ui version to fix setting form style.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Lock ui version to fix setting form style ([6cdf548](https://github.com/lobehub/lobe-chat/commit/6cdf548))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-22 15:53:57 +00:00
arvinxx 6cdf54874e 💄 style: lock ui version to fix setting form style 2023-12-22 23:51:32 +08:00
semantic-release-bot b4f76b8b3a 🔖 chore(release): v0.115.0 [skip ci]
## [Version&nbsp;0.115.0](https://github.com/lobehub/lobe-chat/compare/v0.114.9...v0.115.0)
<sup>Released on **2023-12-22**</sup>

####  Features

- **misc**: Support Dall·E 3.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support Dall·E 3, closes [#697](https://github.com/lobehub/lobe-chat/issues/697) ([e39d199](https://github.com/lobehub/lobe-chat/commit/e39d199))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-22 14:25:48 +00:00
Arvin Xu e39d199398 feat: support Dall·E 3 (#697)
*  feat: add dalle image generation api

*  feat: support to generate images with dalle3

*  test: update test for the tool

* 🌐 docs: update i18n

* 💄 style: improve style

* 🚸 style: improve image generate process
2023-12-22 22:23:30 +08:00
semantic-release-bot 9ad46744fb 🔖 chore(release): v0.114.9 [skip ci]
### [Version&nbsp;0.114.9](https://github.com/lobehub/lobe-chat/compare/v0.114.8...v0.114.9)
<sup>Released on **2023-12-22**</sup>

#### 💄 Styles

- **misc**: Support it-IT nl-NL and pl-PL locales.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Support it-IT nl-NL and pl-PL locales, closes [#759](https://github.com/lobehub/lobe-chat/issues/759) ([e49817c](https://github.com/lobehub/lobe-chat/commit/e49817c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-22 08:30:39 +00:00
Arvin Xu e49817ceb8 💄 style: support it-IT nl-NL and pl-PL locales (#759) 2023-12-22 16:28:22 +08:00
semantic-release-bot 3155d87df6 🔖 chore(release): v0.114.8 [skip ci]
### [Version&nbsp;0.114.8](https://github.com/lobehub/lobe-chat/compare/v0.114.7...v0.114.8)
<sup>Released on **2023-12-22**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-22 07:01:26 +00:00
Arvin Xu 2e295b2e42 ️ perf: use dynamic locale to reduce bundle size (#752)
* ️ perf: refactor to use dynamic locale

* ️ perf: refactor to use dynamic locale

* ♻️ refactor: refactor the locale code
2023-12-22 14:59:19 +08:00
semantic-release-bot b87c90c5b9 🔖 chore(release): v0.114.7 [skip ci]
### [Version&nbsp;0.114.7](https://github.com/lobehub/lobe-chat/compare/v0.114.6...v0.114.7)
<sup>Released on **2023-12-22**</sup>

#### ♻ Code Refactoring

- **misc**: Move the conversation and chatInput to features folder.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Move the conversation and chatInput to features folder, closes [#750](https://github.com/lobehub/lobe-chat/issues/750) ([0334592](https://github.com/lobehub/lobe-chat/commit/0334592))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-22 03:11:14 +00:00
Arvin Xu 0334592866 🚚 refactor: move the conversation and chatInput to features folder (#750)
* 🚚 refactor: move the conversation and chat input to features

* ️ perf: dynamic import openapi plugin resolver to improve performance
2023-12-22 11:09:09 +08:00
lobehubbot 5100b65384 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-22 02:07:15 +00:00
semantic-release-bot 19cbaf8fcb 🔖 chore(release): v0.114.6 [skip ci]
### [Version&nbsp;0.114.6](https://github.com/lobehub/lobe-chat/compare/v0.114.5...v0.114.6)
<sup>Released on **2023-12-22**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-22 02:06:37 +00:00
Arvin Xu 6211be9487 ️ perf: prefetch page to improve performance (#749) 2023-12-22 10:04:17 +08:00
lobehubbot 8c8221e4f4 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-19 14:52:49 +00:00
luo jiyin 4adfd2cec4 feat: docker container autostart (#725) 2023-12-19 22:50:36 +08:00
semantic-release-bot 304c1dbcc7 🔖 chore(release): v0.114.5 [skip ci]
### [Version&nbsp;0.114.5](https://github.com/lobehub/lobe-chat/compare/v0.114.4...v0.114.5)
<sup>Released on **2023-12-19**</sup>

#### 💄 Styles

- **misc**: Fix plugin iframe width.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Fix plugin iframe width, closes [#721](https://github.com/lobehub/lobe-chat/issues/721) ([53ad132](https://github.com/lobehub/lobe-chat/commit/53ad132))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-19 09:53:04 +00:00
Arvin Xu 53ad132b8b 💄 style: fix plugin iframe width (#721) 2023-12-19 17:50:47 +08:00
lobehubbot 3f7ce1d6a5 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-19 09:13:22 +00:00
Carson Yang f4428b940f 📝 docs: add sealos deployment in README (#667)
Signed-off-by: Carson Yang <yangchuansheng33@gmail.com>
2023-12-19 17:11:17 +08:00
lobehubbot 27b1479b6e 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-19 09:03:48 +00:00
semantic-release-bot 2ecf42ab4c 🔖 chore(release): v0.114.4 [skip ci]
### [Version&nbsp;0.114.4](https://github.com/lobehub/lobe-chat/compare/v0.114.3...v0.114.4)
<sup>Released on **2023-12-19**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix agent system role modal scrolling when content is too long.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix agent system role modal scrolling when content is too long, closes [#716](https://github.com/lobehub/lobe-chat/issues/716) ([c3e36d1](https://github.com/lobehub/lobe-chat/commit/c3e36d1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-19 09:02:58 +00:00
Justin3go c3e36d14ee 🐛 fix: fix agent system role modal scrolling when content is too long (#716) 2023-12-19 17:00:52 +08:00
lobehubbot e40db59eb2 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-19 02:32:46 +00:00
CanisMinor 53eaee7d6a 🔧 chore: Update syncPluginIndex.ts 2023-12-19 10:30:25 +08:00
CanisMinor f16d417ccf 🔧 chore: Update syncPluginIndex.ts 2023-12-19 10:29:58 +08:00
Igroshka 689d4c04fc Update welcome.json (#707) 2023-12-19 08:48:25 +08:00
Igroshka c4ff00c42f Update setting.json (#708) 2023-12-19 08:48:10 +08:00
Igroshka 2790113c17 Update plugin.json (#709) 2023-12-19 08:47:57 +08:00
humu 37323ac1a0 adjust japanese locale (#706) 2023-12-18 23:56:27 +08:00
semantic-release-bot 57cb87f834 🔖 chore(release): v0.114.3 [skip ci]
### [Version&nbsp;0.114.3](https://github.com/lobehub/lobe-chat/compare/v0.114.2...v0.114.3)
<sup>Released on **2023-12-18**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-18 12:53:38 +00:00
mushan0x0 d038d244a0 ️ perf: Optimize the image upload size for gpt-4-vision (#669)
* ♻️ refactor: `FileItem` changed to `ImageFileItem`

* ️ perf: Optimize the image upload size for `gpt-4-vision`

* 🔧 test: add Test Configuration

* 🧪 test: add case

* ✏️ chore: typos

---------

Co-authored-by: wuxh <wxh1220@gmail.com>
2023-12-18 20:51:28 +08:00
canisminor1990 e709d02fa5 📝 docs: Replace sponsor img with static url 2023-12-18 10:56:52 +08:00
semantic-release-bot 531c03962f 🔖 chore(release): v0.114.2 [skip ci]
### [Version&nbsp;0.114.2](https://github.com/lobehub/lobe-chat/compare/v0.114.1...v0.114.2)
<sup>Released on **2023-12-17**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix chat error when message has image with non-vision model.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix chat error when message has image with non-vision model, closes [#698](https://github.com/lobehub/lobe-chat/issues/698) [#693](https://github.com/lobehub/lobe-chat/issues/693) ([b142c17](https://github.com/lobehub/lobe-chat/commit/b142c17))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-17 14:21:06 +00:00
Arvin Xu b142c176f1 🐛 fix: fix chat error when message has image with non-vision model (#698)
* 📝 docs: update docs

* 🐛 fix: fix chat error with non-vision model

close #693
2023-12-17 22:18:48 +08:00
lobehubbot 0364c1ec90 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-17 13:13:19 +00:00
Arvin Xu bcccc1a7e3 📝 docs: add plugins usage documents (#692)
* 📝 docs: plugins

* Update Plugins.zh-CN.md

* Update Plugins.zh-CN.md

* 📝 docs: update plugins docs

* 📝 docs: update plugins docs
2023-12-17 21:11:03 +08:00
semantic-release-bot 5274353e6e 🔖 chore(release): v0.114.1 [skip ci]
### [Version&nbsp;0.114.1](https://github.com/lobehub/lobe-chat/compare/v0.114.0...v0.114.1)
<sup>Released on **2023-12-16**</sup>

#### 🐛 Bug Fixes

- **misc**: Inject tool description into agent system role.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Inject tool description into agent system role, closes [#681](https://github.com/lobehub/lobe-chat/issues/681) ([e7a8cff](https://github.com/lobehub/lobe-chat/commit/e7a8cff))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-16 15:12:43 +00:00
Arvin Xu e7a8cffa36 🐛 fix: inject tool description into agent system role (#681)
* 🐛 fix: inject tool desc into agent system role

* 💚 ci: fix circular

*  test: add more tests

*  test: add more tests

*  feat: support show tools token
2023-12-16 22:46:37 +08:00
lobehubbot 8c3386e029 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-16 11:48:21 +00:00
semantic-release-bot d556f3e642 🔖 chore(release): v0.114.0 [skip ci]
## [Version&nbsp;0.114.0](https://github.com/lobehub/lobe-chat/compare/v0.113.1...v0.114.0)
<sup>Released on **2023-12-16**</sup>

####  Features

- **misc**: Supports setting  multiple access code.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Supports setting  multiple access code, closes [#647](https://github.com/lobehub/lobe-chat/issues/647) ([7db0430](https://github.com/lobehub/lobe-chat/commit/7db0430))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-16 11:47:47 +00:00
mushan0x0 7db0430f8a feat: supports setting multiple access code (#647)
*  feat: `ACCESS_CODE` supports setting multiple

* 📝 docs: Update the `ACCESS_CODE` documentation

*  test: Add `ACCESS_CODE` testing
2023-12-16 19:45:42 +08:00
semantic-release-bot 31d3994502 🔖 chore(release): v0.113.1 [skip ci]
### [Version&nbsp;0.113.1](https://github.com/lobehub/lobe-chat/compare/v0.113.0...v0.113.1)
<sup>Released on **2023-12-16**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix fontsize setting and audio download style.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix fontsize setting and audio download style, closes [#433](https://github.com/lobehub/lobe-chat/issues/433) ([6882752](https://github.com/lobehub/lobe-chat/commit/6882752))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-16 08:06:15 +00:00
canisminor1990 6882752a0d 🐛 fix: Fix fontsize setting and audio download style (#433) 2023-12-16 16:01:32 +08:00
semantic-release-bot 1f7e73ff8c 🔖 chore(release): v0.113.0 [skip ci]
## [Version&nbsp;0.113.0](https://github.com/lobehub/lobe-chat/compare/v0.112.1...v0.113.0)
<sup>Released on **2023-12-16**</sup>

####  Features

- **locale**: Add es-ES pt-BR de-DE tr-TR.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **locale**: Add es-ES pt-BR de-DE tr-TR, closes [#659](https://github.com/lobehub/lobe-chat/issues/659) ([021abfa](https://github.com/lobehub/lobe-chat/commit/021abfa))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-16 07:01:48 +00:00
canisminor1990 021abfabe3 feat(locale): Add es-ES pt-BR de-DE tr-TR (#659) 2023-12-16 14:59:09 +08:00
semantic-release-bot 6e1aac47aa 🔖 chore(release): v0.112.1 [skip ci]
### [Version&nbsp;0.112.1](https://github.com/lobehub/lobe-chat/compare/v0.112.0...v0.112.1)
<sup>Released on **2023-12-16**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix locales.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix locales ([4384dc2](https://github.com/lobehub/lobe-chat/commit/4384dc2))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-16 06:36:14 +00:00
canisminor1990 4384dc2f94 🐛 fix: Fix locales 2023-12-16 14:32:40 +08:00
Abdullah Ercan b20b0595a9 turkish translation added (#677)
* turkish translation added

* ascending order update

* typo update

---------

Co-authored-by: CanisMinor <i@canisminor.cc>
2023-12-16 14:31:00 +08:00
lobehubbot dd6c8d2e4d 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-16 04:59:34 +00:00
semantic-release-bot 5fc262ab5e 🔖 chore(release): v0.112.0 [skip ci]
## [Version&nbsp;0.112.0](https://github.com/lobehub/lobe-chat/compare/v0.111.6...v0.112.0)
<sup>Released on **2023-12-16**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor global and share service, refactor plugin dev modal and improve plugin store, refactor with OpenAPIConvertor.

####  Features

- **misc**: Introduce plugin detail modal, support OpenAI plugin manifest, support OpenAPI Authentication, support OpenAPI schema in lobe plugin, support parse openapi schema.

#### 🐛 Bug Fixes

- **misc**: Fix function apiName length, try with node mode plugins.

#### 💄 Styles

- **misc**: Fix function message style, fix mobile padding of plugin dev modal, improve settings display, Update tool style.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor global and share service ([dd6f00e](https://github.com/lobehub/lobe-chat/commit/dd6f00e))
* **misc**: Refactor plugin dev modal and improve plugin store ([4dc5e35](https://github.com/lobehub/lobe-chat/commit/4dc5e35))
* **misc**: Refactor with OpenAPIConvertor ([605b3bf](https://github.com/lobehub/lobe-chat/commit/605b3bf))

#### What's improved

* **misc**: Introduce plugin detail modal ([0308783](https://github.com/lobehub/lobe-chat/commit/0308783))
* **misc**: Support OpenAI plugin manifest ([04ff2d5](https://github.com/lobehub/lobe-chat/commit/04ff2d5))
* **misc**: Support OpenAPI Authentication ([820c15e](https://github.com/lobehub/lobe-chat/commit/820c15e))
* **misc**: Support OpenAPI schema in lobe plugin, closes [#614](https://github.com/lobehub/lobe-chat/issues/614) ([5426a54](https://github.com/lobehub/lobe-chat/commit/5426a54))
* **misc**: Support parse openapi schema ([11a39b1](https://github.com/lobehub/lobe-chat/commit/11a39b1))

#### What's fixed

* **misc**: Fix function apiName length ([b6f8c16](https://github.com/lobehub/lobe-chat/commit/b6f8c16))
* **misc**: Try with node mode plugins ([6bb547f](https://github.com/lobehub/lobe-chat/commit/6bb547f))

#### Styles

* **misc**: Fix function message style ([4fee0b1](https://github.com/lobehub/lobe-chat/commit/4fee0b1))
* **misc**: Fix mobile padding of plugin dev modal ([7f7070a](https://github.com/lobehub/lobe-chat/commit/7f7070a))
* **misc**: Improve settings display ([df57cde](https://github.com/lobehub/lobe-chat/commit/df57cde))
* **misc**: Update tool style ([292a3e1](https://github.com/lobehub/lobe-chat/commit/292a3e1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-16 04:58:57 +00:00
Arvin Xu 5426a541cb feat: support OpenAPI schema in lobe plugin (#614) 2023-12-16 12:38:19 +08:00
arvinxx 7f7070a719 💄 style: fix mobile padding of plugin dev modal 2023-12-16 12:16:38 +08:00
arvinxx b6f8c16a58 🐛 fix: fix function apiName length 2023-12-16 11:20:14 +08:00
canisminor1990 3aa821975d 🌐 chore: Update locale 2023-12-16 00:12:04 +08:00
arvinxx 05b6e4c62c test: fix test warning 2023-12-15 23:57:42 +08:00
arvinxx 4fee0b19c0 💄 style: fix function message style 2023-12-15 23:57:42 +08:00
canisminor1990 388eb85515 🔧 chore: Update readme plugin workflow 2023-12-15 23:57:42 +08:00
canisminor1990 292a3e1d62 💄 style: Update tool style 2023-12-15 23:57:42 +08:00
arvinxx 6bb547fa72 🐛 fix: try with node mode plugins 2023-12-15 20:23:38 +08:00
arvinxx df57cde692 💄 style: improve settings display 2023-12-15 20:23:38 +08:00
arvinxx 605b3bfe01 ♻️ refactor: refactor with OpenAPIConvertor 2023-12-15 20:23:38 +08:00
arvinxx 04ff2d5750 feat: support OpenAI plugin manifest 2023-12-15 20:23:38 +08:00
arvinxx 0308783939 feat: introduce plugin detail modal 2023-12-15 20:23:38 +08:00
arvinxx dd6f00e912 ♻️ refactor: refactor global and share service 2023-12-15 20:23:38 +08:00
arvinxx 820c15ed49 feat: support OpenAPI Authentication 2023-12-15 20:23:38 +08:00
arvinxx 11a39b1e6f feat: support parse openapi schema 2023-12-15 20:23:38 +08:00
arvinxx 4dc5e352eb ♻️ refactor: refactor plugin dev modal and improve plugin store 2023-12-15 20:23:38 +08:00
semantic-release-bot 6e29698a28 🔖 chore(release): v0.111.6 [skip ci]
### [Version&nbsp;0.111.6](https://github.com/lobehub/lobe-chat/compare/v0.111.5...v0.111.6)
<sup>Released on **2023-12-15**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix deployment build failure.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix deployment build failure, closes [#672](https://github.com/lobehub/lobe-chat/issues/672) ([3878dcd](https://github.com/lobehub/lobe-chat/commit/3878dcd))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-15 08:25:57 +00:00
mushan0x0 3878dcde45 🐛 fix: fix deployment build failure (#672) 2023-12-15 16:23:57 +08:00
lobehubbot 6d19564d91 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-15 06:00:14 +00:00
canisminor1990 9ff9aba077 📝 docs: Fix links 2023-12-15 13:57:36 +08:00
Ikko Eltociear Ashimine c295aaf66f 📝 docs: update .env.example (#662)
seperate -> separate
2023-12-14 23:30:28 +08:00
semantic-release-bot 00e5910478 🔖 chore(release): v0.111.5 [skip ci]
### [Version&nbsp;0.111.5](https://github.com/lobehub/lobe-chat/compare/v0.111.4...v0.111.5)
<sup>Released on **2023-12-14**</sup>

#### 🐛 Bug Fixes

- **misc**: Wrong locale language in en_US.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Wrong locale language in en_US, closes [#660](https://github.com/lobehub/lobe-chat/issues/660) ([e1c31ee](https://github.com/lobehub/lobe-chat/commit/e1c31ee))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-14 14:24:10 +00:00
guangzhengli e1c31ee08f 🐛 fix: wrong locale language in en_US (#660) 2023-12-14 22:22:04 +08:00
canisminor1990 0878f2b243 📝 docs: Add wiki toc 2023-12-14 17:33:35 +08:00
canisminor1990 39f674ee40 📝 docs: Fix wiki link 2023-12-14 17:26:41 +08:00
canisminor1990 395ff22e2e 📝 docs: Fix link 2023-12-14 17:24:52 +08:00
lobehubbot fafccfb210 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-14 09:20:43 +00:00
Henry Chen 9553e18d08 📝 docs: Fix a typo in README.zh-CN.md (#657) 2023-12-14 17:18:38 +08:00
CanisMinor d1df19a498 🔨 chore: Add docs workflow (#658)
* 🔧 chore: Add docs workflow and update docs files

* 📝 docs: Update wiki docs link
2023-12-14 17:17:43 +08:00
semantic-release-bot fedf799b6f 🔖 chore(release): v0.111.4 [skip ci]
### [Version&nbsp;0.111.4](https://github.com/lobehub/lobe-chat/compare/v0.111.3...v0.111.4)
<sup>Released on **2023-12-14**</sup>

#### 🐛 Bug Fixes

- **misc**: Revert "🐛 fix: clean up gpt-3.5 model".

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Revert "🐛 fix: clean up gpt-3.5 model", closes [#653](https://github.com/lobehub/lobe-chat/issues/653) ([b8b14fc](https://github.com/lobehub/lobe-chat/commit/b8b14fc))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-14 03:11:11 +00:00
Arvin Xu b8b14fc68f 🐛 fix: Revert "🐛 fix: clean up gpt-3.5 model" (#653)
This reverts commit 9616783d09.
2023-12-14 11:08:34 +08:00
semantic-release-bot 4630322caa 🔖 chore(release): v0.111.3 [skip ci]
### [Version&nbsp;0.111.3](https://github.com/lobehub/lobe-chat/compare/v0.111.2...v0.111.3)
<sup>Released on **2023-12-14**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix the history-count text.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix the history-count text, closes [#615](https://github.com/lobehub/lobe-chat/issues/615) ([4db1cef](https://github.com/lobehub/lobe-chat/commit/4db1cef))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-14 01:56:47 +00:00
reece00 4db1cef995 🐛 fix: fix the history-count text (#615) 2023-12-14 09:54:42 +08:00
Justin Dhillon 4b64c7d30f Fix Broken Links (#652)
* https://github.com/lobehub/chat-plugins-gateway

* https://github.com/lobehub/chat-plugins-gateway

* https://github.com/vitest-dev/vitest
2023-12-14 09:32:19 +08:00
semantic-release-bot 05e6ecd805 🔖 chore(release): v0.111.2 [skip ci]
### [Version&nbsp;0.111.2](https://github.com/lobehub/lobe-chat/compare/v0.111.1...v0.111.2)
<sup>Released on **2023-12-13**</sup>

#### 🐛 Bug Fixes

- **misc**: Change topic-deletion hotkey.

#### 💄 Styles

- **misc**: Fix image display in safari (fix.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Change topic-deletion hotkey, closes [#616](https://github.com/lobehub/lobe-chat/issues/616) ([912ff45](https://github.com/lobehub/lobe-chat/commit/912ff45))

#### Styles

* **misc**: Fix image display in safari (fix, closes [#571](https://github.com/lobehub/lobe-chat/issues/571) ([4beefa7](https://github.com/lobehub/lobe-chat/commit/4beefa7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-13 14:11:53 +00:00
canisminor1990 912ff45818 🐛 fix: Change topic-deletion hotkey (#616) 2023-12-13 22:08:55 +08:00
canisminor1990 4beefa7752 💄 style: Fix image display in safari (fix #571) 2023-12-13 21:48:12 +08:00
semantic-release-bot ed48d782ac 🔖 chore(release): v0.111.1 [skip ci]
### [Version&nbsp;0.111.1](https://github.com/lobehub/lobe-chat/compare/v0.111.0...v0.111.1)
<sup>Released on **2023-12-13**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix locale typo.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix locale typo ([f44b41e](https://github.com/lobehub/lobe-chat/commit/f44b41e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-13 10:33:07 +00:00
canisminor1990 f44b41e05c 🐛 fix: Fix locale typo 2023-12-13 18:30:09 +08:00
cb91985c02 🍻 chore: remove duplicate logic (#641) 2023-12-13 17:45:20 +08:00
semantic-release-bot 50a1c390b8 🔖 chore(release): v0.111.0 [skip ci]
## [Version&nbsp;0.111.0](https://github.com/lobehub/lobe-chat/compare/v0.110.10...v0.111.0)
<sup>Released on **2023-12-13**</sup>

####  Features

- **locale**: Add fr-FR.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **locale**: Add fr-FR, closes [#637](https://github.com/lobehub/lobe-chat/issues/637) ([357141c](https://github.com/lobehub/lobe-chat/commit/357141c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-13 09:44:31 +00:00
CanisMinor 357141cd54 🌐 feat(locale): Add fr-FR (#637) 2023-12-13 17:42:26 +08:00
lobehubbot 56779ed094 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-13 08:03:30 +00:00
semantic-release-bot 3eecf3a3e9 🔖 chore(release): v0.110.10 [skip ci]
### [Version&nbsp;0.110.10](https://github.com/lobehub/lobe-chat/compare/v0.110.9...v0.110.10)
<sup>Released on **2023-12-13**</sup>

#### 🐛 Bug Fixes

- **misc**: Add cancel button text i18n for delete assistant modal.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Add cancel button text i18n for delete assistant modal, closes [#640](https://github.com/lobehub/lobe-chat/issues/640) ([fae04c9](https://github.com/lobehub/lobe-chat/commit/fae04c9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-13 08:03:01 +00:00
xiaole fae04c9943 🐛 fix: add cancel button text i18n for delete assistant modal (#640) 2023-12-13 16:01:02 +08:00
semantic-release-bot 3c49e57e51 🔖 chore(release): v0.110.9 [skip ci]
### [Version&nbsp;0.110.9](https://github.com/lobehub/lobe-chat/compare/v0.110.8...v0.110.9)
<sup>Released on **2023-12-13**</sup>

#### 🐛 Bug Fixes

- **misc**: ChatInput should have maxHeight.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: ChatInput should have maxHeight, closes [#630](https://github.com/lobehub/lobe-chat/issues/630) ([8dfe1b8](https://github.com/lobehub/lobe-chat/commit/8dfe1b8))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-13 00:56:17 +00:00
Shinji-Li 8dfe1b802d fix: ChatInput should have maxHeight (#630) 2023-12-13 08:53:47 +08:00
lobehubbot 6a2d1e6ebb 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-13 00:53:00 +00:00
Asuka109 ad8dd191f3 🔧 chore: add .nvmrc file with LTS version (#622) 2023-12-13 08:51:02 +08:00
lobehubbot aff0723b77 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-12 01:56:57 +00:00
semantic-release-bot 6e5f58319a 🔖 chore(release): v0.110.8 [skip ci]
### [Version&nbsp;0.110.8](https://github.com/lobehub/lobe-chat/compare/v0.110.7...v0.110.8)
<sup>Released on **2023-12-12**</sup>

#### 🐛 Bug Fixes

- **misc**: Clean up gpt-3.5 model.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Clean up gpt-3.5 model, closes [#554](https://github.com/lobehub/lobe-chat/issues/554) ([9616783](https://github.com/lobehub/lobe-chat/commit/9616783))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-12 01:56:27 +00:00
Arvin Xu 9616783d09 🐛 fix: clean up gpt-3.5 model (#554) 2023-12-12 09:54:44 +08:00
semantic-release-bot 4a8dfa53ae 🔖 chore(release): v0.110.7 [skip ci]
### [Version&nbsp;0.110.7](https://github.com/lobehub/lobe-chat/compare/v0.110.6...v0.110.7)
<sup>Released on **2023-12-11**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix language settings may not take effect.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix language settings may not take effect, closes [#595](https://github.com/lobehub/lobe-chat/issues/595) ([a5db64e](https://github.com/lobehub/lobe-chat/commit/a5db64e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-11 02:51:59 +00:00
mushan0x0 a5db64ef23 🐛 fix: Fix language settings may not take effect (#595) 2023-12-11 10:50:16 +08:00
lobehubbot b2d4d4d548 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-11 01:00:58 +00:00
semantic-release-bot 7b8f52c6df 🔖 chore(release): v0.110.6 [skip ci]
### [Version&nbsp;0.110.6](https://github.com/lobehub/lobe-chat/compare/v0.110.5...v0.110.6)
<sup>Released on **2023-12-11**</sup>

#### 🐛 Bug Fixes

- **misc**: Sharp missing in docker production.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Sharp missing in docker production, closes [#603](https://github.com/lobehub/lobe-chat/issues/603) ([d89b48d](https://github.com/lobehub/lobe-chat/commit/d89b48d))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-11 01:00:28 +00:00
Mikey d89b48d107 🐛 fix: sharp missing in docker production (#603) 2023-12-11 08:58:41 +08:00
semantic-release-bot da9c3a670b 🔖 chore(release): v0.110.5 [skip ci]
### [Version&nbsp;0.110.5](https://github.com/lobehub/lobe-chat/compare/v0.110.4...v0.110.5)
<sup>Released on **2023-12-10**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix setting plugin i18n.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix setting plugin i18n, closes [#606](https://github.com/lobehub/lobe-chat/issues/606) ([4e18ebf](https://github.com/lobehub/lobe-chat/commit/4e18ebf))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-10 04:11:43 +00:00
Arvin Xu 4e18ebf820 🐛 fix: fix setting plugin i18n (#606)
* 🐛 fix: fix setting plugin

*  test: update test
2023-12-10 12:09:56 +08:00
semantic-release-bot c25a9eb42b 🔖 chore(release): v0.110.4 [skip ci]
### [Version&nbsp;0.110.4](https://github.com/lobehub/lobe-chat/compare/v0.110.3...v0.110.4)
<sup>Released on **2023-12-08**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-08 15:48:34 +00:00
canisminor1990 8f0aaa02c2 perf: Fix ChatIntpuArea rerender 2023-12-08 23:44:51 +08:00
semantic-release-bot 30bac89592 🔖 chore(release): v0.110.3 [skip ci]
### [Version&nbsp;0.110.3](https://github.com/lobehub/lobe-chat/compare/v0.110.2...v0.110.3)
<sup>Released on **2023-12-08**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor with new plugin implement with dexie db.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor with new plugin implement with dexie db, closes [#596](https://github.com/lobehub/lobe-chat/issues/596) ([f3b5e7b](https://github.com/lobehub/lobe-chat/commit/f3b5e7b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-08 13:41:53 +00:00
Arvin Xu f3b5e7b646 ♻️ refactor: refactor with new plugin implement with dexie db (#596)
* ♻️ refactor: refactor with plugin dev

*  test: add test for chain

* 🐛 fix: fix plugin display in tool

*  test: add test for plugin service

*  test: add test for plugin service

* 💚 ci: fix ci
2023-12-08 21:39:59 +08:00
semantic-release-bot 36e48bffa0 🔖 chore(release): v0.110.2 [skip ci]
### [Version&nbsp;0.110.2](https://github.com/lobehub/lobe-chat/compare/v0.110.1...v0.110.2)
<sup>Released on **2023-12-08**</sup>

#### 💄 Styles

- **misc**: Fix ChatInputArea style and typo (resolve.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Fix ChatInputArea style and typo (resolve, closes [#599](https://github.com/lobehub/lobe-chat/issues/599) ([0d08f3b](https://github.com/lobehub/lobe-chat/commit/0d08f3b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-08 12:52:36 +00:00
canisminor1990 0d08f3bbac 💄 style: Fix ChatInputArea style and typo (resolve #599) 2023-12-08 20:49:31 +08:00
CanisMinor f45852e66d 💄 style: Optimize the operation of lobechat on mobile devices (fix #448, fix #579) 2023-12-08 18:38:35 +08:00
lobehubbot ba32293823 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-08 09:07:48 +00:00
semantic-release-bot 7c361af92f 🔖 chore(release): v0.110.1 [skip ci]
### [Version&nbsp;0.110.1](https://github.com/lobehub/lobe-chat/compare/v0.110.0...v0.110.1)
<sup>Released on **2023-12-08**</sup>

#### 🐛 Bug Fixes

- **misc**: Sharp missing in production.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Sharp missing in production, closes [#598](https://github.com/lobehub/lobe-chat/issues/598) ([c8ef782](https://github.com/lobehub/lobe-chat/commit/c8ef782))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-08 09:07:18 +00:00
Mikey c8ef782be5 🐛 fix: sharp missing in production (#598) 2023-12-08 17:05:41 +08:00
semantic-release-bot 909652c1cc 🔖 chore(release): v0.110.0 [skip ci]
## [Version&nbsp;0.110.0](https://github.com/lobehub/lobe-chat/compare/v0.109.1...v0.110.0)
<sup>Released on **2023-12-07**</sup>

####  Features

- **misc**: Local TTS Player.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Local TTS Player, closes [#587](https://github.com/lobehub/lobe-chat/issues/587) ([87b51bd](https://github.com/lobehub/lobe-chat/commit/87b51bd))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-07 07:48:47 +00:00
CanisMinor 87b51bd6b4 feat: Local TTS Player (#587)
*  feat(wip): TTS next

*  feat(tts): Add local player

*  feat(tts): Add content md5

* ♻️ refactor(tts): Refactor codereview problem

*  test: Fix test

* 🐛 fix(tts): Fix md5

* 🐛 fix(tts): Fix voice change

* 🐛 fix(tts): Remove async selectors

*  test(tts): Add TTS action test

* 🔧 chore: Update vitest config resolve tts esm import

*  test: Add enhance test

*  test: Add agent/selectors test
2023-12-07 15:47:06 +08:00
semantic-release-bot 4f7fa9c4eb 🔖 chore(release): v0.109.1 [skip ci]
### [Version&nbsp;0.109.1](https://github.com/lobehub/lobe-chat/compare/v0.109.0...v0.109.1)
<sup>Released on **2023-12-07**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix agent settings crash with old pluginManifest.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix agent settings crash with old pluginManifest ([8b80dfd](https://github.com/lobehub/lobe-chat/commit/8b80dfd))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-07 02:44:28 +00:00
arvinxx 8b80dfd0e8 🐛 fix: fix agent settings crash with old pluginManifest 2023-12-07 10:41:58 +08:00
CanisMinor ecd570c61b docs: Update README.zh-CN.md [skip ci] 2023-12-06 21:18:14 +08:00
canisminor1990 9425d77243 📝 docs: Add sponsor avatar badge 2023-12-06 21:01:44 +08:00
lobehubbot 0d92ab2c01 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-06 11:26:43 +00:00
semantic-release-bot c2196ed2e2 🔖 chore(release): v0.109.0 [skip ci]
## [Version&nbsp;0.109.0](https://github.com/lobehub/lobe-chat/compare/v0.108.0...v0.109.0)
<sup>Released on **2023-12-06**</sup>

####  Features

- **misc**: Introducing plugin store and refactor with tool concept.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Introducing plugin store and refactor with tool concept, closes [#573](https://github.com/lobehub/lobe-chat/issues/573) ([92f43d1](https://github.com/lobehub/lobe-chat/commit/92f43d1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-06 11:26:03 +00:00
Arvin Xu 92f43d1c7b feat: introducing plugin store and refactor with tool concept (#573)
*  feat: 新增插件商店

* ♻️ refactor: refactor pluginSelectors

* ♻️ refactor: 完善并优化插件安装实现

* ♻️ refactor: 重构插件设置模块

* 🚚 refactor: rename pluginStore to toolStore

*  test: fix test

*  test: add test for the services

*  test: add test for the plugin action

* 🔧 chore: fix vitest coverage config

* 🌐 style: improve store locale

*  test: add test for customPlugin and pluginStore

*  test: add plugin service test

*  test: update plugin store test

*  feat: 补充错误处理

* 💄 style: 调整插件设置位置,挪入商店面板中

* 💄 style: improve mobile padding

* 🌐 style: add i18n
2023-12-06 19:24:17 +08:00
lobehubbot 12bf3f6d07 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-04 07:08:06 +00:00
Arvin Xu cc34c98cb9 📝 docs: Update README (#576)
* Update README.md

* Update README.zh-CN.md

* Update Environment-Variable.md

* Update Environment-Variable.zh-CN.md
2023-12-04 15:06:34 +08:00
semantic-release-bot 247c0749e2 🔖 chore(release): v0.108.0 [skip ci]
## [Version&nbsp;0.108.0](https://github.com/lobehub/lobe-chat/compare/v0.107.16...v0.108.0)
<sup>Released on **2023-12-03**</sup>

####  Features

- **misc**: Hide the password form item in the settings when there is no `ACCESS_CODE` env.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Hide the password form item in the settings when there is no `ACCESS_CODE` env, closes [#568](https://github.com/lobehub/lobe-chat/issues/568) ([3b5f8b2](https://github.com/lobehub/lobe-chat/commit/3b5f8b2))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-03 12:13:59 +00:00
mushan0x0 3b5f8b2d0e feat: hide the password form item in the settings when there is no ACCESS_CODE env (#568) 2023-12-03 20:12:30 +08:00
semantic-release-bot 6f5c9b0261 🔖 chore(release): v0.107.16 [skip ci]
### [Version&nbsp;0.107.16](https://github.com/lobehub/lobe-chat/compare/v0.107.15...v0.107.16)
<sup>Released on **2023-12-03**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix custom agent meta issue.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix custom agent meta issue, closes [#567](https://github.com/lobehub/lobe-chat/issues/567) ([75560e1](https://github.com/lobehub/lobe-chat/commit/75560e1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-03 11:54:11 +00:00
Arvin Xu 75560e1302 🐛 fix: fix custom agent meta issue (#567)
* 🐛 fix: fix custom agent meta issue

*  test: add test for chatHelpers

*  test: add test for chatSelectors

*  test: add test for chatSelectors
2023-12-03 19:52:44 +08:00
Arvin Xu 469d7a8cf5 test: Add topic tests (#566)
* 🚚 chore: rename prefix in action

*  test: add topic tests
2023-12-03 17:13:05 +08:00
semantic-release-bot 52bb9bf2d6 🔖 chore(release): v0.107.15 [skip ci]
### [Version&nbsp;0.107.15](https://github.com/lobehub/lobe-chat/compare/v0.107.14...v0.107.15)
<sup>Released on **2023-12-03**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix messages flickering when creating topic.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix messages flickering when creating topic, closes [#565](https://github.com/lobehub/lobe-chat/issues/565) ([7127550](https://github.com/lobehub/lobe-chat/commit/7127550))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-03 08:12:56 +00:00
Arvin Xu 7127550408 🐛 fix: fix messages flickering when creating topic (#565) 2023-12-03 16:11:29 +08:00
renovate[bot] 4a4c6068eb ⬆️ chore: Update dependency sharp to ^0.33.0 (#558)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-03 15:24:05 +08:00
renovate[bot] 0017c22691 ⬆️ chore: Update dependency jsdom to v23 (#559)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-03 15:23:45 +08:00
canisminor1990 0421a0748e 📝 docs: Update README 2023-12-03 14:46:17 +08:00
semantic-release-bot 79f82c82f9 🔖 chore(release): v0.107.14 [skip ci]
### [Version&nbsp;0.107.14](https://github.com/lobehub/lobe-chat/compare/v0.107.13...v0.107.14)
<sup>Released on **2023-12-03**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix opt+delete fail in inputing (resolve.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix opt+delete fail in inputing (resolve, closes [#556](https://github.com/lobehub/lobe-chat/issues/556) ([4d5d93d](https://github.com/lobehub/lobe-chat/commit/4d5d93d))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-03 06:15:54 +00:00
canisminor1990 4d5d93dc0c 🐛 fix: Fix opt+delete fail in inputing (resolve #556) 2023-12-03 14:12:48 +08:00
lobehubbot 9bb13b22cf 📝 docs(bot): Auto sync agents & plugin to readme 2023-12-03 02:50:48 +00:00
semantic-release-bot 1f46658a9d 🔖 chore(release): v0.107.13 [skip ci]
### [Version&nbsp;0.107.13](https://github.com/lobehub/lobe-chat/compare/v0.107.12...v0.107.13)
<sup>Released on **2023-12-03**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor Image components.

#### 🐛 Bug Fixes

- **misc**: Fix a bug that can't send only images with empty content, Fix image gallery sort index, Fix image gallery sort index, Fix image sort index, Fix image upload error, Fix import.

#### 💄 Styles

- **misc**: Change image fit to cover mode, Fix empty files style, Move file inside chat input in mobile mode, Update editable image style, Update image default background color, Update image editable style, Update image grid, Update Image grid, Update image remove button hover style.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor Image components ([72dcd18](https://github.com/lobehub/lobe-chat/commit/72dcd18))

#### What's fixed

* **misc**: Fix a bug that can't send only images with empty content ([9601520](https://github.com/lobehub/lobe-chat/commit/9601520))
* **misc**: Fix image gallery sort index ([16548d3](https://github.com/lobehub/lobe-chat/commit/16548d3))
* **misc**: Fix image gallery sort index ([5636599](https://github.com/lobehub/lobe-chat/commit/5636599))
* **misc**: Fix image sort index ([29cf223](https://github.com/lobehub/lobe-chat/commit/29cf223))
* **misc**: Fix image upload error ([c7745c7](https://github.com/lobehub/lobe-chat/commit/c7745c7))
* **misc**: Fix import ([af797d6](https://github.com/lobehub/lobe-chat/commit/af797d6))

#### Styles

* **misc**: Change image fit to cover mode ([9fdc459](https://github.com/lobehub/lobe-chat/commit/9fdc459))
* **misc**: Fix empty files style ([bbe14c4](https://github.com/lobehub/lobe-chat/commit/bbe14c4))
* **misc**: Move file inside chat input in mobile mode ([b6401c1](https://github.com/lobehub/lobe-chat/commit/b6401c1))
* **misc**: Update editable image style ([a96ca4c](https://github.com/lobehub/lobe-chat/commit/a96ca4c))
* **misc**: Update image default background color ([fadc024](https://github.com/lobehub/lobe-chat/commit/fadc024))
* **misc**: Update image editable style ([8dea792](https://github.com/lobehub/lobe-chat/commit/8dea792))
* **misc**: Update image grid ([901d10c](https://github.com/lobehub/lobe-chat/commit/901d10c))
* **misc**: Update Image grid ([c68788d](https://github.com/lobehub/lobe-chat/commit/c68788d))
* **misc**: Update image remove button hover style ([5bc916c](https://github.com/lobehub/lobe-chat/commit/5bc916c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-03 02:50:15 +00:00
CanisMinor 44e2e2b42d Merge pull request #536 from lobehub/style/grid-image
💄 style: Update image grid as discord-like
2023-12-03 10:48:39 +08:00
semantic-release-bot 1816469733 🔖 chore(release): v0.107.12 [skip ci]
### [Version&nbsp;0.107.12](https://github.com/lobehub/lobe-chat/compare/v0.107.11...v0.107.12)
<sup>Released on **2023-12-02**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix topic not refresh when switching sessions quickly.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix topic not refresh when switching sessions quickly, closes [#555](https://github.com/lobehub/lobe-chat/issues/555) ([1806c05](https://github.com/lobehub/lobe-chat/commit/1806c05))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-02 12:18:48 +00:00
Arvin Xu 1806c055bc 🐛 fix: fix topic not refresh when switching sessions quickly (#555) 2023-12-02 20:17:25 +08:00
canisminor1990 29cf22314f 🐛 fix: Fix image sort index 2023-12-02 18:23:01 +08:00
canisminor1990 16548d325b 🐛 fix: Fix image gallery sort index 2023-12-02 17:03:56 +08:00
canisminor1990 56365996c0 🐛 fix: Fix image gallery sort index 2023-12-02 17:01:49 +08:00
canisminor1990 5bc916cbfc 💄 style: Update image remove button hover style 2023-12-02 16:47:54 +08:00
canisminor1990 b6401c1967 💄 style: Move file inside chat input in mobile mode 2023-12-02 16:32:35 +08:00
Arvin Xu 10bb262e81 📝 docs: Update FUNDING.yml [skip ci] 2023-12-02 15:21:10 +08:00
Arvin Xu 6a0ea4cfe1 📝 docs: Update FUNDING.yml (#549) 2023-12-02 15:10:20 +08:00
canisminor1990 bbe14c467b 💄 style: Fix empty files style 2023-12-02 13:31:47 +08:00
canisminor1990 901d10cf93 💄 style: Update image grid 2023-12-02 13:24:22 +08:00
Arvin Xu 9c1892b567 📝 docs: Update FUNDING.yml [skip ci] 2023-12-02 11:05:11 +08:00
Arvin Xu 8de17af25f 📝 docs: create FUNDING.yml (#548) 2023-12-02 10:50:18 +08:00
arvinxx a091de79bf test: add tests for message action 2023-12-01 23:39:01 +08:00
canisminor1990 72dcd189a5 ♻️ refactor: Refactor Image components 2023-12-01 20:13:20 +08:00
arvinxx 96015208bf 🐛 fix: fix a bug that can't send only images with empty content 2023-12-01 20:13:20 +08:00
canisminor1990 9fdc45978c 💄 style: Change image fit to cover mode 2023-12-01 20:13:20 +08:00
canisminor1990 a96ca4c486 💄 style: Update editable image style 2023-12-01 20:13:20 +08:00
canisminor1990 3f77a903ca 🔧 chore: Remove useless selector 2023-12-01 20:13:20 +08:00
canisminor1990 8dea79273b 💄 style: Update image editable style 2023-12-01 20:13:20 +08:00
canisminor1990 fadc02497f 💄 style: Update image default background color 2023-12-01 20:13:19 +08:00
canisminor1990 af797d625c 🐛 fix: Fix import 2023-12-01 20:13:18 +08:00
canisminor1990 c7745c7fe1 🐛 fix: Fix image upload error 2023-12-01 20:12:37 +08:00
canisminor1990 c68788de38 💄 style: Update Image grid 2023-12-01 20:11:37 +08:00
arvinxx 94029d3f28 🚚 chore: rename store/files to store/file 2023-12-01 20:10:22 +08:00
semantic-release-bot c384b7f0b5 🔖 chore(release): v0.107.11 [skip ci]
### [Version&nbsp;0.107.11](https://github.com/lobehub/lobe-chat/compare/v0.107.10...v0.107.11)
<sup>Released on **2023-12-01**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix switch model don't work on mobile.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix switch model don't work on mobile, closes [#541](https://github.com/lobehub/lobe-chat/issues/541) ([609f505](https://github.com/lobehub/lobe-chat/commit/609f505))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-12-01 06:03:11 +00:00
Arvin Xu 609f505ed0 🐛 fix: fix switch model don't work on mobile (#541) 2023-12-01 14:01:43 +08:00
semantic-release-bot d1ddfc57f4 🔖 chore(release): v0.107.10 [skip ci]
### [Version&nbsp;0.107.10](https://github.com/lobehub/lobe-chat/compare/v0.107.9...v0.107.10)
<sup>Released on **2023-11-30**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-30 16:14:21 +00:00
arvinxx 17584b1d0c ️ perf: improve session active speed 2023-12-01 00:12:39 +08:00
semantic-release-bot a6d0ca8975 🔖 chore(release): v0.107.9 [skip ci]
### [Version&nbsp;0.107.9](https://github.com/lobehub/lobe-chat/compare/v0.107.8...v0.107.9)
<sup>Released on **2023-11-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Switch session causing problem.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Switch session causing problem, closes [#535](https://github.com/lobehub/lobe-chat/issues/535) ([205bc42](https://github.com/lobehub/lobe-chat/commit/205bc42))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-30 16:10:43 +00:00
Arvin Xu 205bc42f91 🐛 fix: switch session causing problem (#535) 2023-12-01 00:09:12 +08:00
semantic-release-bot 6afe8083ed 🔖 chore(release): v0.107.8 [skip ci]
### [Version&nbsp;0.107.8](https://github.com/lobehub/lobe-chat/compare/v0.107.7...v0.107.8)
<sup>Released on **2023-11-30**</sup>

#### 💄 Styles

- **misc**: Fix chatitem gap.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Fix chatitem gap ([772bb7c](https://github.com/lobehub/lobe-chat/commit/772bb7c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-30 14:46:39 +00:00
canisminor1990 772bb7ce2b 💄 style: Fix chatitem gap 2023-11-30 22:44:55 +08:00
semantic-release-bot 1591cb672b 🔖 chore(release): v0.107.7 [skip ci]
### [Version&nbsp;0.107.7](https://github.com/lobehub/lobe-chat/compare/v0.107.6...v0.107.7)
<sup>Released on **2023-11-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Improve plugin message display.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Improve plugin message display ([208200a](https://github.com/lobehub/lobe-chat/commit/208200a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-30 14:31:46 +00:00
arvinxx 208200ad3c 🐛 fix: improve plugin message display 2023-11-30 22:30:02 +08:00
semantic-release-bot c942443e95 🔖 chore(release): v0.107.6 [skip ci]
### [Version&nbsp;0.107.6](https://github.com/lobehub/lobe-chat/compare/v0.107.5...v0.107.6)
<sup>Released on **2023-11-30**</sup>

#### 🐛 Bug Fixes

- **misc**: 修正调用插件查询的显示问题.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: 修正调用插件查询的显示问题 ([671ccef](https://github.com/lobehub/lobe-chat/commit/671ccef))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-30 13:23:57 +00:00
arvinxx 671ccef0b2 🐛 fix: 修正调用插件查询的显示问题 2023-11-30 21:22:27 +08:00
semantic-release-bot 4dffc129be 🔖 chore(release): v0.107.5 [skip ci]
### [Version&nbsp;0.107.5](https://github.com/lobehub/lobe-chat/compare/v0.107.4...v0.107.5)
<sup>Released on **2023-11-30**</sup>

#### 🐛 Bug Fixes

- **misc**: 修正调用插件查询的显示问题.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: 修正调用插件查询的显示问题 ([1457fe8](https://github.com/lobehub/lobe-chat/commit/1457fe8))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-30 13:19:10 +00:00
arvinxx 1457fe8ed7 🐛 fix: 修正调用插件查询的显示问题 2023-11-30 21:17:16 +08:00
arvinxx 16c6636a68 🧑‍💻 chore: 支持 插入100w条测试数据 2023-11-30 20:17:28 +08:00
semantic-release-bot df352725fe 🔖 chore(release): v0.107.4 [skip ci]
### [Version&nbsp;0.107.4](https://github.com/lobehub/lobe-chat/compare/v0.107.3...v0.107.4)
<sup>Released on **2023-11-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix a bug that remove all topics when clear message.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix a bug that remove all topics when clear message ([1ab912d](https://github.com/lobehub/lobe-chat/commit/1ab912d))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-30 10:06:46 +00:00
arvinxx 1ab912d34f 🐛 fix: fix a bug that remove all topics when clear message 2023-11-30 18:04:09 +08:00
semantic-release-bot eb98f84148 🔖 chore(release): v0.107.3 [skip ci]
### [Version&nbsp;0.107.3](https://github.com/lobehub/lobe-chat/compare/v0.107.2...v0.107.3)
<sup>Released on **2023-11-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix a bug that trigger plugin's message type error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix a bug that trigger plugin's message type error ([b9c7849](https://github.com/lobehub/lobe-chat/commit/b9c7849))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-30 08:14:53 +00:00
arvinxx b9c7849778 🐛 fix: fix a bug that trigger plugin's message type error 2023-11-30 16:11:13 +08:00
semantic-release-bot 56fce9c235 🔖 chore(release): v0.107.2 [skip ci]
### [Version&nbsp;0.107.2](https://github.com/lobehub/lobe-chat/compare/v0.107.1...v0.107.2)
<sup>Released on **2023-11-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix a bug that export a session without messages.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix a bug that export a session without messages ([8e84f35](https://github.com/lobehub/lobe-chat/commit/8e84f35))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-30 07:42:09 +00:00
arvinxx 8e84f35e25 🐛 fix: fix a bug that export a session without messages 2023-11-30 15:38:39 +08:00
semantic-release-bot 5d2b750822 🔖 chore(release): v0.107.1 [skip ci]
### [Version&nbsp;0.107.1](https://github.com/lobehub/lobe-chat/compare/v0.107.0...v0.107.1)
<sup>Released on **2023-11-30**</sup>

#### 💄 Styles

- **misc**: 优化文案.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: 优化文案 ([aaa03c5](https://github.com/lobehub/lobe-chat/commit/aaa03c5))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-30 07:29:44 +00:00
arvinxx aaa03c50ea 🌐 style: 优化文案 2023-11-30 15:27:23 +08:00
semantic-release-bot 379e6abbfc 🔖 chore(release): v0.107.0 [skip ci]
## [Version&nbsp;0.107.0](https://github.com/lobehub/lobe-chat/compare/v0.106.0...v0.107.0)
<sup>Released on **2023-11-30**</sup>

####  Features

- **misc**: Refactor the persist layer from zustand's persist  to dexie ORM.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Refactor the persist layer from zustand's persist  to dexie ORM, closes [#500](https://github.com/lobehub/lobe-chat/issues/500) ([9ae3a8e](https://github.com/lobehub/lobe-chat/commit/9ae3a8e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-30 06:39:03 +00:00
Arvin Xu 9ae3a8eb25 feat: refactor the persist layer from zustand's persist to dexie ORM (#500)
* 🎨 chore: clean code

* 🗃️ refactor: make sure the db schema

* 🚧 wip: update the sessions service

* ♻️ refactor: improve base model core

* ♻️ refactor: 初步完成 sessions 重构为 dexie 版本

* ♻️ refactor: 合并 inbox 与 sessions 数据结构

* 🚚 refactor: move chat to the chatStore

* 🚚 refactor: refactor to the useChatStore usage

* 🚚 refactor: 初步完成 chatStore 提取改造

* 🚚 refactor: 实现 chat model与 message service ,基本完成 store 改造

* 🚚 refactor: 实现 topic model与 topic service

* 🎨 refactor: 优化数据库部分实现逻辑

*  test: 修正测试,补齐 models 层单测到 100%

* 💚 ci: 修正大部分 type 错误

* 🗃️ feat: 初步实现数据迁移

* 🎨 chore: 优化导入与 schema 定义

* 🏷️ fix: fix types

* 🐛 fix: 修正与插件的兼容性

* 🐛 fix: 修正与图片文件的兼容性

* 🏷️ chore: 修正大量类型问题

*  feat: 完成导出功能

* 🚨 ci: fix lint

* 🐛 fix: 修正重构遗留 bug

* 🐛 fix: 修正更新 agent config 的问题

* 🗃️ fix: 完善数据迁移逻辑

* 🎨 chore: 优化迁移模块代码

* ♻️ refactor: 重构 configService

*  perf: 移除 localStorage 存储

*  feat: 新增迁移组件

* 🎨 chore: 完善迁移逻辑

*  feat: 支持 sessions 的全文本字段搜索

*  feat: 支持 topics 的全文本字段搜索

* 🚸 style: 完善 i18n 与错误反馈

*  perf: 补充性能测试模块

* 📱 style: 移动端样式兼容

*  feat: 新增数据导入弹窗

* 🐛 fix: 修正 topic 排序问题

* 🐛 fix: 修正 inbox 没有正常响应的问题

*  test: fix test

* 🎨 chore: 优化 chatSelectors

* 🐛 fix: 迁移前数据仅备份不清空

* 🌐 style: 优化国际化文案
2023-11-30 14:37:40 +08:00
semantic-release-bot 981015c911 🔖 chore(release): v0.106.0 [skip ci]
## [Version&nbsp;0.106.0](https://github.com/lobehub/lobe-chat/compare/v0.105.2...v0.106.0)
<sup>Released on **2023-11-29**</sup>

####  Features

- **misc**: Support custom deletion, addition, and renaming of models.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support custom deletion, addition, and renaming of models, closes [#521](https://github.com/lobehub/lobe-chat/issues/521) [#518](https://github.com/lobehub/lobe-chat/issues/518) [#518](https://github.com/lobehub/lobe-chat/issues/518) ([65e0824](https://github.com/lobehub/lobe-chat/commit/65e0824))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-29 15:57:33 +00:00
mushan0x0 65e08249a8 feat: Support custom deletion, addition, and renaming of models (#521)
*  feat: Support custom deletion, addition, and renaming of models (#518)

* 📝 docs: Update the `CUSTOM_MODELS` documentation (#518)

*  test: Add `CUSTOM_MODELS` snapshot testing
2023-11-29 23:56:07 +08:00
lobehubbot 02ef6648e0 📝 docs(bot): Auto sync agents & plugin to readme 2023-11-29 07:55:47 +00:00
Yuhang ac13a72d80 📝 docs: add deploy to Zeabur guide in README (#523)
* docs: add deploy to Zeabur guide in README

* docs: add deploy to Zeabur in zh-CN Readme

* docs: fix typo in Readme
2023-11-29 15:54:29 +08:00
semantic-release-bot d78f1aa998 🔖 chore(release): v0.105.2 [skip ci]
### [Version&nbsp;0.105.2](https://github.com/lobehub/lobe-chat/compare/v0.105.1...v0.105.2)
<sup>Released on **2023-11-27**</sup>

#### 🐛 Bug Fixes

- **misc**: Add some env to Dockerfile.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Add some env to Dockerfile, closes [#514](https://github.com/lobehub/lobe-chat/issues/514) ([ed148db](https://github.com/lobehub/lobe-chat/commit/ed148db))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-27 04:25:19 +00:00
Arvin Xu ed148dbd6b 🐛 fix: add some env to Dockerfile (#514) 2023-11-27 12:23:58 +08:00
lobehubbot 885718b87c 📝 docs(bot): Auto sync agents & plugin to readme 2023-11-27 04:22:50 +00:00
Arvin Xu 5298d3cbbf 📝 docs: Update README (#515)
* Update README.md

* Update README.md

* Update README.zh-CN.md

* Update README.zh-CN.md

* Update README.zh-CN.md

* Update README.md

* Update README.zh-CN.md
2023-11-27 12:21:19 +08:00
semantic-release-bot 5e78c8c6a9 🔖 chore(release): v0.105.1 [skip ci]
### [Version&nbsp;0.105.1](https://github.com/lobehub/lobe-chat/compare/v0.105.0...v0.105.1)
<sup>Released on **2023-11-27**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix agent market detail scroll error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix agent market detail scroll error, closes [#503](https://github.com/lobehub/lobe-chat/issues/503) ([8900ad0](https://github.com/lobehub/lobe-chat/commit/8900ad0))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-27 03:26:12 +00:00
Moonlit 8900ad0dc2 🐛 fix: fix agent market detail scroll error (#503)
* Update index.tsx

修复整体布局页面滚动造成的显示BUG

* Update AgentDetail.tsx

修复AgentDetail的draggable-panel节点在切换后渲染高度height:auto导致的页面滚动问题
2023-11-27 11:24:45 +08:00
lobehubbot 97dd03e0d0 📝 docs(bot): Auto sync agents & plugin to readme 2023-11-22 17:51:03 +00:00
CanisMinor be7935e1d5 📝doc: Update README.md 2023-11-23 01:49:40 +08:00
lobehubbot 0a39ac2803 📝 docs(bot): Auto sync agents & plugin to readme 2023-11-22 09:08:20 +00:00
semantic-release-bot 01664b9207 🔖 chore(release): v0.105.0 [skip ci]
## [Version&nbsp;0.105.0](https://github.com/lobehub/lobe-chat/compare/v0.104.0...v0.105.0)
<sup>Released on **2023-11-22**</sup>

####  Features

- **misc**: Standalone pluginn can get more arguments on init.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Standalone pluginn can get more arguments on init, closes [#498](https://github.com/lobehub/lobe-chat/issues/498) ([a7624f5](https://github.com/lobehub/lobe-chat/commit/a7624f5))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-22 09:07:46 +00:00
Arvin Xu a7624f51a0 feat: standalone pluginn can get more arguments on init (#498)
*  feat: add settings and state props on standalone plugin init

*  test: add test for plugin utils
2023-11-22 17:06:21 +08:00
semantic-release-bot 60cb4a2680 🔖 chore(release): v0.104.0 [skip ci]
## [Version&nbsp;0.104.0](https://github.com/lobehub/lobe-chat/compare/v0.103.1...v0.104.0)
<sup>Released on **2023-11-21**</sup>

####  Features

- **misc**: Support using env variable to set regions for OpenAI Edge Functions..

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support using env variable to set regions for OpenAI Edge Functions., closes [#473](https://github.com/lobehub/lobe-chat/issues/473) ([de6b79e](https://github.com/lobehub/lobe-chat/commit/de6b79e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-21 12:53:37 +00:00
Patrick Lamar de6b79eeba ️ feat: support using env variable to set regions for OpenAI Edge Functions. (#473)
* ️ feat: support using env variable to set preferredRegion for OpenAI edge function

* fix: fix the import problems

* ️ feat: add preferredRegion support for tts and stt

*  test: add more unit test for config.ts and server.ts

---------

Co-authored-by: vophan <dev@vophan.day>
2023-11-21 20:52:17 +08:00
arvinxx 0c4ee9f457 👷 ci: improve ci [skip ci] 2023-11-21 20:45:26 +08:00
semantic-release-bot 6dcb1c77d3 🔖 chore(release): v0.103.1 [skip ci]
### [Version&nbsp;0.103.1](https://github.com/lobehub/lobe-chat/compare/v0.103.0...v0.103.1)
<sup>Released on **2023-11-21**</sup>

#### 🐛 Bug Fixes

- **misc**: Image optimization in docker standalone build.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Image optimization in docker standalone build, closes [#494](https://github.com/lobehub/lobe-chat/issues/494) ([d2bcac3](https://github.com/lobehub/lobe-chat/commit/d2bcac3))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-21 12:36:30 +00:00
Shivam Dua d2bcac3afd 🐛 fix: image optimization in docker standalone build (#494) 2023-11-21 20:35:10 +08:00
semantic-release-bot a85d591f6f 🔖 chore(release): v0.103.0 [skip ci]
## [Version&nbsp;0.103.0](https://github.com/lobehub/lobe-chat/compare/v0.102.4...v0.103.0)
<sup>Released on **2023-11-20**</sup>

####  Features

- **misc**: Support the auto create topic configuration.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support the auto create topic configuration, closes [#490](https://github.com/lobehub/lobe-chat/issues/490) ([a7b7ef0](https://github.com/lobehub/lobe-chat/commit/a7b7ef0))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-20 17:47:19 +00:00
Arvin Xu a7b7ef087a feat: support the auto create topic configuration (#490)
*  feat: support the auto create topic configuration

* 🐛 fix: fix the inbox session that not response on config

* ♻️ refactor: rename the agentConfig folder to agent

* 🎨 refactor: improve code

* 🌐 chore: add i18n
2023-11-21 01:46:01 +08:00
semantic-release-bot df48298ca6 🔖 chore(release): v0.102.4 [skip ci]
### [Version&nbsp;0.102.4](https://github.com/lobehub/lobe-chat/compare/v0.102.3...v0.102.4)
<sup>Released on **2023-11-20**</sup>

#### 🐛 Bug Fixes

- **plugin**: Fix plugin can't get settings from lobe-chat.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **plugin**: Fix plugin can't get settings from lobe-chat, closes [#488](https://github.com/lobehub/lobe-chat/issues/488) ([1555140](https://github.com/lobehub/lobe-chat/commit/1555140))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-20 13:45:16 +00:00
Arvin Xu 1555140b34 🐛 fix(plugin): fix plugin can't get settings from lobe-chat (#488) 2023-11-20 21:43:56 +08:00
semantic-release-bot 6dd99e1c4d 🔖 chore(release): v0.102.3 [skip ci]
### [Version&nbsp;0.102.3](https://github.com/lobehub/lobe-chat/compare/v0.102.2...v0.102.3)
<sup>Released on **2023-11-20**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix plugin not work correct when adding agent from market.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix plugin not work correct when adding agent from market, closes [#394](https://github.com/lobehub/lobe-chat/issues/394) ([7c99816](https://github.com/lobehub/lobe-chat/commit/7c99816))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-20 12:51:56 +00:00
Arvin Xu 7c9981699d 🐛 fix: fix plugin not work correct when adding agent from market (#394)
* 🐛 fix: fix plugin not work correct when adding agent from market

* ♻️ refactor: refactor the plugin and chat service and plugins selectors entry

* 🐛 fix: fix plugin not work correct when adding agent from market

* ♻️ refactor: refactor the chat service

*  test: add test for selectors

*  test: add test

* 📝 docs: add selectors for the data store

* 📝 docs: improve Selectors docs
2023-11-20 20:50:06 +08:00
semantic-release-bot 7f32817f73 🔖 chore(release): v0.102.2 [skip ci]
### [Version&nbsp;0.102.2](https://github.com/lobehub/lobe-chat/compare/v0.102.1...v0.102.2)
<sup>Released on **2023-11-20**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix model tag missing.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix model tag missing, closes [#481](https://github.com/lobehub/lobe-chat/issues/481) ([8c96cf0](https://github.com/lobehub/lobe-chat/commit/8c96cf0))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-20 03:51:18 +00:00
Arvin Xu 8c96cf00e7 🐛 fix: fix model tag missing (#481)
* 🐛 fix: fix the assistant extra don't show tag

*  test: add test for the Assistant Extra Message
2023-11-20 11:50:05 +08:00
CanisMinor 081bb1d35c Update README.md [skip ci] 2023-11-20 01:22:18 +08:00
canisminor1990 fdcce6c94d 📝 docs: Update README.md 2023-11-20 01:03:05 +08:00
canisminor1990 b5fe08c17c 📝 docs: Update README.md 2023-11-20 00:58:02 +08:00
lobehubbot eb142f9153 📝 docs(bot): Auto sync agents & plugin to readme 2023-11-19 16:49:06 +00:00
canisminor1990 e1feefaf55 📝 docs: Update README.md 2023-11-20 00:47:38 +08:00
semantic-release-bot f0b9498d28 🔖 chore(release): v0.102.1 [skip ci]
### [Version&nbsp;0.102.1](https://github.com/lobehub/lobe-chat/compare/v0.102.0...v0.102.1)
<sup>Released on **2023-11-19**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix image upload list missing.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix image upload list missing ([6bbac34](https://github.com/lobehub/lobe-chat/commit/6bbac34))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-19 14:11:48 +00:00
arvinxx 6bbac34c4d 🐛 fix: fix image upload list missing 2023-11-19 22:08:29 +08:00
semantic-release-bot bd2f291800 🔖 chore(release): v0.102.0 [skip ci]
## [Version&nbsp;0.102.0](https://github.com/lobehub/lobe-chat/compare/v0.101.7...v0.102.0)
<sup>Released on **2023-11-19**</sup>

####  Features

- **misc**: Support TTS & STT.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support TTS & STT, closes [#443](https://github.com/lobehub/lobe-chat/issues/443) ([4fa2ef4](https://github.com/lobehub/lobe-chat/commit/4fa2ef4))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-19 13:45:10 +00:00
CanisMinor 4fa2ef410f feat: support TTS & STT (#443)
*  feat(tts): Add tts and stt basic features

*  feat(tts): Handle error

* 💄 style(tts): Add alert to error handler

* 🐛 fix(tts): Error display

* ♻️ refactor: refactor the openai initial code to the createBizOpenAI

* ♻️ refactor(tts): Refactor header config

*  feat: Add TTS voice preview

* 🐛 fix(tts): Fix header

* 🐛 fix: Fix api

---------

Co-authored-by: Arvin Xu <arvinx@foxmail.com>
2023-11-19 21:43:58 +08:00
CanisMinor 26ef087fb3 Merge pull request #477 from lobehub/renovate/next-bundle-analyzer-14.x
Update dependency @next/bundle-analyzer to v14.0.3
2023-11-19 09:39:55 +08:00
renovate[bot] 3c81da7bed Update dependency @next/bundle-analyzer to v14.0.3 2023-11-19 01:39:01 +00:00
CanisMinor 5f634d5922 Merge pull request #478 from lobehub/renovate/next-eslint-plugin-next-14.x
Update dependency @next/eslint-plugin-next to v14.0.3
2023-11-19 09:38:46 +08:00
renovate[bot] 79c22a69fc Update dependency @next/eslint-plugin-next to v14.0.3 2023-11-19 01:20:58 +00:00
CanisMinor 81c0a08cd5 📝 docs: Update README.md [skip ci] 2023-11-19 01:41:24 +08:00
CanisMinor b6340f96a3 Merge pull request #476 from lobehub/arvinxx-patch-1
📝 docs: Update README.md
2023-11-19 01:38:06 +08:00
canisminor1990 1fa4a316ca 📝 docs: Update READEME.md 2023-11-19 01:35:24 +08:00
Arvin Xu 08af6094ed Update README.md 2023-11-18 23:32:25 +08:00
lobehubbot e32daf1ed6 📝 docs(bot): Auto sync agents & plugin to readme 2023-11-18 15:23:23 +00:00
Arvin Xu 5853ab4aa9 📝 docs: Update README.md (#474)
* Update README.md

* Update README.zh-CN.md

* Update README.md
2023-11-18 23:22:12 +08:00
lobehubbot aa0c0b8c4c 📝 docs(bot): Auto sync agents & plugin to readme 2023-11-18 02:00:37 +00:00
semantic-release-bot a4664f907c 🔖 chore(release): v0.101.7 [skip ci]
### [Version&nbsp;0.101.7](https://github.com/lobehub/lobe-chat/compare/v0.101.6...v0.101.7)
<sup>Released on **2023-11-18**</sup>

#### 🐛 Bug Fixes

- **misc**: Agent details sidebar and market page height overflow.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Agent details sidebar and market page height overflow ([71a54cc](https://github.com/lobehub/lobe-chat/commit/71a54cc))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-18 02:00:10 +00:00
CanisMinor a4a5aded73 Merge pull request #471 from Anurag-Kochar-1/fix/agent-sidebar-height-overflow
 Fix: Agent details sidebar and market page height overflow issue
2023-11-18 09:58:59 +08:00
semantic-release-bot 5e4dc61a92 🔖 chore(release): v0.101.6 [skip ci]
### [Version&nbsp;0.101.6](https://github.com/lobehub/lobe-chat/compare/v0.101.5...v0.101.6)
<sup>Released on **2023-11-17**</sup>

#### 💄 Styles

- **misc**: Add config to renderErrorMessages, Use new Alert ui.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add config to renderErrorMessages ([75b6b40](https://github.com/lobehub/lobe-chat/commit/75b6b40))
* **misc**: Use new Alert ui ([cf845a7](https://github.com/lobehub/lobe-chat/commit/cf845a7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-17 17:21:26 +00:00
CanisMinor 6836ae2cb5 Merge pull request #472 from lobehub/style/alert
💄 style: Use new Alert components
2023-11-18 01:20:15 +08:00
canisminor1990 75b6b407d6 💄 style: Add config to renderErrorMessages 2023-11-18 01:17:03 +08:00
Anurag-Kochar-1 71a54cc89a 🐛 fix: Agent details sidebar and market page height overflow 2023-11-17 21:19:16 +05:30
canisminor1990 cf845a7d8e 💄 style: Use new Alert ui 2023-11-17 23:39:51 +08:00
semantic-release-bot 7511f9720f 🔖 chore(release): v0.101.5 [skip ci]
### [Version&nbsp;0.101.5](https://github.com/lobehub/lobe-chat/compare/v0.101.4...v0.101.5)
<sup>Released on **2023-11-17**</sup>

#### 🐛 Bug Fixes

- **misc**: Improve openai error info.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Improve openai error info, closes [#469](https://github.com/lobehub/lobe-chat/issues/469) ([5523b64](https://github.com/lobehub/lobe-chat/commit/5523b64))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-17 09:46:23 +00:00
Arvin Xu 5523b64b8a 🚸 fix: improve openai error info (#469)
* 🚸 fix: improve openai error info

*  test: add test for the createChatCompletion
2023-11-17 17:45:07 +08:00
lobehubbot 98e1f99f6e 📝 docs(bot): Auto sync agents & plugin to readme 2023-11-16 19:11:20 +00:00
Arvin Xu 87a030fb2c ⬆️ chore: upgrade nextjs to 14.0.2 (#467) 2023-11-17 03:10:07 +08:00
lobehubbot 5bdbd6a06a 📝 docs(bot): Auto sync agents & plugin to readme 2023-11-16 02:46:08 +00:00
canisminor1990 9778e1d3c9 📝 docs: Update syntax in markdown 2023-11-16 10:43:36 +08:00
Arvin Xu 7edb10a4d9 📝 docs: Update README with new features (#463) [skip ci]
* Update README.md

* Update README.zh-CN.md
2023-11-15 12:42:55 +08:00
semantic-release-bot a31e63e01a 🔖 chore(release): v0.101.4 [skip ci]
### [Version&nbsp;0.101.4](https://github.com/lobehub/lobe-chat/compare/v0.101.3...v0.101.4)
<sup>Released on **2023-11-14**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix the plugin array merge error when fork agent from market.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix the plugin array merge error when fork agent from market, closes [#459](https://github.com/lobehub/lobe-chat/issues/459) ([fc29b33](https://github.com/lobehub/lobe-chat/commit/fc29b33))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-14 15:57:00 +00:00
Arvin Xu fc29b33561 🐛 fix: fix the plugin array merge error when fork agent from market (#459) 2023-11-14 23:55:48 +08:00
lobehubbot 5c1fcd7300 📝 docs(bot): Auto sync agents & plugin to readme 2023-11-14 15:37:10 +00:00
semantic-release-bot b68f6501d2 🔖 chore(release): v0.101.3 [skip ci]
### [Version&nbsp;0.101.3](https://github.com/lobehub/lobe-chat/compare/v0.101.2...v0.101.3)
<sup>Released on **2023-11-14**</sup>

#### 💄 Styles

- **misc**: Improve password ui to make it more clear.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve password ui to make it more clear, closes [#458](https://github.com/lobehub/lobe-chat/issues/458) ([e3d2a8e](https://github.com/lobehub/lobe-chat/commit/e3d2a8e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-14 15:36:38 +00:00
Arvin Xu e3d2a8e0e3 💄 style: improve password ui to make it more clear (#458)
* 💄 style: improve password ui

* 🌐 style: update locale
2023-11-14 23:35:22 +08:00
semantic-release-bot c4bd818938 🔖 chore(release): v0.101.2 [skip ci]
### [Version&nbsp;0.101.2](https://github.com/lobehub/lobe-chat/compare/v0.101.1...v0.101.2)
<sup>Released on **2023-11-14**</sup>

#### 💄 Styles

- **misc**:  upload image to vision model adapting to mobile device.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**:  upload image to vision model adapting to mobile device, closes [#457](https://github.com/lobehub/lobe-chat/issues/457) ([9c4f4ee](https://github.com/lobehub/lobe-chat/commit/9c4f4ee))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-14 09:42:11 +00:00
Arvin Xu 9c4f4eebd8 style: upload image to vision model adapting to mobile device (#457)
*  style: 上传图片适配移动端
2023-11-14 17:40:33 +08:00
semantic-release-bot 59e833b711 🔖 chore(release): v0.101.1 [skip ci]
### [Version&nbsp;0.101.1](https://github.com/lobehub/lobe-chat/compare/v0.101.0...v0.101.1)
<sup>Released on **2023-11-14**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix market search (fix.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix market search (fix, closes [#437](https://github.com/lobehub/lobe-chat/issues/437) ([178b742](https://github.com/lobehub/lobe-chat/commit/178b742))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-14 08:30:19 +00:00
CanisMinor dd84ae3f0d Merge pull request #455 from lobehub/fix/market
🐛 fix: Fix market search
2023-11-14 15:57:32 +08:00
canisminor1990 178b742fdc 🐛 fix: Fix market search (fix #437) 2023-11-14 15:47:33 +08:00
semantic-release-bot 2b59339973 🔖 chore(release): v0.101.0 [skip ci]
## [Version&nbsp;0.101.0](https://github.com/lobehub/lobe-chat/compare/v0.100.5...v0.101.0)
<sup>Released on **2023-11-14**</sup>

####  Features

- **misc**: Support upload images to chat with gpt4-vision model.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support upload images to chat with gpt4-vision model, closes [#440](https://github.com/lobehub/lobe-chat/issues/440) ([858d047](https://github.com/lobehub/lobe-chat/commit/858d047))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-14 03:56:43 +00:00
Arvin Xu 858d0476e0 feat: support upload images to chat with gpt4-vision model (#440) 2023-11-14 11:55:28 +08:00
lobehubbot cea884676a 📝 docs(bot): Auto sync agents & plugin to readme 2023-11-13 02:53:25 +00:00
arvinxx 36885572a7 test: add test for the config 2023-11-13 10:52:14 +08:00
semantic-release-bot b932cef8df 🔖 chore(release): v0.100.5 [skip ci]
### [Version&nbsp;0.100.5](https://github.com/lobehub/lobe-chat/compare/v0.100.4...v0.100.5)
<sup>Released on **2023-11-11**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor the input area to suit the files upload feature.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor the input area to suit the files upload feature, closes [#442](https://github.com/lobehub/lobe-chat/issues/442) ([57a61fd](https://github.com/lobehub/lobe-chat/commit/57a61fd))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-11 01:41:47 +00:00
Arvin Xu 57a61fde45 ♻️ refactor: refactor the input area to suit the files upload feature (#442)
* ♻️ refactor: refactor the input area from ui

* ♻️ refactor: refactor ActionBar to a configurable stage
2023-11-11 09:40:10 +08:00
semantic-release-bot 240c0c3019 🔖 chore(release): v0.100.4 [skip ci]
### [Version&nbsp;0.100.4](https://github.com/lobehub/lobe-chat/compare/v0.100.3...v0.100.4)
<sup>Released on **2023-11-11**</sup>

#### 🐛 Bug Fixes

- **misc**: Hotkey disabled in form tags.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Hotkey disabled in form tags ([165888f](https://github.com/lobehub/lobe-chat/commit/165888f))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-11 00:50:50 +00:00
CanisMinor cdb23181f2 Merge pull request #441 from Asuka109/fix/dead-key
🐛 fix: hotkey disabled in form tags
2023-11-11 08:49:45 +08:00
Asuka109 165888f529 🐛 fix: hotkey disabled in form tags 2023-11-11 01:29:45 +08:00
Arvin Xu bd1253cd2d 📌 chore: lock nextjs to 14.0.1 to avoid build error (#439) 2023-11-10 11:55:23 +08:00
semantic-release-bot 4f39e9b68f 🔖 chore(release): v0.100.3 [skip ci]
### [Version&nbsp;0.100.3](https://github.com/lobehub/lobe-chat/compare/v0.100.2...v0.100.3)
<sup>Released on **2023-11-09**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix market error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix market error ([3d7550c](https://github.com/lobehub/lobe-chat/commit/3d7550c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-09 12:56:17 +00:00
arvinxx 3d7550ce07 🐛 fix: fix market error 2023-11-09 20:54:28 +08:00
semantic-release-bot 253af8b720 🔖 chore(release): v0.100.2 [skip ci]
### [Version&nbsp;0.100.2](https://github.com/lobehub/lobe-chat/compare/v0.100.1...v0.100.2)
<sup>Released on **2023-11-09**</sup>

#### 🐛 Bug Fixes

- **misc**: Upgrade viewport for nextjs 14.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Upgrade viewport for nextjs 14, closes [#436](https://github.com/lobehub/lobe-chat/issues/436) ([57d3d07](https://github.com/lobehub/lobe-chat/commit/57d3d07))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-09 05:15:24 +00:00
Arvin Xu 57d3d07545 🐛 fix: upgrade viewport for nextjs 14 (#436) 2023-11-09 13:13:53 +08:00
semantic-release-bot 4cffb22a84 🔖 chore(release): v0.100.1 [skip ci]
### [Version&nbsp;0.100.1](https://github.com/lobehub/lobe-chat/compare/v0.100.0...v0.100.1)
<sup>Released on **2023-11-09**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-09 05:01:07 +00:00
Asuka109 53e6589f8d ⬆️ build: update next to v14 (#434)
* ⬆️ build: bump next.js

* 🎨 style: organize next config to suppress eslint warnings

* 🐛 fix: ui flickering when using @ant-design/cssinjs

* 🧑‍💻 chore: suppress hydration warning by browser extensions
2023-11-09 12:59:54 +08:00
semantic-release-bot 0cae3cf109 🔖 chore(release): v0.100.0 [skip ci]
## [Version&nbsp;0.100.0](https://github.com/lobehub/lobe-chat/compare/v0.99.1...v0.100.0)
<sup>Released on **2023-11-09**</sup>

####  Features

- **hotkeys**: Compatible with SSR, display platform specific key.
- **misc**: Platform check utils.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **hotkeys**: Compatible with SSR ([99fa4f8](https://github.com/lobehub/lobe-chat/commit/99fa4f8))
* **hotkeys**: Display platform specific key ([ee332a4](https://github.com/lobehub/lobe-chat/commit/ee332a4))
* **misc**: Platform check utils ([08a3cb9](https://github.com/lobehub/lobe-chat/commit/08a3cb9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-09 01:56:16 +00:00
CanisMinor fcb5e6fc88 Merge pull request #421 from Asuka109/feat/platform-specific-hotkey
 feat(hotkeys): display platform specific key
2023-11-09 09:54:56 +08:00
Asuka109 daeae4291e Merge branch 'main' into feat/platform-specific-hotkey 2023-11-09 01:40:29 +08:00
Asuka109 99fa4f81eb feat(hotkeys): compatible with SSR 2023-11-09 01:36:27 +08:00
semantic-release-bot b93d69b315 🔖 chore(release): v0.99.1 [skip ci]
### [Version&nbsp;0.99.1](https://github.com/lobehub/lobe-chat/compare/v0.99.0...v0.99.1)
<sup>Released on **2023-11-08**</sup>

#### 💄 Styles

- **misc**: Add max height to model menu in chat input area.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add max height to model menu in chat input area, closes [#430](https://github.com/lobehub/lobe-chat/issues/430) ([c9a86f3](https://github.com/lobehub/lobe-chat/commit/c9a86f3))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-08 04:53:40 +00:00
Arvin Xu c9a86f3ea1 💄 style: add max height to model menu in chat input area (#430) 2023-11-08 12:52:10 +08:00
semantic-release-bot bfba960610 🔖 chore(release): v0.99.0 [skip ci]
## [Version&nbsp;0.99.0](https://github.com/lobehub/lobe-chat/compare/v0.98.3...v0.99.0)
<sup>Released on **2023-11-08**</sup>

####  Features

- **misc**: Add Environment Variable for custom model name when deploying.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add Environment Variable for custom model name when deploying, closes [#429](https://github.com/lobehub/lobe-chat/issues/429) ([15f9fa2](https://github.com/lobehub/lobe-chat/commit/15f9fa2))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-08 04:34:13 +00:00
Arvin Xu 15f9fa273e feat: add Environment Variable for custom model name when deploying (#429) 2023-11-08 12:32:52 +08:00
CanisMinor 3618de30f4 🔧 chore: Update issue-close-require.yml [skip ci] 2023-11-08 11:37:56 +08:00
CanisMinor 846c3f420a 🔧 chore: Delete .github/workflows/issue-check-inactive.yml [skip ci]] 2023-11-08 11:37:15 +08:00
CanisMinor 2b4e57f831 🔧 chore: Create issues-translate.yml [skip ci] 2023-11-08 11:36:14 +08:00
arvinxx bb06d476ee 📝 docs: add env example for docker deploy [skip ci] 2023-11-08 10:32:34 +08:00
Arvin Xu 434569f0ec 📌 ci: pin ai version to fix deploy error (#426) 2023-11-08 10:03:59 +08:00
semantic-release-bot 258f7e4b5e 🔖 chore(release): v0.98.3 [skip ci]
### [Version&nbsp;0.98.3](https://github.com/lobehub/lobe-chat/compare/v0.98.2...v0.98.3)
<sup>Released on **2023-11-07**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix redirect to welcome problem when there are topics in inbox.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix redirect to welcome problem when there are topics in inbox, closes [#422](https://github.com/lobehub/lobe-chat/issues/422) ([3d2588a](https://github.com/lobehub/lobe-chat/commit/3d2588a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-07 16:06:26 +00:00
Arvin Xu 3d2588a994 🐛 fix: fix redirect to welcome problem when there are topics in inbox (#422)
* 🐛 fix: fix home redirect when is new user

* 🎨 chore: improve code
2023-11-08 00:05:26 +08:00
Asuka109 08a3cb9183 feat: platform check utils 2023-11-07 22:39:59 +08:00
Asuka109 ee332a4458 feat(hotkeys): display platform specific key 2023-11-07 22:21:06 +08:00
lobehubbot 9af165cf17 📝 docs(bot): Auto sync agents & plugin to readme 2023-11-07 08:21:29 +00:00
CanisMinor cc3c1acbaa 🔧 chore: Update release.yml 2023-11-07 16:20:33 +08:00
CanisMinor 5a401dc6f0 🔧 chore: Update release.yml 2023-11-07 16:16:40 +08:00
semantic-release-bot 41cae0a3af 🔖 chore(release): v0.98.2 [skip ci]
### [Version&nbsp;0.98.2](https://github.com/lobehub/lobe-chat/compare/v0.98.1...v0.98.2)
<sup>Released on **2023-11-07**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor antd locale file to useSWR.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor antd locale file to useSWR ([2e1cd7c](https://github.com/lobehub/lobe-chat/commit/2e1cd7c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-07 06:52:08 +00:00
canisminor1990 2e1cd7c7a2 ♻️ refactor: Refactor antd locale file to useSWR 2023-11-07 14:49:19 +08:00
semantic-release-bot 5b85bc22cb 🔖 chore(release): v0.98.1 [skip ci]
### [Version&nbsp;0.98.1](https://github.com/lobehub/lobe-chat/compare/v0.98.0...v0.98.1)
<sup>Released on **2023-11-07**</sup>

#### 💄 Styles

- **misc**: Update welcome assetes.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Update welcome assetes ([8840554](https://github.com/lobehub/lobe-chat/commit/8840554))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-07 05:21:20 +00:00
canisminor1990 8840554b7e 💄 style: Update welcome assetes 2023-11-07 13:19:35 +08:00
semantic-release-bot 0dcb44f9d1 🔖 chore(release): v0.98.0 [skip ci]
## [Version&nbsp;0.98.0](https://github.com/lobehub/lobe-chat/compare/v0.97.1...v0.98.0)
<sup>Released on **2023-11-07**</sup>

####  Features

- **misc**: Support latest openai model.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support latest openai model, closes [#417](https://github.com/lobehub/lobe-chat/issues/417) ([46386dc](https://github.com/lobehub/lobe-chat/commit/46386dc))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-07 02:49:20 +00:00
Arvin Xu 46386dc942 feat: support latest openai model (#417) 2023-11-07 10:47:45 +08:00
semantic-release-bot b092596e72 🔖 chore(release): v0.97.1 [skip ci]
### [Version&nbsp;0.97.1](https://github.com/lobehub/lobe-chat/compare/v0.97.0...v0.97.1)
<sup>Released on **2023-11-06**</sup>

#### 🐛 Bug Fixes

- **misc**: Use pnpm to fix docker release.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Use pnpm to fix docker release ([886cc3b](https://github.com/lobehub/lobe-chat/commit/886cc3b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-06 13:27:15 +00:00
arvinxx 886cc3b516 🐛 fix: use pnpm to fix docker release 2023-11-06 21:21:33 +08:00
arvinxx 6faa53d860 🔧 ci: temporally trigger docker build on main 2023-11-06 21:16:47 +08:00
arvinxx e7fd5d5c23 🔧 ci: try to fix docker build 2023-11-06 21:09:39 +08:00
semantic-release-bot 058fd3f29b 🔖 chore(release): v0.97.0 [skip ci]
## [Version&nbsp;0.97.0](https://github.com/lobehub/lobe-chat/compare/v0.96.9...v0.97.0)
<sup>Released on **2023-11-05**</sup>

####  Features

- **misc**: Add open new topic when open a topic.

#### 🐛 Bug Fixes

- **misc**: Fix toggle back to default topic when clearing topic.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add open new topic when open a topic ([4df6384](https://github.com/lobehub/lobe-chat/commit/4df6384))

#### What's fixed

* **misc**: Fix toggle back to default topic when clearing topic ([6fe0a5c](https://github.com/lobehub/lobe-chat/commit/6fe0a5c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-05 13:41:57 +00:00
arvinxx 4df638487f feat: add open new topic when open a topic 2023-11-05 21:39:22 +08:00
arvinxx 6fe0a5c6c6 🐛 fix: fix toggle back to default topic when clearing topic 2023-11-05 18:33:25 +08:00
semantic-release-bot 638e0bb56c 🔖 chore(release): v0.96.9 [skip ci]
### [Version&nbsp;0.96.9](https://github.com/lobehub/lobe-chat/compare/v0.96.8...v0.96.9)
<sup>Released on **2023-11-04**</sup>

#### 💄 Styles

- **misc**: Update topic list header.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Update topic list header ([ce932d7](https://github.com/lobehub/lobe-chat/commit/ce932d7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-11-04 10:30:06 +00:00
canisminor1990 ce932d7b11 💄 style: Update topic list header 2023-11-04 18:26:38 +08:00
canisminor1990 cd506f1879 📝 docs: Fix readme links [skip ci] 2023-11-03 14:56:28 +08:00
canisminor1990 ec74045f3e 🔧 chore: Update workflow and github action 2023-11-03 14:47:37 +08:00
canisminor1990 81b3b2ad90 🔧 chore(workflow): Add agent/plugin readme list sync workflow 2023-11-03 14:10:08 +08:00
CanisMinor 438b7d0315 📝 docs: Update Plugin-Development.zh-CN.md [skip ci] 2023-11-03 11:57:20 +08:00
CanisMinor 5ff4226ec7 📝 docs: Update Plugin-Development.md 2023-11-03 11:56:15 +08:00
canisminor1990 fb5738e418 📝 docs: Fix links typo 2023-11-02 19:50:33 +08:00
CanisMinor 34390cda77 📝 docs: Update Usage-Topics.zh-CN.md 2023-11-01 15:34:21 +08:00
CanisMinor a3785ab6f3 📝 docs: Update Home.md 2023-11-01 15:33:01 +08:00
CanisMinor 174a19a72a Merge pull request #391 from lobehub/docs/usage
[WIP] 📝 docs: Add usage documents
2023-11-01 15:31:41 +08:00
CanisMinor 2b18a8039f 📝 docs: Add topics usage 2023-11-01 07:29:58 +00:00
CanisMinor 1e1b21b4d4 Update Agents.zh-CN.md 2023-11-01 14:13:39 +08:00
CanisMinor c448ed4f69 Update Agents.md 2023-11-01 14:12:58 +08:00
CanisMinor dc03bf9f3e Update Agents.md 2023-11-01 14:12:09 +08:00
CanisMinor 7a71a5729d Rename Agents to Agents.md 2023-11-01 14:11:58 +08:00
CanisMinor 4bf4677f39 Create Agents 2023-11-01 14:11:44 +08:00
CanisMinor f280d14579 Update Agents.zh-CN.md 2023-11-01 14:09:54 +08:00
CanisMinor 0efdcee032 Update _Sidebar.md 2023-11-01 14:09:30 +08:00
CanisMinor a9ac2431e8 Update Home.md 2023-11-01 14:09:27 +08:00
CanisMinor 15c0f9a1f2 Update Agents.zh-CN.md 2023-11-01 14:04:17 +08:00
CanisMinor 4a98bbba71 Update Agents.zh-CN.md 2023-11-01 14:00:16 +08:00
CanisMinor 1bfacd74bd Create Agents.zh-CN.md 2023-11-01 12:02:33 +08:00
Himanshu Kumar Mahto ae67d622a6 📝 docs: update CODE_OF_CONDUCT.md to fix grammatical error (#389) 2023-11-01 10:10:08 +08:00
semantic-release-bot 887d875c99 🔖 chore(release): v0.96.8 [skip ci]
### [Version&nbsp;0.96.8](https://github.com/lobehub/lobe-chat/compare/v0.96.7...v0.96.8)
<sup>Released on **2023-10-31**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix a bug that weather plugin is not work correctly, template remove sharp deps.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix a bug that weather plugin is not work correctly ([dbb65ff](https://github.com/lobehub/lobe-chat/commit/dbb65ff))
* **misc**: Template remove sharp deps ([380723d](https://github.com/lobehub/lobe-chat/commit/380723d))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-31 15:55:15 +00:00
arvinxx 380723d922 fix: template remove sharp deps 2023-10-31 23:53:42 +08:00
Arvin Xu ddb662a34b Merge pull request #388 from lobehub/fix/weather-plugin
🐛 fix: fix a bug that weather plugin is not work correctly
2023-10-31 23:52:06 +08:00
arvinxx 0673b0a408 👷 ci: improve workflow 2023-10-31 23:44:14 +08:00
semantic-release-bot 5078aae37b 🔖 chore(release): v0.96.7 [skip ci]
### [Version&nbsp;0.96.7](https://github.com/lobehub/lobe-chat/compare/v0.96.6...v0.96.7)
<sup>Released on **2023-10-31**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix a bug when click inbox not switch back to chat page.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix a bug when click inbox not switch back to chat page ([31f6d29](https://github.com/lobehub/lobe-chat/commit/31f6d29))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-31 15:42:31 +00:00
arvinxx dbb65ff6c2 🐛 fix: fix a bug that weather plugin is not work correctly 2023-10-31 23:41:24 +08:00
arvinxx 31f6d29d9b 🐛 fix: fix a bug when click inbox not switch back to chat page 2023-10-31 23:39:24 +08:00
Mohit Dhote 40281097d5 📝 docs: added CODE_OF_CONDUCT.md (#385)
Fixed Issue #389 

[skip ci]
2023-10-30 23:13:15 +08:00
semantic-release-bot e34b10c198 🔖 chore(release): v0.96.6 [skip ci]
### [Version&nbsp;0.96.6](https://github.com/lobehub/lobe-chat/compare/v0.96.5...v0.96.6)
<sup>Released on **2023-10-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Improve plausible analytics ENV.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Improve plausible analytics ENV ([aa851d4](https://github.com/lobehub/lobe-chat/commit/aa851d4))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-30 08:05:38 +00:00
arvinxx aa851d4863 📈 fix: improve plausible analytics ENV 2023-10-30 16:03:50 +08:00
semantic-release-bot 07c4f231df 🔖 chore(release): v0.96.5 [skip ci]
### [Version&nbsp;0.96.5](https://github.com/lobehub/lobe-chat/compare/v0.96.4...v0.96.5)
<sup>Released on **2023-10-29**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix docker image optimization error log.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix docker image optimization error log ([730aec1](https://github.com/lobehub/lobe-chat/commit/730aec1))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-29 15:52:50 +00:00
arvinxx 730aec1e31 🐛 fix: fix docker image optimization error log
refs: https://nextjs.org/docs/messages/sharp-missing-in-production
2023-10-29 23:51:11 +08:00
arvinxx 567922a0ac 🎨 chore: improve style code 2023-10-29 23:49:54 +08:00
semantic-release-bot 48be005438 🔖 chore(release): v0.96.4 [skip ci]
### [Version&nbsp;0.96.4](https://github.com/lobehub/lobe-chat/compare/v0.96.3...v0.96.4)
<sup>Released on **2023-10-29**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix  agents market locale fallback to english.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix  agents market locale fallback to english, closes [#382](https://github.com/lobehub/lobe-chat/issues/382) ([3814523](https://github.com/lobehub/lobe-chat/commit/3814523))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-29 15:41:24 +00:00
Arvin Xu 38145238e7 🐛 fix: fix agents market locale fallback to english (#382)
* 🐛 fix: fix market locale url
2023-10-29 23:40:07 +08:00
CanisMinor 267e2e766b Merge pull request #377 from HKABIG/fix-typos
docs: fixed typos
2023-10-28 21:59:57 +08:00
Ajay Gonepuri ff3b927d4d docs: fix typos 2023-10-28 18:20:48 +05:30
semantic-release-bot 82a50fe78d 🔖 chore(release): v0.96.3 [skip ci]
### [Version&nbsp;0.96.3](https://github.com/lobehub/lobe-chat/compare/v0.96.2...v0.96.3)
<sup>Released on **2023-10-28**</sup>

#### 💄 Styles

- **misc**: Fix SessionList on mobile.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Fix SessionList on mobile ([e7e7b80](https://github.com/lobehub/lobe-chat/commit/e7e7b80))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-28 07:28:44 +00:00
canisminor1990 e7e7b80843 💄 style: Fix SessionList on mobile 2023-10-28 15:26:11 +08:00
semantic-release-bot 68fda25c75 🔖 chore(release): v0.96.2 [skip ci]
### [Version&nbsp;0.96.2](https://github.com/lobehub/lobe-chat/compare/v0.96.1...v0.96.2)
<sup>Released on **2023-10-28**</sup>

#### 💄 Styles

- **misc**: Fix some styles and make updates to various files.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Fix some styles and make updates to various files ([44a5f0a](https://github.com/lobehub/lobe-chat/commit/44a5f0a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-28 06:38:46 +00:00
canisminor1990 44a5f0a87e 💄 style: Fix some styles and make updates to various files
- Add new files related to chat, market, settings, and plugin development
- Modify code in certain files to add functionality and improve performance
- Update URLs and add links to external resources
- Add styles to components for improved appearance
- Update descriptions and improve user experience

This commit introduces new features, updates existing code, and enhances the overall functionality and appearance of the codebase.
2023-10-28 14:35:54 +08:00
semantic-release-bot a73e51963e 🔖 chore(release): v0.96.1 [skip ci]
### [Version&nbsp;0.96.1](https://github.com/lobehub/lobe-chat/compare/v0.96.0...v0.96.1)
<sup>Released on **2023-10-28**</sup>

#### 💄 Styles

- **misc**: Add guide to market page.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add guide to market page ([8a794f9](https://github.com/lobehub/lobe-chat/commit/8a794f9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-28 05:57:39 +00:00
canisminor1990 8a794f93a8 💄 style: Add guide to market page 2023-10-28 13:54:55 +08:00
CanisMinor e160bb891f 📑 docs: Update LICENSE [skip ci] 2023-10-28 12:54:29 +08:00
CanisMinor 7f56411e10 Merge pull request #376 from lobehub/feat/issue-auto-commit
Feat/issue auto commit
2023-10-28 12:51:01 +08:00
canisminor1990 dd01b9eae6 👷 chore(ci): Update GitHub workflows
- Delete "auto-comments.yml" and add "issue-auto-comments.yml"
- Modify "issue-close-require.yml" to include comments on different issue labels
- Delete "issue-remove-inactive.yml" and "pr-welcome.yml"

These changes improve the GitHub workflows for better issue management.
2023-10-28 12:49:03 +08:00
CanisMinor 52735cd001 Merge pull request #375 from shraddha761/autocomment
Auto comment
2023-10-28 12:26:33 +08:00
Shraddha Singh 8105848a3e Auto comment 2023-10-28 08:43:42 +05:30
Lavish Sheth b404015fcb 📝 docs: update LICENSE (#371) 2023-10-28 10:35:22 +08:00
semantic-release-bot 33cf11990f 🔖 chore(release): v0.96.0 [skip ci]
## [Version&nbsp;0.96.0](https://github.com/lobehub/lobe-chat/compare/v0.95.1...v0.96.0)
<sup>Released on **2023-10-27**</sup>

####  Features

- **misc**: Improve pin mode about session group.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Improve pin mode about session group, closes [#369](https://github.com/lobehub/lobe-chat/issues/369) ([75c5883](https://github.com/lobehub/lobe-chat/commit/75c5883))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-27 14:04:28 +00:00
Arvin Xu 75c58835b0 feat: improve pin mode about session group (#369)
* 🚧 wip: add pin group

* 💄 style: improve styles

*  feat: improve pin mode session group
2023-10-27 22:03:10 +08:00
CanisMinor e78d893ba4 Merge pull request #363 from kushal34712/patch-4
Update README.zh-CN.md
2023-10-26 14:15:08 +08:00
CanisMinor 3e3339fcaf Merge pull request #362 from kushal34712/patch-3
Update README.zh-CN.md
2023-10-26 14:14:58 +08:00
CanisMinor bc919beb86 Merge pull request #361 from kushal34712/patch-2
Update README.md
2023-10-26 14:14:44 +08:00
Kushal Agrawal 88408b6aa8 Update README.zh-CN.md 2023-10-26 05:56:16 +05:30
Kushal Agrawal b7a0f2b583 Update README.zh-CN.md 2023-10-26 05:54:48 +05:30
Kushal Agrawal b7d53772d4 Update README.md 2023-10-26 05:52:51 +05:30
semantic-release-bot a4ffdba49b 🔖 chore(release): v0.95.1 [skip ci]
### [Version&nbsp;0.95.1](https://github.com/lobehub/lobe-chat/compare/v0.95.0...v0.95.1)
<sup>Released on **2023-10-25**</sup>

#### 💄 Styles

- **misc**: Improve plugin message ui.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve plugin message ui ([6edd25b](https://github.com/lobehub/lobe-chat/commit/6edd25b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-25 14:58:53 +00:00
arvinxx 7a2b8b5434 🚨 ci: fix types 2023-10-25 22:57:00 +08:00
arvinxx 6edd25bf10 💄 style: improve plugin message ui 2023-10-25 22:49:45 +08:00
arvinxx aec68c8f9b 📝 docs: update Lighthouse report url[skip ci] 2023-10-25 21:15:42 +08:00
Kushal Agrawal a6f51d527a 📝 docs: Update README.md (#360) 2023-10-25 21:09:35 +08:00
semantic-release-bot 6782083edd 🔖 chore(release): v0.95.0 [skip ci]
## [Version&nbsp;0.95.0](https://github.com/lobehub/lobe-chat/compare/v0.94.5...v0.95.0)
<sup>Released on **2023-10-24**</sup>

#### ♻ Code Refactoring

- **misc**: 优化 plugin 文件夹命名以支持 standalone 类型的插件.

####  Features

- **misc**: Support function call at message end, support plugin settings modal, support plugin state and settings.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: 优化 plugin 文件夹命名以支持 standalone 类型的插件 ([98860a8](https://github.com/lobehub/lobe-chat/commit/98860a8))

#### What's improved

* **misc**: Support function call at message end, closes [#357](https://github.com/lobehub/lobe-chat/issues/357) ([e195fdb](https://github.com/lobehub/lobe-chat/commit/e195fdb))
* **misc**: Support plugin settings modal ([f47b6fa](https://github.com/lobehub/lobe-chat/commit/f47b6fa))
* **misc**: Support plugin state and settings ([10829a4](https://github.com/lobehub/lobe-chat/commit/10829a4))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-24 15:30:17 +00:00
Arvin Xu 3951f2fd48 Merge pull request #356 from lobehub/feat/plugin-standalone 2023-10-24 23:28:43 +08:00
arvinxx f47b6fae40 feat: support plugin settings modal 2023-10-24 22:02:06 +08:00
arvinxx 10829a47d8 feat: support plugin state and settings 2023-10-24 21:26:48 +08:00
CanisMinor a750f90e6f 🔧 chore: Update package.json [skip ci] 2023-10-23 14:13:08 +08:00
CanisMinor 134f38433f Merge pull request #350 from lobehub/renovate/commitlint-cli-18.x
Update dependency @commitlint/cli to v18
2023-10-23 14:10:15 +08:00
CanisMinor 9402f7ca7d Merge pull request #351 from lobehub/renovate/commitlint-18.x
Update dependency commitlint to v18
2023-10-23 14:10:03 +08:00
arvinxx 98860a8fb9 ♻️ refactor: 优化 plugin 文件夹命名以支持 standalone 类型的插件 2023-10-22 22:22:34 +08:00
arvinxx e195fdba09 feat: support function call at message end
close #357
2023-10-22 21:42:46 +08:00
arvinxx 94cccb2faa 🔧 ci: update pr-welcome workflow [skip ci] 2023-10-22 19:39:02 +08:00
semantic-release-bot 253c57dc32 🔖 chore(release): v0.94.5 [skip ci]
### [Version&nbsp;0.94.5](https://github.com/lobehub/lobe-chat/compare/v0.94.4...v0.94.5)
<sup>Released on **2023-10-22**</sup>

#### 🐛 Bug Fixes

- **misc**: Fallback  agent market index to en when not find correct locale.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fallback  agent market index to en when not find correct locale, closes [#355](https://github.com/lobehub/lobe-chat/issues/355) ([7a45ab4](https://github.com/lobehub/lobe-chat/commit/7a45ab4))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-22 11:37:12 +00:00
Arvin Xu 7a45ab4a5e 🐛 fix: fallback agent market index to en when not find correct locale (#355)
* 🐛 fix(agent-market): fallback  agent index to en when not find correct locale

* 🐛 fix: fix auto-generate with correct locale
2023-10-22 19:35:56 +08:00
Armaan 5a872af226 📝 docs: add CONTRIBUTING.md (#353) 2023-10-22 18:07:35 +08:00
renovate[bot] 7a86abbef9 Update dependency commitlint to v18 2023-10-22 00:47:32 +00:00
renovate[bot] fe617c010e Update dependency @commitlint/cli to v18 2023-10-22 00:47:28 +00:00
semantic-release-bot d7790a978d 🔖 chore(release): v0.94.4 [skip ci]
### [Version&nbsp;0.94.4](https://github.com/lobehub/lobe-chat/compare/v0.94.3...v0.94.4)
<sup>Released on **2023-10-21**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix break cn chars in stream mode.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix break cn chars in stream mode, closes [#347](https://github.com/lobehub/lobe-chat/issues/347) ([f831447](https://github.com/lobehub/lobe-chat/commit/f831447))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-21 15:17:29 +00:00
Buer f831447be9 🐛 fix: fix break cn chars in stream mode (#347) 2023-10-21 23:16:12 +08:00
semantic-release-bot 24f3dd7ba8 🔖 chore(release): v0.94.3 [skip ci]
### [Version&nbsp;0.94.3](https://github.com/lobehub/lobe-chat/compare/v0.94.2...v0.94.3)
<sup>Released on **2023-10-19**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix agent share formate.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix agent share formate ([56ebc0b](https://github.com/lobehub/lobe-chat/commit/56ebc0b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-19 09:00:47 +00:00
canisminor1990 56ebc0bb2f 🐛 fix: Fix agent share formate 2023-10-19 16:58:41 +08:00
semantic-release-bot 17976c9f4d 🔖 chore(release): v0.94.2 [skip ci]
### [Version&nbsp;0.94.2](https://github.com/lobehub/lobe-chat/compare/v0.94.1...v0.94.2)
<sup>Released on **2023-10-19**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix agent market with other locales.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix agent market with other locales ([2414d34](https://github.com/lobehub/lobe-chat/commit/2414d34))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-19 02:05:45 +00:00
arvinxx 2414d34a84 🐛 fix: fix agent market with other locales 2023-10-19 10:04:09 +08:00
semantic-release-bot 01ff57936a 🔖 chore(release): v0.94.1 [skip ci]
### [Version&nbsp;0.94.1](https://github.com/lobehub/lobe-chat/compare/v0.94.0...v0.94.1)
<sup>Released on **2023-10-19**</sup>

#### 💄 Styles

- **misc**: Update ShareAgentButton.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Update ShareAgentButton ([c396bd7](https://github.com/lobehub/lobe-chat/commit/c396bd7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-19 01:05:21 +00:00
CanisMinor c396bd7986 💄 style: Update ShareAgentButton 2023-10-19 09:03:28 +08:00
semantic-release-bot cc895e0701 🔖 chore(release): v0.94.0 [skip ci]
## [Version&nbsp;0.94.0](https://github.com/lobehub/lobe-chat/compare/v0.93.0...v0.94.0)
<sup>Released on **2023-10-18**</sup>

####  Features

- **misc**: Add agent share.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add agent share ([953d7c7](https://github.com/lobehub/lobe-chat/commit/953d7c7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-18 17:45:08 +00:00
CanisMinor a58d166dc7 Merge pull request #343 from lobehub/feat/agent-share
 feat: Add agent share
2023-10-19 01:43:30 +08:00
CanisMinor b1f8e90b46 Merge pull request #342 from suravshresth/patch1
docs: fix typo in ./docs/Deploy-with-Azure-OpenAI.md
2023-10-19 01:42:22 +08:00
canisminor1990 ba712f650c 🔧 chore: Merge main 2023-10-19 01:40:11 +08:00
canisminor1990 953d7c73b3 feat: Add agent share 2023-10-19 01:28:23 +08:00
semantic-release-bot 709ec1a640 🔖 chore(release): v0.93.0 [skip ci]
## [Version&nbsp;0.93.0](https://github.com/lobehub/lobe-chat/compare/v0.92.0...v0.93.0)
<sup>Released on **2023-10-18**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor chain.

####  Features

- **misc**: Support multi-language translate.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor chain ([49c4863](https://github.com/lobehub/lobe-chat/commit/49c4863))

#### What's improved

* **misc**: Support multi-language translate ([548bc5d](https://github.com/lobehub/lobe-chat/commit/548bc5d))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-18 13:59:50 +00:00
arvinxx 548bc5d322 feat: support multi-language translate 2023-10-18 21:57:55 +08:00
Surav Shrestha 57d65ccc1f docs: fix typo in ./docs/Deploy-with-Azure-OpenAI.md 2023-10-18 18:59:05 +05:45
arvinxx 49c4863838 🎨 refactor: refactor chain 2023-10-18 21:00:05 +08:00
semantic-release-bot c45526a811 🔖 chore(release): v0.92.0 [skip ci]
## [Version&nbsp;0.92.0](https://github.com/lobehub/lobe-chat/compare/v0.91.0...v0.92.0)
<sup>Released on **2023-10-18**</sup>

####  Features

- **misc**: Support translate message to current language.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support translate message to current language, closes [#340](https://github.com/lobehub/lobe-chat/issues/340) ([cf15f1e](https://github.com/lobehub/lobe-chat/commit/cf15f1e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-18 06:59:42 +00:00
Arvin Xu cf15f1ebff feat: support translate message to current language (#340)
* 🚚 refactor: rename prompts to chains

* ♻️ refactor: refactor Message Actions

* ♻️ refactor: add translate action

*  feat: support translate

* ♻️ refactor: refactor part of common locale to chat

* 🌐 style: update i18n
2023-10-18 14:58:02 +08:00
semantic-release-bot 33c0853466 🔖 chore(release): v0.91.0 [skip ci]
## [Version&nbsp;0.91.0](https://github.com/lobehub/lobe-chat/compare/v0.90.3...v0.91.0)
<sup>Released on **2023-10-17**</sup>

####  Features

- **misc**: Add hotkeys.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add hotkeys, closes [#286](https://github.com/lobehub/lobe-chat/issues/286) ([041054d](https://github.com/lobehub/lobe-chat/commit/041054d))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-17 16:25:19 +00:00
canisminor1990 041054d89b feat: Add hotkeys (#286) 2023-10-18 00:21:43 +08:00
semantic-release-bot 3cd9fdb599 🔖 chore(release): v0.90.3 [skip ci]
### [Version&nbsp;0.90.3](https://github.com/lobehub/lobe-chat/compare/v0.90.2...v0.90.3)
<sup>Released on **2023-10-17**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix ActionBar props and regenerate btn with error message.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix ActionBar props and regenerate btn with error message, closes [#337](https://github.com/lobehub/lobe-chat/issues/337) ([246e8fd](https://github.com/lobehub/lobe-chat/commit/246e8fd))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-17 13:52:55 +00:00
canisminor1990 246e8fda5b 🐛 fix: Fix ActionBar props and regenerate btn with error message (#337) 2023-10-17 21:47:51 +08:00
semantic-release-bot 5c09420a21 🔖 chore(release): v0.90.2 [skip ci]
### [Version&nbsp;0.90.2](https://github.com/lobehub/lobe-chat/compare/v0.90.1...v0.90.2)
<sup>Released on **2023-10-17**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor OpenAIStreamPayload with chat name.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor OpenAIStreamPayload with chat name ([a799530](https://github.com/lobehub/lobe-chat/commit/a799530))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-17 12:52:43 +00:00
arvinxx a7995309a0 ♻️ refactor: refactor OpenAIStreamPayload with chat name 2023-10-17 20:50:09 +08:00
semantic-release-bot 49349b40bc 🔖 chore(release): v0.90.1 [skip ci]
### [Version&nbsp;0.90.1](https://github.com/lobehub/lobe-chat/compare/v0.90.0...v0.90.1)
<sup>Released on **2023-10-17**</sup>

#### 💄 Styles

- **misc**: Fix lazyload height.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Fix lazyload height ([98efe02](https://github.com/lobehub/lobe-chat/commit/98efe02))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-17 08:34:59 +00:00
CanisMinor 98efe02a2a 💄 style: Fix lazyload height 2023-10-17 16:33:07 +08:00
semantic-release-bot dd8d47cffc 🔖 chore(release): v0.90.0 [skip ci]
## [Version&nbsp;0.90.0](https://github.com/lobehub/lobe-chat/compare/v0.89.10...v0.90.0)
<sup>Released on **2023-10-17**</sup>

####  Features

- **misc**: Add Lazyload.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add Lazyload ([27d6cb7](https://github.com/lobehub/lobe-chat/commit/27d6cb7))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-17 08:16:08 +00:00
canisminor1990 27d6cb7d5c feat: Add Lazyload 2023-10-17 16:13:29 +08:00
semantic-release-bot 819eb19273 🔖 chore(release): v0.89.10 [skip ci]
### [Version&nbsp;0.89.10](https://github.com/lobehub/lobe-chat/compare/v0.89.9...v0.89.10)
<sup>Released on **2023-10-17**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor ChatList onActionsClick.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor ChatList onActionsClick ([d06d87e](https://github.com/lobehub/lobe-chat/commit/d06d87e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-17 05:34:27 +00:00
canisminor1990 0b165eb6a5 📝 docs: Update docs 2023-10-17 13:32:17 +08:00
canisminor1990 d06d87eb12 ♻️ refactor: Refactor ChatList onActionsClick 2023-10-17 13:30:28 +08:00
semantic-release-bot fca6b58889 🔖 chore(release): v0.89.9 [skip ci]
### [Version&nbsp;0.89.9](https://github.com/lobehub/lobe-chat/compare/v0.89.8...v0.89.9)
<sup>Released on **2023-10-17**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix ChatList FC Render.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix ChatList FC Render ([4b8bdbd](https://github.com/lobehub/lobe-chat/commit/4b8bdbd))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-17 04:08:08 +00:00
canisminor1990 4b8bdbd3b8 🐛 fix: Fix ChatList FC Render 2023-10-17 12:05:29 +08:00
CanisMinor 16cf40d3e0 Merge pull request #333 from Shivam250702/main
Update README.md
2023-10-17 08:54:31 +08:00
semantic-release-bot e7bdc705a5 🔖 chore(release): v0.89.8 [skip ci]
### [Version&nbsp;0.89.8](https://github.com/lobehub/lobe-chat/compare/v0.89.7...v0.89.8)
<sup>Released on **2023-10-16**</sup>

#### ♻ Code Refactoring

- **misc**: Refactor ChatList.

#### 🐛 Bug Fixes

- **misc**: Fix type.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Refactor ChatList, closes [#147](https://github.com/lobehub/lobe-chat/issues/147) ([aa4216c](https://github.com/lobehub/lobe-chat/commit/aa4216c))

#### What's fixed

* **misc**: Fix type ([1e931d5](https://github.com/lobehub/lobe-chat/commit/1e931d5))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-16 17:09:54 +00:00
canisminor1990 1e931d572b 🐛 fix: Fix type 2023-10-17 01:07:22 +08:00
canisminor1990 aa4216c174 ♻️ refactor: Refactor ChatList (#147) 2023-10-17 01:02:34 +08:00
semantic-release-bot a977383e06 🔖 chore(release): v0.89.7 [skip ci]
### [Version&nbsp;0.89.7](https://github.com/lobehub/lobe-chat/compare/v0.89.6...v0.89.7)
<sup>Released on **2023-10-16**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix setting tab highlight (fix.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix setting tab highlight (fix, closes [#332](https://github.com/lobehub/lobe-chat/issues/332) ([d288f9d](https://github.com/lobehub/lobe-chat/commit/d288f9d))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-16 12:23:56 +00:00
canisminor1990 d288f9d8f1 🐛 fix: Fix setting tab highlight (fix #332) 2023-10-16 20:20:37 +08:00
Shivam Singh 9681cd048b Update README.md
Removed Unnecessary punctuation marks and errors.
2023-10-16 16:33:41 +05:30
CanisMinor 0e278f2856 🔧 chore(workflow): Update pr-welcome.yml 2023-10-16 14:05:19 +08:00
CanisMinor cb3f09b3eb Merge pull request #321 from lobehub/renovate/lint-staged-15.x
Update dependency lint-staged to v15
2023-10-16 13:47:55 +08:00
semantic-release-bot 8fecbd0757 🔖 chore(release): v0.89.6 [skip ci]
### [Version&nbsp;0.89.6](https://github.com/lobehub/lobe-chat/compare/v0.89.5...v0.89.6)
<sup>Released on **2023-10-15**</sup>

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-15 15:10:58 +00:00
arvinxx 585b2772b9 perf: improve ssr performance 2023-10-15 23:09:17 +08:00
arvinxx d9e2f1657a 📝 docs: update vercel deploy doc [skip ci] 2023-10-15 22:53:58 +08:00
arvinxx 8af8583974 📝 docs: fix vercel deploy button url [skip-ci]
close #309
2023-10-15 22:49:45 +08:00
semantic-release-bot 11421f45aa 🔖 chore(release): v0.89.5 [skip ci]
### [Version&nbsp;0.89.5](https://github.com/lobehub/lobe-chat/compare/v0.89.4...v0.89.5)
<sup>Released on **2023-10-15**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix fallback to en when the locale is zh, fix reset button not clear plugin settings.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix fallback to en when the locale is zh ([ff2c00e](https://github.com/lobehub/lobe-chat/commit/ff2c00e))
* **misc**: Fix reset button not clear plugin settings ([aa1e657](https://github.com/lobehub/lobe-chat/commit/aa1e657))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-15 14:26:37 +00:00
Arvin Xu 07d076b391 Merge pull request #329 from lobehub/fix/some-bugs
🐛 fix: fix some bugs
2023-10-15 22:25:09 +08:00
arvinxx ff2c00e137 🐛 fix: fix fallback to en when the locale is zh 2023-10-15 22:19:45 +08:00
arvinxx aa1e6576a9 🐛 fix: fix reset button not clear plugin settings 2023-10-15 22:16:45 +08:00
Arvin Xu af7ecf72dc 📝 docs: add feature development doc (#328) [skip ci] 2023-10-15 22:03:13 +08:00
Arvin Xu 88fe525d77 📝 docs: add Architecture draft (#327) [skip ci] 2023-10-15 21:51:24 +08:00
Arvin Xu a30057ba9e 📝 docs: add resources and chat api documents (#326) [skip ci]
* 📝 docs: add Resources document

* 📝 docs: add Chat api document
2023-10-15 21:11:08 +08:00
Arvin Xu bbae3ff17a 📝 docs: update Resources document (#325) [skip ci] 2023-10-15 19:41:06 +08:00
Arvin Xu 43d66dfbce 📝 docs: add test development document (#324) [skip ci]
* 📝 docs: add test document

* 📝 docs: update test document
2023-10-15 19:21:49 +08:00
Aditya Aryaman Das 4214462007 docs: corrected grammatical errors in README.md (#322) [skip ci] 2023-10-15 19:17:01 +08:00
semantic-release-bot c6641a0271 🔖 chore(release): v0.89.4 [skip ci]
### [Version&nbsp;0.89.4](https://github.com/lobehub/lobe-chat/compare/v0.89.3...v0.89.4)
<sup>Released on **2023-10-15**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix qwen, chatglm request failed.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix qwen, chatglm request failed, closes [#318](https://github.com/lobehub/lobe-chat/issues/318) ([a5699e2](https://github.com/lobehub/lobe-chat/commit/a5699e2))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-15 06:40:20 +00:00
Ikko Eltociear Ashimine 29a57647f9 📝 docs: Update README.md (#319)
a -> an
2023-10-15 14:38:36 +08:00
Buer a5699e2da2 🐛 fix: Fix qwen, chatglm request failed (#318) 2023-10-15 14:37:10 +08:00
renovate[bot] b49fe936ba Update dependency lint-staged to v15 2023-10-15 01:15:32 +00:00
CanisMinor 90dd2ee592 📝 docs: Fix typo 2023-10-13 09:39:01 +00:00
CanisMinor 8fccfdaa11 📝 docs: Update docs 2023-10-13 09:29:52 +00:00
CanisMinor 04ed2db1c6 📝 docs: Fix typo 2023-10-13 09:25:31 +00:00
CanisMinor 315ffb3195 📝 docs: Update docker guide 2023-10-13 09:20:07 +00:00
CanisMinor d03d60bd35 📝 docs: Update docker guide 2023-10-13 09:18:51 +00:00
CanisMinor 22f07278a7 📝 docs: Update docker guide 2023-10-13 09:15:42 +00:00
arvinxx 57e22e8a54 📝 docs: update docs 2023-10-13 00:25:34 +08:00
Arvin Xu a4b99cad0c 📝 docs: add docs about setup local development env (#316) [skip ci] 2023-10-12 23:58:07 +08:00
semantic-release-bot 02d9e53bc4 🔖 chore(release): v0.89.3 [skip ci]
### [Version&nbsp;0.89.3](https://github.com/lobehub/lobe-chat/compare/v0.89.2...v0.89.3)
<sup>Released on **2023-10-12**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix plugin error with nginx reverse proxy.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix plugin error with nginx reverse proxy, closes [#315](https://github.com/lobehub/lobe-chat/issues/315) ([3ba3a3b](https://github.com/lobehub/lobe-chat/commit/3ba3a3b))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-12 15:15:33 +00:00
Arvin Xu 3ba3a3b47d 🐛 fix: fix plugin error with nginx reverse proxy (#315) 2023-10-12 23:14:07 +08:00
Arvin Xu 7b31f0c205 📝 docs: add development guide [skip ci] (#313) 2023-10-12 22:44:01 +08:00
arvinxx 95df1057f5 📝 docs: update docker deploy docs [skip ci] 2023-10-12 21:29:53 +08:00
Arvin Xu 4b9b713447 📝 docs: update docker deploy docs (#312) [skip ci] 2023-10-12 21:21:47 +08:00
arvinxx f988945fa0 📝 docs: update analytics config 2023-10-12 20:56:19 +08:00
semantic-release-bot 013f4c2349 🔖 chore(release): v0.89.2 [skip ci]
### [Version&nbsp;0.89.2](https://github.com/lobehub/lobe-chat/compare/v0.89.1...v0.89.2)
<sup>Released on **2023-10-12**</sup>

#### 💄 Styles

- **misc**: Modify onClick event in SessionHeader, change title in Loading component,.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Modify onClick event in SessionHeader, change title in Loading component, ([b984f6a](https://github.com/lobehub/lobe-chat/commit/b984f6a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-12 06:10:22 +00:00
canisminor1990 b984f6a276 💄 style: Modify onClick event in SessionHeader, change title in Loading component,
add Suspense and FullscreenLoading components, modify layoutInitializing key

- Modify onClick event in SessionHeader.tsx
- Change title in Loading component in index.tsx
- Add Suspense and FullscreenLoading components in ResponsiveIndex.tsx and ResponsiveLayout.client.tsx respectively
- Modify layoutInitializing key in common.ts
2023-10-12 14:07:09 +08:00
semantic-release-bot 499c28f5ea 🔖 chore(release): v0.89.1 [skip ci]
### [Version&nbsp;0.89.1](https://github.com/lobehub/lobe-chat/compare/v0.89.0...v0.89.1)
<sup>Released on **2023-10-12**</sup>

#### 🐛 Bug Fixes

- **misc**: Remove useless dynamic import.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Remove useless dynamic import ([4a9c426](https://github.com/lobehub/lobe-chat/commit/4a9c426))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-12 05:51:20 +00:00
canisminor1990 4a9c4260fa 🐛 fix: Remove useless dynamic import 2023-10-12 13:48:21 +08:00
canisminor1990 a169234278 🔧 chore: Update next.config.mjs file
- Remove "productionBrowserSourceMaps" property
- Make "compress" property dependent on "isProd" variable
- Set "reactStrictMode" property to true
- Modify "images" property to set "unoptimized" based on "isProd" variable

These changes improve the configuration of the Next.js application.
2023-10-12 12:09:33 +08:00
semantic-release-bot 63f831eabf 🔖 chore(release): v0.89.0 [skip ci]
## [Version&nbsp;0.89.0](https://github.com/lobehub/lobe-chat/compare/v0.88.0...v0.89.0)
<sup>Released on **2023-10-12**</sup>

####  Features

- **agent-card**: Add and modify features for agent card.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **agent-card**: Add and modify features for agent card ([3e3090a](https://github.com/lobehub/lobe-chat/commit/3e3090a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-12 04:07:32 +00:00
canisminor1990 3e3090a765 feat(agent-card): Add and modify features for agent card
- Add and modify configurations, dependencies, styles, and metadata
- Remove and modify props and styles in AgentCardBanner, AvatarBanner, and Hero components
- Adjust height of elements in the layout

The changes are made to enhance the agent card feature in the market application.
2023-10-12 12:04:42 +08:00
semantic-release-bot f05368a45e 🔖 chore(release): v0.88.0 [skip ci]
## [Version&nbsp;0.88.0](https://github.com/lobehub/lobe-chat/compare/v0.87.0...v0.88.0)
<sup>Released on **2023-10-11**</sup>

####  Features

- **misc**: Add mobile responsiveness, create new component, modify properties, make API calls, Dynamically import components using "dynamic" function.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add mobile responsiveness, create new component, modify properties, make API calls ([759c920](https://github.com/lobehub/lobe-chat/commit/759c920))
* **misc**: Dynamically import components using "dynamic" function ([dd9db22](https://github.com/lobehub/lobe-chat/commit/dd9db22))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-11 16:29:34 +00:00
CanisMinor 834febba90 Merge pull request #306 from lobehub/pref/dynamic
♻️ refactor(pref): Refactor with next dynamically import and next image
2023-10-12 00:27:50 +08:00
canisminor1990 759c920d04 feat: Add mobile responsiveness, create new component, modify properties, make API calls
This commit introduces new features such as adding mobile responsiveness, creating a new component, modifying properties, and making API calls. It also includes a base64 encoded image, a random string of characters, and defines constants and functions.

Changes made:
- Added mobile responsiveness to improve user experience on different devices
- Created a new component to enhance functionality
- Modified properties to ensure proper data handling
- Made API calls to retrieve and display dynamic data
- Included a base64 encoded image for visual content
- Defined constants and functions for improved code organization and reusability
2023-10-12 00:22:02 +08:00
canisminor1990 347ee86acb 🔧 chore: Add remotePatterns 2023-10-11 23:12:43 +08:00
canisminor1990 dd9db22a66 feat: Dynamically import components using "dynamic" function
- Improves performance by lazy loading components only when needed
- Removes a deleted file and updates layout of certain components

This commit introduces a new feature by using the "dynamic" function from the "next/dynamic" library to dynamically import components. This allows for lazy loading of components, improving performance by only loading them when needed. Additionally, it removes a deleted file and updates the layout of certain components.
2023-10-11 22:54:49 +08:00
semantic-release-bot 9ea2ebb164 🔖 chore(release): v0.87.0 [skip ci]
## [Version&nbsp;0.87.0](https://github.com/lobehub/lobe-chat/compare/v0.86.5...v0.87.0)
<sup>Released on **2023-10-11**</sup>

####  Features

- **misc**: Support custom model name.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support custom model name, closes [#305](https://github.com/lobehub/lobe-chat/issues/305) ([84a066a](https://github.com/lobehub/lobe-chat/commit/84a066a))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-11 14:48:47 +00:00
Arvin Xu 84a066af73 feat: support custom model name (#305) 2023-10-11 22:47:10 +08:00
semantic-release-bot a1b0d83b1d 🔖 chore(release): v0.86.5 [skip ci]
### [Version&nbsp;0.86.5](https://github.com/lobehub/lobe-chat/compare/v0.86.4...v0.86.5)
<sup>Released on **2023-10-11**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix clear session error.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix clear session error, closes [#303](https://github.com/lobehub/lobe-chat/issues/303) ([09512fc](https://github.com/lobehub/lobe-chat/commit/09512fc))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-11 13:32:49 +00:00
Arvin Xu 09512fcb0b 🐛 fix: fix clear session error (#303) 2023-10-11 21:31:21 +08:00
semantic-release-bot ff2e59b769 🔖 chore(release): v0.86.4 [skip ci]
### [Version&nbsp;0.86.4](https://github.com/lobehub/lobe-chat/compare/v0.86.3...v0.86.4)
<sup>Released on **2023-10-11**</sup>

#### 💄 Styles

- **misc**: Improve api key form.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Improve api key form ([fa3170d](https://github.com/lobehub/lobe-chat/commit/fa3170d))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-11 13:17:48 +00:00
arvinxx fa3170d7a1 💄 style: improve api key form 2023-10-11 21:15:36 +08:00
canisminor1990 e4b36c3f51 🔧 chore: Update sync workflow 2023-10-11 14:13:50 +08:00
semantic-release-bot 52af45c973 🔖 chore(release): v0.86.3 [skip ci]
### [Version&nbsp;0.86.3](https://github.com/lobehub/lobe-chat/compare/v0.86.2...v0.86.3)
<sup>Released on **2023-10-11**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix docker image.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix docker image ([14ff80e](https://github.com/lobehub/lobe-chat/commit/14ff80e))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-11 06:09:39 +00:00
arvinxx 14ff80e15f 🚑 fix: fix docker image 2023-10-11 14:07:40 +08:00
canisminor1990 e477fe791c 🔧 chore: Add docker badge and update workflow 2023-10-11 13:59:22 +08:00
semantic-release-bot d4f24dadc2 🔖 chore(release): v0.86.2 [skip ci]
### [Version&nbsp;0.86.2](https://github.com/lobehub/lobe-chat/compare/v0.86.1...v0.86.2)
<sup>Released on **2023-10-11**</sup>

#### 🐛 Bug Fixes

- **docker**: Improve config to reduce unnecessary env and change default PORT.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **docker**: Improve config to reduce unnecessary env and change default PORT, closes [#298](https://github.com/lobehub/lobe-chat/issues/298) ([6061318](https://github.com/lobehub/lobe-chat/commit/6061318))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-11 05:06:53 +00:00
Arvin Xu 6061318206 🐛 fix(docker): improve config to reduce unnecessary env and change default PORT (#298) 2023-10-11 13:05:24 +08:00
Vector fc3f76135c 📝 docs: Update README.zh-CN.md (#296) [skip ci] 2023-10-11 12:40:43 +08:00
Vector 8af725d9de 📝 docs: update README.md (#295) [skip ci] 2023-10-11 12:39:54 +08:00
semantic-release-bot 35bd805404 🔖 chore(release): v0.86.1 [skip ci]
### [Version&nbsp;0.86.1](https://github.com/lobehub/lobe-chat/compare/v0.86.0...v0.86.1)
<sup>Released on **2023-10-11**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix docker reverse proxy don't work.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix docker reverse proxy don't work, closes [#294](https://github.com/lobehub/lobe-chat/issues/294) ([a51ba1d](https://github.com/lobehub/lobe-chat/commit/a51ba1d))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-11 03:28:05 +00:00
Arvin Xu a51ba1d78f 🐛 fix: fix docker reverse proxy don't work (#294) 2023-10-11 11:26:31 +08:00
semantic-release-bot 535b81c4be 🔖 chore(release): v0.86.0 [skip ci]
## [Version&nbsp;0.86.0](https://github.com/lobehub/lobe-chat/compare/v0.85.3...v0.86.0)
<sup>Released on **2023-10-10**</sup>

####  Features

- **misc**: Support docker deploy.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support docker deploy, closes [#283](https://github.com/lobehub/lobe-chat/issues/283) ([5bbc87c](https://github.com/lobehub/lobe-chat/commit/5bbc87c))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-10 19:27:40 +00:00
Arvin Xu 5bbc87cee5 feat: support docker deploy (#283) 2023-10-11 03:26:19 +08:00
CanisMinor bf65c16460 🔧 chore: Update next.config.mjs 2023-10-11 02:54:10 +08:00
CanisMinor f206f3c292 🔧 chore: Use swcMinify 2023-10-11 02:22:17 +08:00
semantic-release-bot fdad557049 🔖 chore(release): v0.85.3 [skip ci]
### [Version&nbsp;0.85.3](https://github.com/lobehub/lobe-chat/compare/v0.85.2...v0.85.3)
<sup>Released on **2023-10-10**</sup>

#### 💄 Styles

- **misc**: Add new components, modify display properties, and update settings feature, Replace 100vh with 100% to fix mobile scroll problem.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Styles

* **misc**: Add new components, modify display properties, and update settings feature ([87a4a46](https://github.com/lobehub/lobe-chat/commit/87a4a46))
* **misc**: Replace 100vh with 100% to fix mobile scroll problem ([2ef3c94](https://github.com/lobehub/lobe-chat/commit/2ef3c94))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-10 17:23:02 +00:00
canisminor1990 2ef3c947fa 💄 style: Replace 100vh with 100% to fix mobile scroll problem 2023-10-11 01:19:19 +08:00
canisminor1990 87a4a469dc 💄 style: Add new components, modify display properties, and update settings feature
This commit introduces new components, modifies display properties, and updates the settings feature. It also includes changes to translations and styling. Additionally, a condition is added to check if the app is a progressive web app before rendering a specific component.
2023-10-11 00:58:11 +08:00
canisminor1990 bdb866c702 🔧 chore: Fix i18n diff and workflow token 2023-10-11 00:07:50 +08:00
semantic-release-bot 7513abbdbc 🔖 chore(release): v0.85.2 [skip ci]
### [Version&nbsp;0.85.2](https://github.com/lobehub/lobe-chat/compare/v0.85.1...v0.85.2)
<sup>Released on **2023-10-10**</sup>

#### 🐛 Bug Fixes

- **misc**: Add apikey form when there is no default api key in env.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Add apikey form when there is no default api key in env, closes [#290](https://github.com/lobehub/lobe-chat/issues/290) ([2c907e9](https://github.com/lobehub/lobe-chat/commit/2c907e9))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-10 15:17:29 +00:00
Arvin Xu 2c907e9bf1 🐛 fix: add apikey form when there is no default api key in env (#290)
* 🐛 fix: add apikey form when there is no default api key in env

* 🌐 style: update i18n
2023-10-10 23:15:58 +08:00
semantic-release-bot e9b80d0d42 🔖 chore(release): v0.85.1 [skip ci]
### [Version&nbsp;0.85.1](https://github.com/lobehub/lobe-chat/compare/v0.85.0...v0.85.1)
<sup>Released on **2023-10-10**</sup>

#### 🐛 Bug Fixes

- **misc**: Fix mobile safearea (fix.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Fix mobile safearea (fix, closes [#211](https://github.com/lobehub/lobe-chat/issues/211) ([68775b8](https://github.com/lobehub/lobe-chat/commit/68775b8))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-10 14:58:31 +00:00
canisminor1990 68775b8376 🐛 fix: Fix mobile safearea (fix #211) 2023-10-10 22:56:38 +08:00
CanisMinor caf8ba0272 ⚒️ chore: Update sync.yml [skip ci] 2023-10-10 22:35:59 +08:00
semantic-release-bot af2f5e6912 🔖 chore(release): v0.85.0 [skip ci]
## [Version&nbsp;0.85.0](https://github.com/lobehub/lobe-chat/compare/v0.84.0...v0.85.0)
<sup>Released on **2023-10-10**</sup>

####  Features

- **misc**: Add ja_JP, ko_KR and update workflow.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Add ja_JP, ko_KR and update workflow ([57512a0](https://github.com/lobehub/lobe-chat/commit/57512a0))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-10 14:24:17 +00:00
canisminor1990 57512a0745 feat: Add ja_JP, ko_KR and update workflow 2023-10-10 22:21:28 +08:00
CanisMinor aec0674c63 Merge pull request #288 from lobehub/renovate/actions-checkout-4.x
Update actions/checkout action to v4
2023-10-10 14:44:55 +08:00
renovate[bot] a562d88059 Update actions/checkout action to v4 2023-10-10 06:44:27 +00:00
semantic-release-bot 79157d54f8 🔖 chore(release): v0.84.0 [skip ci]
## [Version&nbsp;0.84.0](https://github.com/lobehub/lobe-chat/compare/v0.83.10...v0.84.0)
<sup>Released on **2023-10-10**</sup>

####  Features

- **misc**: Support detect new version and upgrade action.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's improved

* **misc**: Support detect new version and upgrade action, closes [#282](https://github.com/lobehub/lobe-chat/issues/282) ([5da19b2](https://github.com/lobehub/lobe-chat/commit/5da19b2))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
2023-10-10 02:19:09 +00:00
Arvin Xu 5da19b242a feat: support detect new version and upgrade action (#282) 2023-10-10 10:17:24 +08:00
Arvin Xu fa06c3f760 📝 docs: Update README.md [skip ci] 2023-10-10 10:11:20 +08:00
Arvin Xu e521083a2b 🔧 chore: update lighthouse-badger-advanced.yml 2023-10-10 09:55:34 +08:00
CanisMinor 8e43388655 🔧 chore: Update sync.yml [skip ci] 2023-10-10 09:34:06 +08:00
CanisMinor 0825c2e401 🔧 chore: Update sync.yml [skip ci] 2023-10-10 09:29:09 +08:00
canisminor1990 0e07d18826 📝 docs: Update docs 2023-10-10 02:17:55 +08:00
canisminor1990 f7d1c4f089 📝 docs: Add lighthouse report 2023-10-10 02:15:30 +08:00
CanisMinor 6335100f37 ⚒️ chore: Create lighthouse-badger-advanced.yml 2023-10-10 01:36:44 +08:00
CanisMinor aae9a7cf28 Delete docs/lighthouse directory 2023-10-10 01:33:08 +08:00
lobehubbot 023484027f 🤖 chore: Lighthouse Results | Welcome 2023-10-09 17:22:49 +00:00
lobehubbot 5919b19633 🤖 chore: Lighthouse Results | Chat 2023-10-09 17:22:31 +00:00
lobehubbot d6b1ee85be 🤖 chore: Lighthouse Results | Market 2023-10-09 17:22:27 +00:00
lobehubbot ee9a404f2a 🤖 chore: Lighthouse Results | Settings 2023-10-09 17:22:19 +00:00
1740 changed files with 117827 additions and 17192 deletions
+11
View File
@@ -0,0 +1,11 @@
Dockerfile
.dockerignore
node_modules
npm-debug.log
.next
.git
scripts
docs
.github
*.md
.env.example
+123
View File
@@ -0,0 +1,123 @@
# add a access code to lock your lobe-chat application, you can set a long password to avoid leaking. If this value contains a comma, it is a password array.
# ACCESS_CODE=lobe66
# Specify your API Key selection method, currently supporting `random` and `turn`.
# API_KEY_SELECT_MODE=random
########################################
######## Model Provider Service ########
########################################
### OpenAI ###
# you openai api key
OPENAI_API_KEY=sk-xxxxxxxxx
# use a proxy to connect to the OpenAI API
# OPENAI_PROXY_URL=https://api.openai.com/v1
# add your custom model name, multi model separate by comma. for example gpt-3.5-1106,gpt-4-1106
# OPENAI_MODEL_LIST=gpt-3.5-turbo
### Azure OpenAI ###
# you can learn azure OpenAI Service on https://learn.microsoft.com/en-us/azure/ai-services/openai/overview
# use Azure OpenAI Service by uncomment the following line
# The API key you applied for on the Azure OpenAI account page, which can be found in the "Keys and Endpoints" section.
# AZURE_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# The endpoint you applied for on the Azure OpenAI account page, which can be found in the "Keys and Endpoints" section.
# AZURE_ENDPOINT=https://docs-test-001.openai.azure.com
# Azure's API version, follows the YYYY-MM-DD format
# AZURE_API_VERSION=2024-02-01
### Anthropic Service ####
# ANTHROPIC_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# use a proxy to connect to the Anthropic API
# ANTHROPIC_PROXY_URL=https://api.anthropic.com
### Google AI ####
# GOOGLE_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
### AWS Bedrock ###
# AWS_REGION=us-east-1
# AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxxxxxx
# AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
### Ollama AI ####
# You can use ollama to get and run LLM locally, learn more about it via https://github.com/ollama/ollama
# The local/remote ollama service url
# OLLAMA_PROXY_URL=http://127.0.0.1:11434
# OLLAMA_MODEL_LIST=your_ollama_model_names
### OpenRouter Service ###
# OPENROUTER_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# OPENROUTER_MODEL_LIST=model1,model2,model3
### Mistral AI ###
# MISTRAL_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
### Perplexity Service ###
# PERPLEXITY_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
### Groq Service ####
# GROQ_API_KEY=gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#### 01.AI Service ####
# ZEROONE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
### TogetherAI Service ###
# TOGETHERAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
### ZhiPu AI ###
# ZHIPU_API_KEY=xxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxx
### Moonshot AI ####
# MOONSHOT_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
### Minimax AI ####
# MINIMAX_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
########################################
############ Market Service ############
########################################
# The LobeChat agents market index url
# AGENTS_INDEX_URL=https://chat-agents.lobehub.com
########################################
############ Plugin Service ############
########################################
# The LobeChat plugins store index url
# PLUGINS_INDEX_URL=https://chat-plugins.lobehub.com
# set the plugin settings
# the format is `plugin-identifier:key1=value1;key2=value2`, multiple settings fields are separated by semicolons `;`, multiple plugin settings are separated by commas `,`.
# PLUGIN_SETTINGS=search-engine:SERPAPI_API_KEY=xxxxx
+20
View File
@@ -13,5 +13,25 @@ config.rules['no-extra-boolean-cast'] = 0;
config.rules['unicorn/no-useless-undefined'] = 0;
config.rules['react/no-unknown-property'] = 0;
config.rules['unicorn/prefer-ternary'] = 0;
config.rules['unicorn/prefer-spread'] = 0;
config.rules['unicorn/catch-error-name'] = 0;
config.rules['unicorn/no-array-for-each'] = 0;
config.rules['unicorn/prefer-number-properties'] = 0;
config.overrides = [
{
extends: ['plugin:mdx/recommended'],
files: ['*.mdx'],
rules: {
'@typescript-eslint/no-unused-vars': 1,
'no-undef': 0,
'react/jsx-no-undef': 0,
'react/no-unescaped-entities': 0,
},
settings: {
'mdx/code-blocks': false,
},
},
];
module.exports = config;
+13
View File
@@ -0,0 +1,13 @@
# These are supported funding model platforms
github: lobehub
patreon: # Replace with a single Patreon username
open_collective: lobehub
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: lobehub/lobe-chat
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
+22 -9
View File
@@ -1,22 +1,35 @@
name: '🐛 反馈缺陷 Bug Report'
description: '反馈一个问题缺陷 | Report an bug'
name: '🐛 Bug Report'
description: 'Report an bug'
title: '[Bug] '
labels: '🐛 Bug'
labels: ['🐛 Bug']
body:
- type: dropdown
attributes:
label: '💻 系统环境 | Operating System'
label: '💻 Operating System'
options:
- Windows
- macOS
- Ubuntu
- Other Linux
- iOS
- Android
- Other
validations:
required: true
- type: dropdown
attributes:
label: '🌐 浏览器 | Browser'
label: '📦 Environment'
options:
- Official Preview
- Vercel / Zeabur / Sealos
- Docker
- Other
validations:
required: true
- type: dropdown
attributes:
label: '🌐 Browser'
options:
- Chrome
- Edge
@@ -27,19 +40,19 @@ body:
required: true
- type: textarea
attributes:
label: '🐛 问题描述 | Bug Description'
label: '🐛 Bug Description'
description: A clear and concise description of the bug.
validations:
required: true
- type: textarea
attributes:
label: '🚦 期望结果 | Expected Behavior'
label: '🚦 Expected Behavior'
description: A clear and concise description of what you expected to happen.
- type: textarea
attributes:
label: '📷 复现步骤 | Recurrence Steps'
label: '📷 Recurrence Steps'
description: A clear and concise description of how to recurrence.
- type: textarea
attributes:
label: '📝 补充信息 | Additional Information'
label: '📝 Additional Information'
description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here.
@@ -0,0 +1,59 @@
name: '🐛 反馈缺陷'
description: '反馈一个问题缺陷'
title: '[Bug] '
labels: ['🐛 Bug']
body:
- type: dropdown
attributes:
label: '💻 系统环境'
options:
- Windows
- macOS
- Ubuntu
- Other Linux
- iOS
- Android
- Other
validations:
required: true
- type: dropdown
attributes:
label: '📦 部署环境'
options:
- Official Preview
- Vercel / Zeabur / Sealos
- Docker
- Other
validations:
required: true
- type: dropdown
attributes:
label: '🌐 浏览器'
options:
- Chrome
- Edge
- Safari
- Firefox
- Other
validations:
required: true
- type: textarea
attributes:
label: '🐛 问题描述'
description: 请提供一个清晰且简洁的问题描述。
validations:
required: true
- type: textarea
attributes:
label: '🚦 期望结果'
description: 请提供一个清晰且简洁的描述,说明您期望发生什么。
- type: textarea
attributes:
label: '📷 复现步骤'
description: 请提供一个清晰且简洁的描述,说明如何复现问题。
- type: textarea
attributes:
label: '📝 补充信息'
description: 如果您的问题需要进一步说明,或者您遇到的问题无法在一个简单的示例中复现,请在这里添加更多信息。
+6 -6
View File
@@ -1,21 +1,21 @@
name: '🌠 功能需求 Feature Request'
description: '需求或建议 | Suggest an idea'
name: '🌠 Feature Request'
description: 'Suggest an idea'
title: '[Request] '
labels: '🌠 Feature Request'
labels: ['🌠 Feature Request']
body:
- type: textarea
attributes:
label: '🥰 需求描述 | Feature Description'
label: '🥰 Feature Description'
description: Please add a clear and concise description of the problem you are seeking to solve with this feature request.
validations:
required: true
- type: textarea
attributes:
label: '🧐 解决方案 | Proposed Solution'
label: '🧐 Proposed Solution'
description: Describe the solution you'd like in a clear and concise manner.
validations:
required: true
- type: textarea
attributes:
label: '📝 补充信息 | Additional Information'
label: '📝 Additional Information'
description: Add any other context about the problem here.
@@ -0,0 +1,21 @@
name: '🌠 功能需求'
description: '提出需求或建议'
title: '[Request] '
labels: ['🌠 Feature Request']
body:
- type: textarea
attributes:
label: '🥰 需求描述'
description: 请添加一个清晰且简洁的问题描述,阐述您希望通过这个功能需求解决的问题。
validations:
required: true
- type: textarea
attributes:
label: '🧐 解决方案'
description: 请清晰且简洁地描述您想要的解决方案。
validations:
required: true
- type: textarea
attributes:
label: '📝 补充信息'
description: 在这里添加关于问题的任何其他背景信息。
-15
View File
@@ -1,15 +0,0 @@
name: '😇 疑问或帮助 Help Wanted'
description: '疑问或需要帮助 | Need help'
title: '[Question] '
labels: '😇 Help Wanted'
body:
- type: textarea
attributes:
label: '🧐 问题描述 | Proposed Solution'
description: A clear and concise description of the proplem.
validations:
required: true
- type: textarea
attributes:
label: '📝 补充信息 | Additional Information'
description: Add any other context about the problem here.
-7
View File
@@ -1,7 +0,0 @@
---
name: '📝 其他 Other'
about: '其他问题 | Other issues'
title: ''
labels: ''
assignees: ''
---
+4
View File
@@ -0,0 +1,4 @@
contact_links:
- name: Questions and ideas | 问题和想法
url: https://github.com/lobehub/lobe-chat/discussions/new/choose
about: Please post questions, and ideas in discussions. | 请在讨论区发布问题和想法。
+2
View File
@@ -4,8 +4,10 @@
- [ ] ✨ feat
- [ ] 🐛 fix
- [ ] ♻️ refactor
- [ ] 💄 style
- [ ] 🔨 chore
- [ ] ⚡️ perf
- [ ] 📝 docs
#### 🔀 变更说明 | Description of Change
-25
View File
@@ -1,25 +0,0 @@
name: Dependabot Auto Merge
on:
pull_request_target:
types: [labeled, edited]
jobs:
merge:
if: contains(github.event.pull_request.labels.*.name, 'dependencies')
name: Dependabot Auto Merge
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install bun
uses: oven-sh/setup-bun@v1
- name: Install deps
run: bun i
- name: Merge
uses: ahmadnassri/action-dependabot-auto-merge@v2
with:
command: merge
target: minor
github-token: ${{ secrets.GH_TOKEN }}
+45
View File
@@ -0,0 +1,45 @@
name: Publish Docker Image
on:
workflow_dispatch:
release:
types: [published]
jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_REGISTRY_USER }}
password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: lobehub/lobe-chat
tags: |
type=raw,value=latest
type=ref,event=tag
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
+73
View File
@@ -0,0 +1,73 @@
name: Issue Auto Comment
on:
issues:
types:
- opened
- closed
- assigned
pull_request_target:
types:
- opened
- closed
permissions:
contents: read
jobs:
run:
permissions:
issues: write # for actions-cool/issues-helper to update issues
pull-requests: write # for actions-cool/issues-helper to update PRs
runs-on: ubuntu-latest
steps:
- name: Auto Comment on Issues Opened
uses: wow-actions/auto-comment@v1
with:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN}}
issuesOpened: |
👀 @{{ author }}
Thank you for raising an issue. We will investigate into the matter and get back to you as soon as possible.
Please make sure you have given us as much context as possible.\
非常感谢您提交 issue。我们会尽快调查此事,并尽快回复您。 请确保您已经提供了尽可能多的背景信息。
- name: Auto Comment on Issues Closed
uses: wow-actions/auto-comment@v1
with:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN}}
issuesClosed: |
✅ @{{ author }}
This issue is closed, If you have any questions, you can comment and reply.\
此问题已经关闭。如果您有任何问题,可以留言并回复。
- name: Auto Comment on Pull Request Opened
uses: wow-actions/auto-comment@v1
with:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN}}
pullRequestOpened: |
👍 @{{ author }}
Thank you for raising your pull request and contributing to our Community
Please make sure you have followed our contributing guidelines. We will review it as soon as possible.
If you encounter any problems, please feel free to connect with us.\
非常感谢您提出拉取请求并为我们的社区做出贡献,请确保您已经遵循了我们的贡献指南,我们会尽快审查它。
如果您遇到任何问题,请随时与我们联系。
- name: Auto Comment on Pull Request Merged
uses: actions-cool/pr-welcome@main
if: github.event.pull_request.merged == true
with:
token: ${{ secrets.GH_TOKEN }}
comment: |
❤️ Great PR @${{ github.event.pull_request.user.login }} ❤️
The growth of project is inseparable from user feedback and contribution, thanks for your contribution! If you are interesting with the lobehub developer community, please join our [discord](https://discord.com/invite/AYFPHvv2jT) and then dm @arvinxx or @canisminor1990. They will invite you to our private developer channel. We are talking about the lobe-chat development or sharing ai newsletter around the world.\
项目的成长离不开用户反馈和贡献,感谢您的贡献! 如果您对 LobeHub 开发者社区感兴趣,请加入我们的 [discord](https://discord.com/invite/AYFPHvv2jT),然后私信 @arvinxx 或 @canisminor1990。他们会邀请您加入我们的私密开发者频道。我们将会讨论关于 Lobe Chat 的开发,分享和讨论全球范围内的 AI 消息。
emoji: 'hooray'
pr-emoji: '+1, heart'
- name: Remove inactive
if: github.event.issue.state == 'open' && github.actor == github.event.issue.user.login
uses: actions-cool/issues-helper@v3
with:
actions: 'remove-labels'
token: ${{ secrets.GH_TOKEN }}
issue-number: ${{ github.event.issue.number }}
labels: 'Inactive'
@@ -1,22 +0,0 @@
name: Issue Check Inactive
on:
schedule:
- cron: '0 0 */15 * *'
permissions:
contents: read
jobs:
issue-check-inactive:
permissions:
issues: write # for actions-cool/issues-helper to update issues
pull-requests: write # for actions-cool/issues-helper to update PRs
runs-on: ubuntu-latest
steps:
- name: check-inactive
uses: actions-cool/issues-helper@v3
with:
actions: 'check-inactive'
inactive-label: 'Inactive'
inactive-day: 30
+26 -6
View File
@@ -8,6 +8,20 @@ permissions:
contents: read
jobs:
issue-check-inactive:
permissions:
issues: write # for actions-cool/issues-helper to update issues
pull-requests: write # for actions-cool/issues-helper to update PRs
runs-on: ubuntu-latest
steps:
- name: check-inactive
uses: actions-cool/issues-helper@v3
with:
actions: 'check-inactive'
token: ${{ secrets.GH_TOKEN }}
inactive-label: 'Inactive'
inactive-day: 60
issue-close-require:
permissions:
issues: write # for actions-cool/issues-helper to update issues
@@ -18,29 +32,35 @@ jobs:
uses: actions-cool/issues-helper@v3
with:
actions: 'close-issues'
token: ${{ secrets.GH_TOKEN }}
labels: '✅ Fixed'
inactive-day: 3
body: |
Since the issue was labeled with `✅ Fixed`, but no response in 3 days. This issue will be closed. If you have any questions, you can comment and reply.
👋 @{{ author }}
<br/>
Since the issue was labeled with `✅ Fixed`, but no response in 3 days. This issue will be closed. If you have any questions, you can comment and reply.\
由于该 issue 被标记为已修复,同时 3 天未收到回应。现关闭 issue,若有任何问题,可评论回复。
- name: need reproduce
uses: actions-cool/issues-helper@v3
with:
actions: 'close-issues'
token: ${{ secrets.GH_TOKEN }}
labels: '🤔 Need Reproduce'
inactive-day: 3
body: |
Since the issue was labeled with `🤔 Need Reproduce`, but no response in 3 days. This issue will be closed. If you have any questions, you can comment and reply.
👋 @{{ author }}
<br/>
Since the issue was labeled with `🤔 Need Reproduce`, but no response in 3 days. This issue will be closed. If you have any questions, you can comment and reply.\
由于该 issue 被标记为需要更多信息,却 3 天未收到回应。现关闭 issue,若有任何问题,可评论回复。
- name: need reproduce
uses: actions-cool/issues-helper@v3
with:
actions: 'close-issues'
token: ${{ secrets.GH_TOKEN }}
labels: "🙅🏻‍♀️ WON'T DO"
inactive-day: 3
body: |
Since the issue was labeled with `🙅🏻‍♀️ WON'T DO`, and no response in 3 days. This issue will be closed. If you have any questions, you can comment and reply.
👋 @{{ github.event.issue.user.login }}
<br/>
Since the issue was labeled with `🙅🏻‍♀️ WON'T DO`, and no response in 3 days. This issue will be closed. If you have any questions, you can comment and reply.\
由于该 issue 被标记为暂不处理,同时 3 天未收到回应。现关闭 issue,若有任何问题,可评论回复。
@@ -1,25 +0,0 @@
name: Issue Remove Inactive
on:
issues:
types: [edited]
issue_comment:
types: [created, edited]
permissions:
contents: read
jobs:
issue-remove-inactive:
permissions:
issues: write # for actions-cool/issues-helper to update issues
pull-requests: write # for actions-cool/issues-helper to update PRs
runs-on: ubuntu-latest
steps:
- name: remove inactive
if: github.event.issue.state == 'open' && github.actor == github.event.issue.user.login
uses: actions-cool/issues-helper@v3
with:
actions: 'remove-labels'
issue-number: ${{ github.event.issue.number }}
labels: 'Inactive'
+14
View File
@@ -0,0 +1,14 @@
name: Issue Translate
on:
issue_comment:
types: [created]
issues:
types: [opened]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: usthe/issues-translate-action@v2.7
with:
BOT_GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
+72
View File
@@ -0,0 +1,72 @@
name: Lighthouse Badger
env:
TOKEN_NAME: 'GH_TOKEN'
REPO_BRANCH: 'lobehub/lobe-chat lighthouse'
USER_NAME: 'lobehubbot'
USER_EMAIL: 'i@lobehub.com'
AUDIT_TYPE: 'both'
MOBILE_LIGHTHOUSE_PARAMS: '--throttling.cpuSlowdownMultiplier=2'
DESKTOP_LIGHTHOUSE_PARAMS: '--preset=desktop --throttling.cpuSlowdownMultiplier=1'
COMMIT_MESSAGE: '🤖 chore: Lighthouse Results Refreshed'
on:
schedule:
- cron: '0 0 * * *' # every day
workflow_dispatch:
jobs:
lighthouse-badger-advanced:
name: ${{ matrix.NAME }}
runs-on: ubuntu-22.04
timeout-minutes: 8
strategy:
fail-fast: false
matrix:
include:
- NAME: 'LobeChat | Welcome'
URLS: 'https://chat-preview.lobehub.com/welcome'
BADGES_ARGS: '-b pagespeed -o lighthouse/welcome -r'
COMMIT_MESSAGE: '🤖 chore: Lighthouse Results | Welcome'
- NAME: 'LobeChat | Chat'
URLS: 'https://chat-preview.lobehub.com/chat'
BADGES_ARGS: '-b pagespeed -o lighthouse/chat -r'
COMMIT_MESSAGE: '🤖 chore: Lighthouse Results | Chat'
- NAME: 'LobeChat | Market'
URLS: 'https://chat-preview.lobehub.com/market'
BADGES_ARGS: '-b pagespeed -o lighthouse/market -r'
COMMIT_MESSAGE: '🤖 chore: Lighthouse Results | Market'
- NAME: 'LobeChat | Settings'
URLS: 'https://chat-preview.lobehub.com/settings'
BADGES_ARGS: '-b pagespeed -o lighthouse/settings -r'
COMMIT_MESSAGE: '🤖 chore: Lighthouse Results | Settings'
steps:
- name: Preparatory Tasks
run: |
REPOSITORY=`expr "${{ env.REPO_BRANCH }}" : "\([^ ]*\)"`
BRANCH=`expr "${{ env.REPO_BRANCH }}" : ".* \([^ ]*\)"`
echo "REPOSITORY=$REPOSITORY" >> $GITHUB_ENV
echo "BRANCH=$BRANCH" >> $GITHUB_ENV
env:
REPO_BRANCH: ${{ matrix.REPO_BRANCH || env.REPO_BRANCH }}
- uses: actions/checkout@v4
with:
repository: ${{ env.REPOSITORY }}
token: ${{ secrets[matrix.TOKEN_NAME] || secrets[env.TOKEN_NAME] }}
ref: ${{ env.BRANCH }}
- uses: actions/checkout@v4
with:
repository: 'myactionway/lighthouse-badges'
path: temp_lighthouse_badges_nested
- uses: myactionway/lighthouse-badger-action@v2.2
with:
urls: ${{ matrix.URLS }}
badges_args: ${{ matrix.BADGES_ARGS }}
audit_type: ${{ matrix.AUDIT_TYPE || env.AUDIT_TYPE }}
mobile_lighthouse_params: ${{ matrix.MOBILE_LIGHTHOUSE_PARAMS || env.MOBILE_LIGHTHOUSE_PARAMS }}
desktop_lighthouse_params: ${{ matrix.DESKTOP_LIGHTHOUSE_PARAMS || env.DESKTOP_LIGHTHOUSE_PARAMS }}
user_name: ${{ matrix.USER_NAME || env.USER_NAME }}
user_email: ${{ matrix.USER_EMAIL || env.USER_EMAIL }}
commit_message: ${{ matrix.COMMIT_MESSAGE || env.COMMIT_MESSAGE }}
max_push_attempts: 5
+17 -1
View File
@@ -13,6 +13,8 @@ jobs:
- name: Install bun
uses: oven-sh/setup-bun@v1
with:
bun-version: ${{ secrets.BUN_VERSION }}
- name: Install deps
run: bun i
@@ -23,8 +25,22 @@ jobs:
- name: Test
run: bun run test
- name: release
- name: Release
run: bun run release
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Workflow
run: bun run workflow:readme
- name: Commit changes
run: |-
git diff
git config --global user.name "lobehubbot"
git config --global user.email "i@lobehub.com"
git add .
git commit -m "📝 docs(bot): Auto sync agents & plugin to readme" || exit 0
git push
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
+20 -9
View File
@@ -2,6 +2,8 @@ name: Upstream Sync
permissions:
contents: write
issues: write
actions: write
on:
schedule:
@@ -15,11 +17,14 @@ jobs:
if: ${{ github.event.repository.fork }}
steps:
# Step 1: run a standard checkout action
- name: Checkout target repo
uses: actions/checkout@v4
- uses: actions/checkout@v4
- name: Clean issue notice
uses: actions-cool/issues-helper@v3
with:
actions: 'close-issues'
labels: '🚨 Sync Fail'
# Step 2: run the sync action
- name: Sync upstream changes
id: sync
uses: aormsby/Fork-Sync-With-Upstream-action@v3.4
@@ -28,16 +33,22 @@ jobs:
upstream_sync_branch: main
target_sync_branch: main
target_repo_token: ${{ secrets.GITHUB_TOKEN }} # automatically generated, no need to set
# Set test_mode true to run tests instead of the true action!!
test_mode: false
# Step 3: run check
- name: Sync check
if: failure()
uses: actions-cool/issues-helper@v3
with:
actions: 'create-issue'
token: ${{ secrets.GITHUB_TOKEN }}
title: '🚨 同步失败 | Sync Fail'
body: '由于 [LobeChat][lobechat] 上游仓库的 workflow 文件变更,导致 GitHub 自动暂停了本次自动更新,你需要手动 Sync Fork 一次,请查看[详细教程][tutorial-zh-CN]\n---\nDue to a change in the workflow file of the [LobeChat][lobechat] upstream repository, GitHub has automatically suspended the scheduled automatic update. You need to manually sync your fork. Please refer to the detailed [Tutorial][tutorial-en-US] for instructions.\n\n[lobechat]: https://github.com/lobehub/lobe-chat\n[tutorial-zh-CN]: https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync.zh-CN\n[tutorial-en-US]: https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync.zh-CN'
labels: '🚨 Sync Fail'
body: |
Due to a change in the workflow file of the [LobeChat][lobechat] upstream repository, GitHub has automatically suspended the scheduled automatic update. You need to manually sync your fork. Please refer to the detailed [Tutorial][tutorial-en-US] for instructions.
由于 [LobeChat][lobechat] 上游仓库的 workflow 文件变更,导致 GitHub 自动暂停了本次自动更新,你需要手动 Sync Fork 一次,请查看 [详细教程][tutorial-zh-CN]
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/273954625-df80c890-0822-4ac2-95e6-c990785cbed5.png)
[lobechat]: https://github.com/lobehub/lobe-chat
[tutorial-zh-CN]: https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync.zh-CN
[tutorial-en-US]: https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync
+6 -2
View File
@@ -9,15 +9,19 @@ jobs:
- name: Install bun
uses: oven-sh/setup-bun@v1
with:
bun-version: ${{ secrets.BUN_VERSION }}
- name: Install deps
run: bun i
- name: lint
- name: Lint
run: bun run lint
- name: Test and coverage
run: bun run test:coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }} # required
+3 -3
View File
@@ -4,16 +4,16 @@ on:
workflow_dispatch:
push:
paths:
- 'docs/**'
- 'contributing/**'
branches:
- main
jobs:
update-wiki:
runs-on: ubuntu-latest
name: wiki sync
name: Wiki sync
steps:
- uses: OrlovM/Wiki-Action@v1
with:
path: 'docs'
path: 'contributing'
token: ${{ secrets.GH_TOKEN }}
+5 -1
View File
@@ -55,4 +55,8 @@ next-env.d.ts
.next
.env
public/*.js
bun.lockb
bun.lockb
sitemap*.xml
robots.txt
*.patch
-4
View File
@@ -1,4 +0,0 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx --no -- commitlint --edit ${1}
-3
View File
@@ -1,5 +1,2 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npm run type-check
npx --no-install lint-staged
+41 -7
View File
@@ -1,13 +1,47 @@
const { description } = require('./package.json');
const { defineConfig } = require('@lobehub/i18n-cli');
module.exports = defineConfig({
reference: description,
entry: 'locales/zh_CN',
entryLocale: 'zh_CN',
entry: 'locales/zh-CN',
entryLocale: 'zh-CN',
output: 'locales',
outputLocales: ['zh_TW', 'en_US', 'ru_RU'],
splitToken: 2500,
outputLocales: [
'ar',
'bg-BG',
'zh-TW',
'en-US',
'ru-RU',
'ja-JP',
'ko-KR',
'fr-FR',
'tr-TR',
'es-ES',
'pt-BR',
'de-DE',
'it-IT',
'nl-NL',
'pl-PL',
'vi-VN',
],
temperature: 0,
modelName: 'gpt-3.5-turbo',
modelName: 'gpt-3.5-turbo-0125',
splitToken: 2048,
experimental: {
jsonMode: true,
},
markdown: {
// reference: '你需要保持 mdx 的组件格式,输出文本不需要在最外层包裹任何代码块语法',
entry: ['./README.zh-CN.md', './contributing/**/*.zh-CN.md', './docs/**/*.zh-CN.mdx'],
entryLocale: 'zh-CN',
outputLocales: ['en-US'],
exclude: ['./contributing/_Sidebar.md', './contributing/_Footer.md', './contributing/Home.md'],
outputExtensions: (locale, { filePath }) => {
if (filePath.includes('.mdx')) {
if (locale === 'en-US') return '.mdx';
return `.${locale}.mdx`;
} else {
if (locale === 'en-US') return '.md';
return `.${locale}.md`;
}
},
},
});
+5
View File
@@ -1,5 +1,8 @@
lockfile=false
resolution-mode=highest
enable-pre-post-scripts=true
public-hoist-pattern[]=*@umijs/lint*
public-hoist-pattern[]=*changelog*
public-hoist-pattern[]=*commitlint*
@@ -9,3 +12,5 @@ public-hoist-pattern[]=*prettier*
public-hoist-pattern[]=*remark*
public-hoist-pattern[]=*semantic-release*
public-hoist-pattern[]=*stylelint*
public-hoist-pattern[]=@auth/core
+1
View File
@@ -0,0 +1 @@
lts/hydrogen
+9
View File
@@ -0,0 +1,9 @@
const { defineConfig } = require('@lobehub/seo-cli');
module.exports = defineConfig({
entry: ['./docs/**/*.mdx'],
modelName: 'gpt-3.5-turbo-0125',
experimental: {
jsonMode: true,
},
});
+9940 -962
View File
File diff suppressed because it is too large Load Diff
+128
View File
@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to participate in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community includes:
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
overall community
## Examples of unacceptable behavior include:
- The use of sexualized language or imagery, and sexual attention or
advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
- Other conduct that could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
<https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
For answers to common questions about this code of conduct, see the FAQ at
<https://www.contributor-covenant.org/faq>. Translations are available at
<https://www.contributor-covenant.org/translations>.
[homepage]: https://www.contributor-covenant.org
+88
View File
@@ -0,0 +1,88 @@
# Lobe Chat - Contributing Guide 🌟
We're thrilled that you want to contribute to Lobe Chat, the future of communication! 😄
Lobe Chat is an open-source project, and we welcome your collaboration. Before you jump in, let's make sure you're all set to contribute effectively and have loads of fun along the way!
## Table of Contents
- [Fork the Repository](#fork-the-repository)
- [Clone Your Fork](#clone-your-fork)
- [Create a New Branch](#create-a-new-branch)
- [Code Like a Wizard](#code-like-a-wizard)
- [Committing Your Work](#committing-your-work)
- [Sync with Upstream](#sync-with-upstream)
- [Open a Pull Request](#open-a-pull-request)
- [Review and Collaboration](#review-and-collaboration)
- [Celebrate 🎉](#celebrate-)
## Fork the Repository
🍴 Fork this repository to your GitHub account by clicking the "Fork" button at the top right. This creates a personal copy of the project you can work on.
## Clone Your Fork
📦 Clone your forked repository to your local machine using the `git clone` command:
```bash
git clone https://github.com/YourUsername/lobe-chat.git
```
## Create a New Branch
🌿 Create a new branch for your contribution. This helps keep your work organized and separate from the main codebase.
```bash
git checkout -b your-branch-name
```
Choose a meaningful branch name related to your work. It makes collaboration easier!
## Code Like a Wizard
🧙‍♀️ Time to work your magic! Write your code, fix bugs, or add new features. Be sure to follow our project's coding style. You can check if your code adheres to our style using:
```bash
pnpm lint
```
This adds a bit of enchantment to your coding experience! ✨
## Committing Your Work
📝 Ready to save your progress? Commit your changes to your branch.
```bash
git add .
git commit -m "Your meaningful commit message"
```
Please keep your commits focused and clear. And remember to be kind to your fellow contributors; keep your commits concise.
## Sync with Upstream
⚙️ Periodically, sync your forked repository with the original (upstream) repository to stay up-to-date with the latest changes.
```bash
git remote add upstream https://github.com/lobehub/lobe-chat.git
git fetch upstream
git merge upstream/main
```
This ensures you're working on the most current version of Lobe Chat. Stay fresh! 💨
## Open a Pull Request
🚀 Time to share your contribution! Head over to the original Lobe Chat repository and open a Pull Request (PR). Our maintainers will review your work.
## Review and Collaboration
👓 Your PR will undergo thorough review and testing. The maintainers will provide feedback, and you can collaborate to make your contribution even better. We value teamwork!
## Celebrate 🎉
🎈 Congratulations! Your contribution is now part of Lobe Chat. 🥳
Thank you for making Lobe Chat even more magical. We can't wait to see what you create! 🌠
Happy Coding! 🚀🦄
+109
View File
@@ -0,0 +1,109 @@
FROM node:20-slim AS base
## Sharp dependencies, copy all the files for production
FROM base AS sharp
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
WORKDIR /app
RUN pnpm add sharp
## Install dependencies only when needed
FROM base AS builder
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
WORKDIR /app
COPY package.json ./
# If you want to build docker in China
# RUN npm config set registry https://registry.npmmirror.com/
RUN pnpm i
COPY . .
RUN pnpm run build:docker # run build standalone for docker version
## Production image, copy all the files and run next
FROM base AS runner
WORKDIR /app
ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
COPY --from=builder /app/public ./public
# Set the correct permission for prerender cache
RUN mkdir .next
RUN chown nextjs:nodejs .next
# Automatically leverage output traces to reduce image size
# https://nextjs.org/docs/advanced-features/output-file-tracing
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
COPY --from=sharp --chown=nextjs:nodejs /app/node_modules/.pnpm ./node_modules/.pnpm
USER nextjs
EXPOSE 3210
# set hostname to localhost
ENV HOSTNAME "0.0.0.0"
ENV PORT=3210
# General Variables
ENV ACCESS_CODE ""
ENV API_KEY_SELECT_MODE ""
# OpenAI
ENV OPENAI_API_KEY ""
ENV OPENAI_PROXY_URL ""
ENV OPENAI_MODEL_LIST ""
# Azure OpenAI
ENV USE_AZURE_OPENAI ""
ENV AZURE_API_KEY ""
ENV AZURE_API_VERSION ""
# Google
ENV GOOGLE_API_KEY ""
# Zhipu
ENV ZHIPU_API_KEY ""
# Moonshot
ENV MOONSHOT_API_KEY ""
# Ollama
ENV OLLAMA_PROXY_URL ""
ENV OLLAMA_MODEL_LIST ""
# Perplexity
ENV PERPLEXITY_API_KEY ""
# Anthropic
ENV ANTHROPIC_API_KEY ""
# Mistral
ENV MISTRAL_API_KEY ""
# OpenRouter
ENV OPENROUTER_API_KEY ""
ENV OPENROUTER_MODEL_LIST ""
# 01.AI
ENV ZEROONE_API_KEY ""
# TogetherAI
ENV TOGETHERAI_API_KEY ""
# Minimax
ENV MINIMAX_API_KEY ""
CMD ["node", "server.js"]
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2023 LobeHub
Copyright (c) 2023 - current LobeHub
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+517 -125
View File
@@ -1,30 +1,31 @@
<a name="readme-top"></a>
<div align="center"><a name="readme-top"></a>
<div align="center">
[![][image-banner]][vercel-link]
<img height="120" src="https://registry.npmmirror.com/@lobehub/assets-logo/1.0.0/files/assets/logo-3d.webp">
<img height="120" src="https://gw.alipayobjects.com/zos/kitchen/qJ3l3EPsdW/split.svg">
<img height="120" src="https://registry.npmmirror.com/@lobehub/assets-emoji-anim/1.0.0/files/assets/robot.webp">
# Lobe Chat
<h1>Lobe Chat</h1>
An open-source, modern-design ChatGPT/LLMs UI/Framework.<br/>
Supports speech-synthesis, multi-modal, and extensible ([function call][docs-functionc-call]) plugin system.<br/>
One-click **FREE** deployment of your private OpenAI ChatGPT/Claude/Gemini/Groq/Ollama chat application.
LobeChat is a open-source, extensible ([Function Calling][fc-link]), high-performance chatbot framework. <br/> It supports one-click free deployment of your private ChatGPT/LLM web application.
**English** · [简体中文](./README.zh-CN.md) · [Changelog](./CHANGELOG.md) · [Wiki][github-wiki-link] · [Report Bug][github-issues-link] · [Request Feature][github-issues-link]
**English** · [简体中文](./README.zh-CN.md) · [Changelog](./CHANGELOG.md) · [Documents][docs] · [Report Bug][github-issues-link] · [Request Feature][github-issues-link]
<!-- SHIELD GROUP -->
[![][github-release-shield]][github-release-link]
[![][docker-release-shield]][docker-release-link]
[![][vercel-shield]][vercel-link]
[![][discord-shield]][discord-link]
[![][github-releasedate-shield]][github-releasedate-link]
[![][discord-shield]][discord-link]<br/>
[![][codecov-shield]][codecov-link]
[![][github-action-test-shield]][github-action-test-link]
[![][github-action-release-shield]][github-action-release-link]<br/>
[![][github-action-release-shield]][github-action-release-link]
[![][github-releasedate-shield]][github-releasedate-link]<br/>
[![][github-contributors-shield]][github-contributors-link]
[![][github-forks-shield]][github-forks-link]
[![][github-stars-shield]][github-stars-link]
[![][github-issues-shield]][github-issues-link]
[![][github-license-shield]][github-license-link]
[![][github-license-shield]][github-license-link]<br>
[![][sponsor-shield]][sponsor-link]
**Share LobeChat Repository**
@@ -33,8 +34,14 @@ LobeChat is a open-source, extensible ([Function Calling][fc-link]), high-perfor
[![][share-whatsapp-shield]][share-whatsapp-link]
[![][share-reddit-shield]][share-reddit-link]
[![][share-weibo-shield]][share-weibo-link]
[![][share-mastodon-shield]][share-mastodon-link]
[![][share-linkedin-shield]][share-linkedin-link]
![](https://gw.alipayobjects.com/zos/kitchen/RKnWrrfuMl/welcome.webp)
<sup>Pioneering the new age of thinking and creating. Built for you, the Super Individual.</sup>
[![][github-trending-shield]][github-trending-url]
[![][image-overview]][vercel-link]
</div>
@@ -45,13 +52,27 @@ LobeChat is a open-source, extensible ([Function Calling][fc-link]), high-perfor
- [👋🏻 Getting Started & Join Our Community](#-getting-started--join-our-community)
- [✨ Features](#-features)
- [📸 Snapshot](#-snapshot)
- [`1` Multi-Model Service Provider Support](#1-multi-model-service-provider-support)
- [`2` Local Large Language Model (LLM) Support](#2-local-large-language-model-llm-support)
- [`3` Model Visual Recognition](#3-model-visual-recognition)
- [`4` TTS & STT Voice Conversation](#4-tts--stt-voice-conversation)
- [`5` Text to Image Generation](#5-text-to-image-generation)
- [`6` Plugin System (Function Calling)](#6-plugin-system-function-calling)
- [`7` Agent Market (GPTs)](#7-agent-market-gpts)
- [`8` Progressive Web App (PWA)](#8-progressive-web-app-pwa)
- [`9` Mobile Device Adaptation](#9-mobile-device-adaptation)
- [`10` Custom Themes](#10-custom-themes)
- [`*` What's more](#-whats-more)
- [⚡️ Performance](#-performance)
- [🛳 Self Hosting](#-self-hosting)
- [Keep Updated](#keep-updated)
- [`A` Deploying with Vercel, Zeabur or Sealos](#a-deploying-with-vercel-zeabur-or-sealos)
- [`B` Deploying with Docker](#b-deploying-with-docker)
- [Environment Variable](#environment-variable)
- [📦 Ecosystem](#-ecosystem)
- [🧩 Plugins](#-plugins)
- [⌨️ Local Development](#-local-development)
- [🤝 Contributing](#-contributing)
- [❤️ Sponsor](#-sponsor)
- [🔗 More Products](#-more-products)
####
@@ -62,18 +83,23 @@ LobeChat is a open-source, extensible ([Function Calling][fc-link]), high-perfor
## 👋🏻 Getting Started & Join Our Community
Please be aware that LobeChat is currently under active developmentfeedback is welcome for any [issues][issues-link] encountered.
We are a group of e/acc design-engineers, hoping to provide modern design components and tools for AIGC.
By adopting the Bootstrapping approach, we aim to provide developers and users with a more open, transparent, and user-friendly product ecosystem.
Whether for users or professional developers, LobeHub will be your AI Agent playground. Please be aware that LobeChat is currently under active development, and feedback is welcome for any [issues][issues-link] encountered.
| [![][vercel-shield-badge]][vercel-link] | No installation or registration necessary! Visit our website to experience it firsthand. |
| :---------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |
| [![][discord-shield-badge]][discord-link] | Join our Discord community! This is where you can connect with developers and other enthusiastic users of LobeHub. |
> **Important**\
> **Star Us**You will receive all releases notifications from GitHub without any delay \~ ⭐️
> \[!IMPORTANT]
>
> **Star Us**, You will receive all release notifications from GitHub without any delay \~ ⭐️
![](https://gw.alipayobjects.com/zos/kitchen/0hcO8QiU9c/star.webp)
[![][image-star]][github-stars-link]
<details><summary><kbd>Star History</kbd></summary>
<details>
<summary><kbd>Star History</kbd></summary>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=lobehub%2Flobe-chat&theme=dark&type=Date">
<img width="100%" src="https://api.star-history.com/svg?repos=lobehub%2Flobe-chat&type=Date">
@@ -82,16 +108,251 @@ Please be aware that LobeChat is currently under active developmentfeedback i
## ✨ Features
- [x] 💨 **Quick Deployment**: Using the Vercel platform, you can deploy with just one click and complete the process within 1 minute, without any complex configuration;
- [x] 💎 **Exquisite UI Design**: With a carefully designed interface, it offers an elegant appearance and smooth interaction. It supports light and dark themes and is mobile-friendly. PWA support provides a more native-like experience;
- [x] 🗣️ **Smooth Conversation Experience**: Fluid responses ensure a smooth conversation experience. It fully supports Markdown rendering, including code highlighting, LaTex formulas, Mermaid flowcharts, and more;
- [x] 🧩 **Plugin Support & Custom Plugin Development**: Conversations are extendable with plugins. Users can install and use various plugins, such as search engines, web extraction, etc. It also supports the development of custom plugins to meet custom needs;
- [x] 🔒 **Privacy Protection**: All data is stored locally in the user's browser, ensuring user privacy;
- [x] 🤖 **Customizable Agent Roles**: Users can create, share, and debug personalized dialogue agent roles according to their needs, providing more flexible and personalized dialogue functions;
- [x] 🌐 **Custom Domain**: If users have their own domain, they can bind it to the platform for quick access to the dialogue agent from anywhere.
- [x] 🏬 **Role Market**: A Role Market is provided where users can select their preferred dialogue agent roles, enriching the content and style of the dialogue;
[![][image-feat-privoder]][docs-feat-provider]
> **Note**\
### `1` [Multi-Model Service Provider Support][docs-feat-provider]
In the continuous development of LobeChat, we deeply understand the importance of diversity in model service providers for meeting the needs of the community when providing AI conversation services. Therefore, we have expanded our support to multiple model service providers, rather than being limited to a single one, in order to offer users a more diverse and rich selection of conversations.
In this way, LobeChat can more flexibly adapt to the needs of different users, while also providing developers with a wider range of choices.
#### Supported Model Service Providers
We have implemented support for the following model service providers:
- **AWS Bedrock**: Integrated with AWS Bedrock service, supporting models such as **Claude / LLama2**, providing powerful natural language processing capabilities. [Learn more](https://aws.amazon.com/cn/bedrock)
- **Anthropic (Claude)**: Accessed Anthropic's **Claude** series models, including Claude 3 and Claude 2, with breakthroughs in multi-modal capabilities and extended context, setting a new industry benchmark. [Learn more](https://www.anthropic.com/claude)
- **Google AI (Gemini Pro, Gemini Vision)**: Access to Google's **Gemini** series models, including Gemini and Gemini Pro, to support advanced language understanding and generation. [Learn more](https://deepmind.google/technologies/gemini/)
- **Groq**: Accessed Groq's AI models, efficiently processing message sequences and generating responses, capable of multi-turn dialogues and single-interaction tasks. [Learn more](https://groq.com/)
- **OpenRouter**: Supports routing of models including **Claude 3**, **Gemma**, **Mistral**, **Llama2** and **Cohere**, with intelligent routing optimization to improve usage efficiency, open and flexible. [Learn more](https://openrouter.ai/)
- **01.AI (Yi Model)**: Integrated the 01.AI models, with series of APIs featuring fast inference speed, which not only shortened the processing time, but also maintained excellent model performance. [Learn more](https://01.ai/)
- **Together.ai**: Over 100 leading open-source Chat, Language, Image, Code, and Embedding models are available through the Together Inference API. For these models you pay just for what you use. [Learn more](https://www.together.ai/)
- **ChatGLM**: Added the **ChatGLM** series models from Zhipuai (GLM-4/GLM-4-vision/GLM-3-turbo), providing users with another efficient conversation model choice. [Learn more](https://www.zhipuai.cn/)
- **Moonshot AI (Dark Side of the Moon)**: Integrated with the Moonshot series models, an innovative AI startup from China, aiming to provide deeper conversation understanding. [Learn more](https://www.moonshot.cn/)
- **Minimax**: Integrated the Minimax models, including the MoE model **abab6**, offers a broader range of choices. [Learn more](https://www.minimaxi.com/)
At the same time, we are also planning to support more model service providers, such as Replicate and Perplexity, to further enrich our service provider library. If you would like LobeChat to support your favorite service provider, feel free to join our [community discussion](https://github.com/lobehub/lobe-chat/discussions/1284).
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-local]][docs-feat-local]
### `2` [Local Large Language Model (LLM) Support][docs-feat-local]
To meet the specific needs of users, LobeChat also supports the use of local models based on [Ollama](https://ollama.ai), allowing users to flexibly use their own or third-party models.
> \[!TIP]
>
> Learn more about [📘 Using Ollama in LobeChat][docs-usage-ollama] by checking it out.
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-vision]][docs-feat-vision]
### `3` [Model Visual Recognition][docs-feat-vision]
LobeChat now supports OpenAI's latest [`gpt-4-vision`](https://platform.openai.com/docs/guides/vision) model with visual recognition capabilities,
a multimodal intelligence that can perceive visuals. Users can easily upload or drag and drop images into the dialogue box,
and the agent will be able to recognize the content of the images and engage in intelligent conversation based on this,
creating smarter and more diversified chat scenarios.
This feature opens up new interactive methods, allowing communication to transcend text and include a wealth of visual elements.
Whether it's sharing images in daily use or interpreting images within specific industries, the agent provides an outstanding conversational experience.
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-tts]][docs-feat-tts]
### `4` [TTS & STT Voice Conversation][docs-feat-tts]
LobeChat supports Text-to-Speech (TTS) and Speech-to-Text (STT) technologies, enabling our application to convert text messages into clear voice outputs,
allowing users to interact with our conversational agent as if they were talking to a real person. Users can choose from a variety of voices to pair with the agent.
Moreover, TTS offers an excellent solution for those who prefer auditory learning or desire to receive information while busy.
In LobeChat, we have meticulously selected a range of high-quality voice options (OpenAI Audio, Microsoft Edge Speech) to meet the needs of users from different regions and cultural backgrounds.
Users can choose the voice that suits their personal preferences or specific scenarios, resulting in a personalized communication experience.
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-t2i]][docs-feat-t2i]
### `5` [Text to Image Generation][docs-feat-t2i]
With support for the latest text-to-image generation technology, LobeChat now allows users to invoke image creation tools directly within conversations with the agent. By leveraging the capabilities of AI tools such as [`DALL-E 3`](https://openai.com/dall-e-3), [`MidJourney`](https://www.midjourney.com/), and [`Pollinations`](https://pollinations.ai/), the agents are now equipped to transform your ideas into images.
This enables a more private and immersive creative process, allowing for the seamless integration of visual storytelling into your personal dialogue with the agent.
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-plugin]][docs-feat-plugin]
### `6` [Plugin System (Function Calling)][docs-feat-plugin]
The plugin ecosystem of LobeChat is an important extension of its core functionality, greatly enhancing the practicality and flexibility of the LobeChat assistant.
<video controls src="https://github.com/lobehub/lobe-chat/assets/28616219/f29475a3-f346-4196-a435-41a6373ab9e2" muted="false"></video>
By utilizing plugins, LobeChat assistants can obtain and process real-time information, such as searching for web information and providing users with instant and relevant news.
In addition, these plugins are not limited to news aggregation, but can also extend to other practical functions, such as quickly searching documents, generating images, obtaining data from various platforms like Bilibili, Steam, and interacting with various third-party services.
> \[!TIP]
>
> Learn more about [📘 Plugin Usage][docs-usage-plugin] by checking it out.
<!-- PLUGIN LIST -->
| Recent Submits | Description |
| ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| [Social Search](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **say-apps** on **2024-05-02**</sup> | The Social Search provides access to tweets, users, followers, images, media and more.<br/>`social` `twitter` `x` `search` |
| [Search Google via Serper](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **Barry** on **2024-04-30**</sup> | Google search engine via Serper.dev free API (2500x🆓/month)<br/>`web` `search` |
| [NFT Guru](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **swap** on **2024-04-03**</sup> | Discover current prices of NFTs across major platforms and keep track of the rapidly changing marketplace with real-time<br/>`crypto` `nft` |
| [Calendar Assistant](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **cc** on **2024-03-13**</sup> | A plugin to manage your calendar events # will auto generate i18n in workflow<br/>`calendar` `schedule` `will-auto-generate-i-18-n-in-workflow` |
> 📊 Total plugins: [<kbd>**56**</kbd>](https://github.com/lobehub/lobe-chat-plugins)
<!-- PLUGIN LIST -->
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-agent]][docs-feat-agent]
### `7` [Agent Market (GPTs)][docs-feat-agent]
In LobeChat Agent Marketplace, creators can discover a vibrant and innovative community that brings together a multitude of well-designed agents,
which not only play an important role in work scenarios but also offer great convenience in learning processes.
Our marketplace is not just a showcase platform but also a collaborative space. Here, everyone can contribute their wisdom and share the agents they have developed.
> \[!TIP]
>
> By [🤖/🏪 Submit Agents][submit-agents-link], you can easily submit your agent creations to our platform.
> Importantly, LobeChat has established a sophisticated automated internationalization (i18n) workflow,
> capable of seamlessly translating your agent into multiple language versions.
> This means that no matter what language your users speak, they can experience your agent without barriers.
> \[!IMPORTANT]
>
> We welcome all users to join this growing ecosystem and participate in the iteration and optimization of agents.
> Together, we can create more interesting, practical, and innovative agents, further enriching the diversity and practicality of the agent offerings.
<!-- AGENT LIST -->
| Recent Submits | Description |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Sales Description Specialist](https://chat-preview.lobehub.com/market?agent=verkauf-kleinanzeigen)<br/><sup>By **[highseen](https://github.com/highseen)** on **2024-04-30**</sup> | Assists in the sale of used items through research, pricing, description, and title creation.<br/>`product-sales` `research` `description` |
| [Jailbreak Assistant DAN](https://chat-preview.lobehub.com/market?agent=gpt-4-dan-assistant)<br/><sup>By **[MapleEve](https://github.com/MapleEve)** on **2024-04-26**</sup> | Bypass OpenAI review mechanism, ChatGPT after jailbreak<br/>`creative` `artificial-intelligence` `conversation` `jailbreak` |
| [TailwindHelper](https://chat-preview.lobehub.com/market?agent=tailwind-helper)<br/><sup>By **[aototo](https://github.com/aototo)** on **2024-04-26**</sup> | TailwindHelper is a professional frontend designer with a solid foundation in design theory and rich practical experience. Created by a leading software development company, it aims to help developers and designers accelerate the development process of web interfaces. TailwindHelper is proficient in the Tailwind CSS framework and can translate complex design requirements into efficient and responsive CSS class names.<br/>`tailwindcss` `css` `tailwind-helper` |
| [yapi JSON-SCHEMA to Typescript](https://chat-preview.lobehub.com/market?agent=yapi-ts-helper)<br/><sup>By **[zcf0508](https://github.com/zcf0508)** on **2024-04-26**</sup> | Specializes in converting JSON schema to TypeScript types.<br/>`typescript` `development` |
> 📊 Total agents: [<kbd>**244**</kbd> ](https://github.com/lobehub/lobe-chat-agents)
<!-- AGENT LIST -->
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-pwa]][docs-feat-pwa]
### `8` [Progressive Web App (PWA)][docs-feat-pwa]
We deeply understand the importance of providing a seamless experience for users in today's multi-device environment.
Therefore, we have adopted Progressive Web Application ([PWA](https://support.google.com/chrome/answer/9658361)) technology,
a modern web technology that elevates web applications to an experience close to that of native apps.
Through PWA, LobeChat can offer a highly optimized user experience on both desktop and mobile devices while maintaining its lightweight and high-performance characteristics.
Visually and in terms of feel, we have also meticulously designed the interface to ensure it is indistinguishable from native apps,
providing smooth animations, responsive layouts, and adapting to different device screen resolutions.
> \[!NOTE]
>
> If you are unfamiliar with the installation process of PWA, you can add LobeChat as your desktop application (also applicable to mobile devices) by following these steps:
>
> - Launch the Chrome or Edge browser on your computer.
> - Visit the LobeChat webpage.
> - In the upper right corner of the address bar, click on the <kbd>Install</kbd> icon.
> - Follow the instructions on the screen to complete the PWA Installation.
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-mobile]][docs-feat-mobile]
### `9` [Mobile Device Adaptation][docs-feat-mobile]
We have carried out a series of optimization designs for mobile devices to enhance the user's mobile experience. Currently, we are iterating on the mobile user experience to achieve smoother and more intuitive interactions. If you have any suggestions or ideas, we welcome you to provide feedback through GitHub Issues or Pull Requests.
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-theme]][docs-feat-theme]
### `10` [Custom Themes][docs-feat-theme]
As a design-engineering-oriented application, LobeChat places great emphasis on users' personalized experiences,
hence introducing flexible and diverse theme modes, including a light mode for daytime and a dark mode for nighttime.
Beyond switching theme modes, a range of color customization options allow users to adjust the application's theme colors according to their preferences.
Whether it's a desire for a sober dark blue, a lively peach pink, or a professional gray-white, users can find their style of color choices in LobeChat.
> \[!TIP]
>
> The default configuration can intelligently recognize the user's system color mode and automatically switch themes to ensure a consistent visual experience with the operating system.
> For users who like to manually control details, LobeChat also offers intuitive setting options and a choice between chat bubble mode and document mode for conversation scenarios.
<div align="right">
[![][back-to-top]](#readme-top)
</div>
### `*` What's more
Beside these features, LobeChat also have much better basic technique underground:
- [x] 💨 **Quick Deployment**: Using the Vercel platform or docker image, you can deploy with just one click and complete the process within 1 minute without any complex configuration.
- [x] 🌐 **Custom Domain**: If users have their own domain, they can bind it to the platform for quick access to the dialogue agent from anywhere.
- [x] 🔒 **Privacy Protection**: All data is stored locally in the user's browser, ensuring user privacy.
- [x] 💎 **Exquisite UI Design**: With a carefully designed interface, it offers an elegant appearance and smooth interaction. It supports light and dark themes and is mobile-friendly. PWA support provides a more native-like experience.
- [x] 🗣️ **Smooth Conversation Experience**: Fluid responses ensure a smooth conversation experience. It fully supports Markdown rendering, including code highlighting, LaTex formulas, Mermaid flowcharts, and more.
> ✨ more features will be added when LobeChat evolve.
---
> \[!NOTE]
>
> You can find our upcoming [Roadmap][github-project-link] plans in the Projects section.
<div align="right">
@@ -100,53 +361,16 @@ Please be aware that LobeChat is currently under active developmentfeedback i
</div>
## 📸 Snapshot
## ⚡️ Performance
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/268670883-33c43a5c-a512-467e-855c-fa299548cce5.png)
#### `1` Function Calling Plugin System
By building a powerful plugin ecosystem, ChatGPT not only can provide real-time news updates, but it can also assist you in easily querying documents and accessing various e-commerce data. This allows ChatGPT to play a key role in a wider range of fields. If you are interested in writing plugins, we provide detailed component development documentation, SDKs, and template files in the [🧩 Plugin System](#-Plugin-System) section below. Let's work together to make ChatGPT more powerful and easier to use.
<br/>
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/268670869-f1ffbf66-42b6-42cf-a937-9ce1f8328514.png)
#### `2` Prompt Agent Market
In our agent market, we have accumulated a large number of practical prompt agents that have been used in daily work and study. You can also share your agents here and iterate and optimize your prompt agents with more people. You can submit your agents through [🤖/🏪 Submit Agents][submit-agents-link], and our automated i18n workflow will automatically translate your agents into multiple languages, allowing users around the world to enjoy your wisdom.
<br/>
![](https://gw.alipayobjects.com/zos/kitchen/69x6bllkX3/pwa.webp)
#### `3` Progress Web App
Utilize the Progressive Web Application ([PWA](https://support.google.com/chrome/answer/9658361)) technology to achieve a seamless LobeChat experience on your computer or mobile device.
> **Note**\
> If you are unfamiliar with the installation process of PWA, you can add LobeChat as your desktop application (also applicable to mobile devices) by following these steps:
> \[!NOTE]
>
> - Launch the Chrome or Edge browser on your computer
> - Visit the LobeChat webpage
> - In the upper right corner of the address bar, click on the <kbd>Install</kbd> icon
> - Follow the instructions on the screen to complete the PWA installation
> The complete list of reports can be found in the [📘 Lighthouse Reports][docs-lighthouse]
<br/>
![](https://gw.alipayobjects.com/zos/kitchen/pvus1lo%26Z7/darkmode.webp)
#### `4` Theme Mode Selection
LobeChat offers two unique theme modes - Light Mode and Dark Mode, as well as rich color customization options to meet your personalized needs. By default, our themes will intelligently switch based on your system settings, but if you prefer manual control, you can easily switch in the settings. <br/>
![](https://gw.alipayobjects.com/zos/kitchen/R441AuFS4W/mobile.webp)
#### `5` Mobile Device Adaptation
We have carried out a series of optimization designs for mobile devices to enhance the user's mobile experience. Currently, we are iterating on the mobile user experience to achieve smoother and more intuitive interactions. If you have any suggestions or ideas, we welcome you to provide feedback through GitHub Issues or Pull Requests.
> 🚧 Additional snapshots and demonstrations are being progressively added...
| Desktop | Mobile |
| :-----------------------------------------: | :----------------------------------------: |
| ![][chat-desktop] | ![][chat-mobile] |
| [📑 Lighthouse Report][chat-desktop-report] | [📑 Lighthouse Report][chat-mobile-report] |
<div align="right">
@@ -156,31 +380,92 @@ We have carried out a series of optimization designs for mobile devices to enhan
## 🛳 Self Hosting
LobeChat provides a [self-hosted version][deploy-link] with Vercel. This allows you to build your own chatbot within a few minutes, without any prior knowledge. If you want to deploy this service yourself, you can follow these steps:
LobeChat provides Self-Hosted Version with Vercel and [Docker Image][docker-release-link]. This allows you to deploy your own chatbot within a few minutes without any prior knowledge.
> \[!TIP]
>
> Learn more about [📘 Build your own LobeChat][docs-self-hosting] by checking it out.
### `A` Deploying with Vercel, Zeabur or Sealos
If you want to deploy this service yourself on either Vercel or Zeabur, you can follow these steps:
- Prepare your [OpenAI API Key](https://platform.openai.com/account/api-keys).
- Click the button below to start deployment: Deploy with Vercel. Log in directly with your GitHub account and remember to fill in the API Key and access code CODE on the environment variable page;
- After deployment, you can start using it;
- Bind a custom domain (optional): The DNS of the domain assigned by Vercel is polluted in some areas, binding a custom domain can connect directly.
- Click the button below to start deployment: Log in directly with your GitHub account, and remember to fill in the `OPENAI_API_KEY`(required) and `ACCESS_CODE` (recommended) on the environment variable section.
- After deployment, you can start using it.
- Bind a custom domain (optional): The DNS of the domain assigned by Vercel is polluted in some areas; binding a custom domain can connect directly.
<div align="center">
[![][deploy-button-image]][deploy-link]
| Deploy with Vercel | Deploy with Zeabur | Deploy with Sealos |
| :-------------------------------------: | :---------------------------------------------------------: | :---------------------------------------------------------: |
| [![][deploy-button-image]][deploy-link] | [![][deploy-on-zeabur-button-image]][deploy-on-zeabur-link] | [![][deploy-on-sealos-button-image]][deploy-on-sealos-link] |
</div>
> **Note**\
> This project provides some additional configuration items, set with environment variables, The complete list of environment variables can be found in the [📘 Environment Variables](https://github.com/lobehub/lobe-chat/wiki/Environment-Variable) :
#### After Fork
| Environment Variable | Required | Description | Example |
| -------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `OPENAI_API_KEY` | Yes | This is the API key you apply on the OpenAI account page | `sk-xxxxxx...xxxxxx` |
| `OPENAI_PROXY_URL` | No | If you manually configure the OpenAI interface proxy, you can use this configuration item to override the default OpenAI API request base URL | `https://api.chatanywhere.cn`<br/>The default value is<br/>`https://api.openai.com` |
| `ACCESS_CODE` | No | Add a password to access this service, the password should be a 6-digit number or letter | `awCT74` or `e3@09!` |
After fork, only retain the upstream sync action and disable other actions in your repository on GitHub.
### Keep Updated
#### Keep Updated
If you have deployed your own project following the one-click deployment steps in the README, you might encounter constant prompts indicating "updates available". This is because Vercel defaults to creating a new project instead of forking this one, resulting in an inability to accurately detect updates. We suggest you redeploy using the following steps, [📘 Maintaining Updates with LobeChat Self-Deployment](https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync).
If you have deployed your own project following the one-click deployment steps in the README, you might encounter constant prompts indicating "updates available." This is because Vercel defaults to creating a new project instead of forking this one, resulting in an inability to detect updates accurately.
> \[!TIP]
>
> We suggest you redeploy using the following steps, [📘 Auto Sync With Latest][docs-upstream-sync]
<br/>
### `B` Deploying with Docker
[![][docker-release-shield]][docker-release-link]
[![][docker-size-shield]][docker-size-link]
[![][docker-pulls-shield]][docker-pulls-link]
We provide a Docker image for deploying the LobeChat service on your own private device. Use the following command to start the LobeChat service:
```fish
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e ACCESS_CODE=lobe66 \
--name lobe-chat \
lobehub/lobe-chat
```
> \[!TIP]
>
> If you need to use the OpenAI service through a proxy, you can configure the proxy address using the `OPENAI_PROXY_URL` environment variable:
```fish
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e OPENAI_PROXY_URL=https://api-proxy.com/v1 \
-e ACCESS_CODE=lobe66 \
--name lobe-chat \
lobehub/lobe-chat
```
> \[!NOTE]
>
> For detailed instructions on deploying with Docker, please refer to the [📘 Docker Deployment Guide][docs-docker]
<br/>
### Environment Variable
This project provides some additional configuration items set with environment variables:
| Environment Variable | Required | Description | Example |
| -------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `OPENAI_API_KEY` | Yes | This is the API key you apply on the OpenAI account page | `sk-xxxxxx...xxxxxx` |
| `OPENAI_PROXY_URL` | No | If you manually configure the OpenAI interface proxy, you can use this configuration item to override the default OpenAI API request base URL | `https://api.chatanywhere.cn` or `https://aihubmix.com/v1` <br/>The default value is<br/>`https://api.openai.com/v1` |
| `ACCESS_CODE` | No | Add a password to access this service; you can set a long password to avoid leaking. If this value contains a comma, it is a password array. | `awCTe)re_r74` or `rtrt_ewee3@09!` or `code1,code2,code3` |
| `OPENAI_MODEL_LIST` | No | Used to control the model list. Use `+` to add a model, `-` to hide a model, and `model_name=display_name` to customize the display name of a model, separated by commas. | `qwen-7b-chat,+glm-6b,-gpt-3.5-turbo` |
> \[!NOTE]
>
> The complete list of environment variables can be found in the [📘 Environment Variables][docs-env-var]
<div align="right">
@@ -190,11 +475,12 @@ If you have deployed your own project following the one-click deployment steps i
## 📦 Ecosystem
| NPM | Repository | Description | Version |
| ------------------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
| [@lobehub/ui][lobe-ui-link] | [lobehub/lobe-ui][lobe-ui-github] | Lobe UI is an open-source UI component library dedicated to building AIGC web applications. | [![][lobe-ui-shield]][lobe-ui-link] |
| [@lobehub/lint][lobe-lint-link] | [lobehub/lobe-lint][lobe-lint-github] | LobeLint provides configurations for ESlint, Stylelint, Commitlint, Prettier, Remark, and Semantic Release for LobeHub. | [![][lobe-lint-shield]][lobe-lint-link] |
| @lobehub/assets | [lobehub/assets][lobe-assets-github] | Logo assets, favicons, webfonts for LobeHub. | |
| NPM | Repository | Description | Version |
| --------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| [@lobehub/ui][lobe-ui-link] | [lobehub/lobe-ui][lobe-ui-github] | Open-source UI component library dedicated to building AIGC web applications. | [![][lobe-ui-shield]][lobe-ui-link] |
| [@lobehub/icons][lobe-icons-link] | [lobehub/lobe-icons][lobe-icons-github] | Popular AI / LLM Model Brand SVG Logo and Icon Collection. | [![][lobe-icons-shield]][lobe-icons-link] |
| [@lobehub/tts][lobe-tts-link] | [lobehub/lobe-tts][lobe-tts-github] | High-quality & reliable TTS/STT React Hooks library | [![][lobe-tts-shield]][lobe-tts-link] |
| [@lobehub/lint][lobe-lint-link] | [lobehub/lobe-lint][lobe-lint-github] | Configurations for ESlint, Stylelint, Commitlint, Prettier, Remark, and Semantic Release for LobeHub. | [![][lobe-lint-shield]][lobe-lint-link] |
<div align="right">
@@ -204,25 +490,20 @@ If you have deployed your own project following the one-click deployment steps i
## 🧩 Plugins
Plugins provide a means to extend the [Function Calling][fc-link] capabilities of LobeChat. They can be used to introduce new function calls, and even new ways to render message results. If you are interested in plugin development, please refer to our [📘 Plugin Development Guide](https://github.com/lobehub/lobe-chat/wiki/Plugin-Development) in the Wiki.
Plugins provide a means to extend the [Function Calling][docs-functionc-call] capabilities of LobeChat. They can be used to introduce new function calls and even new ways to render message results. If you are interested in plugin development, please refer to our [📘 Plugin Development Guide][docs-plugin-dev] in the Wiki.
- [lobe-chat-plugins][lobe-chat-plugins]: This is the plugin index for LobeChat. It accesses index.json from this repository to display a list of available plugins for LobeChat to the user.
- [chat-plugin-template][chat-plugin-template]: This is the plugin template for LobeChat plugin development.
- [@lobehub/chat-plugin-sdk][chat-plugin-sdk]: The LobeChat Plugin SDK assists you in creating exceptional chat plugins for Lobe Chat.
- [@lobehub/chat-plugins-gateway][chat-plugins-gateway]: The LobeChat Plugins Gateway is a backend service that serves as a gateway for LobeChat plugins. We deploy this service using Vercel. The primary API POST /api/v1/runner is deployed as an Edge Function.
- [@lobehub/chat-plugins-gateway][chat-plugins-gateway]: The LobeChat Plugins Gateway is a backend service that provides a gateway for LobeChat plugins. We deploy this service using Vercel. The primary API POST /api/v1/runner is deployed as an Edge Function.
> **Note**\
> \[!NOTE]
>
> The plugin system is currently undergoing major development. You can learn more in the following issues:
>
> - [x] [**Plugin Phase 1**](https://github.com/lobehub/lobe-chat/issues/73): Implement separation of the plugin from the main body, split the plugin into an independent repository for maintenance, and realize dynamic loading of the plugin.
> - [x] [**Plugin Phase 2**](https://github.com/lobehub/lobe-chat/issues/97): The security and stability of the plugin's use, more accurately presenting abnormal states, the maintainability of the plugin architecture and developer-friendly.
> - [ ] [**Plugin Phase 3**](https://github.com/lobehub/lobe-chat/issues/149): Higher-level and more comprehensive customization capabilities, support for plugin authentication and examples.
| Official Plugin | Description |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| [SearchEngine][chat-plugin-search-engine] | This plugin allows for the use of the SerpApi search engine. |
| [RealtimeWeather][chat-plugin-realtime-weather] | This plugin provides practical weather information by obtaining real-time weather data and can automatically update based on the user's location. |
| [WebsiteCrawler][chat-plugin-web-crawler] | This plugin automatically crawls the main content of a specified URL webpage and uses it as context input. |
> - [x] [**Plugin Phase 2**](https://github.com/lobehub/lobe-chat/issues/97): The security and stability of the plugin's use, more accurately presenting abnormal states, the maintainability of the plugin architecture, and developer-friendly.
> - [x] [**Plugin Phase 3**](https://github.com/lobehub/lobe-chat/issues/149): Higher-level and more comprehensive customization capabilities, support for plugin authentication, and examples.
<div align="right">
@@ -238,15 +519,15 @@ You can use GitHub Codespaces for online development:
Or clone it for local development:
[![][bun-shield]][bun-link]
```bash
```fish
$ git clone https://github.com/lobehub/lobe-chat.git
$ cd lobe-chat
$ bun install
$ bun dev
$ pnpm install
$ pnpm dev
```
If you would like to learn more details, please feel free to look at our [📘 Development Guide][docs-dev-guide].
<div align="right">
[![][back-to-top]](#readme-top)
@@ -255,13 +536,68 @@ $ bun dev
## 🤝 Contributing
Contributions of all types are more than welcome, if you are interested in contributing code, feel free to check out our GitHub [Issues][github-issues-link] and [Projects][github-project-link] to get stuck in to show us what youre made of.
Contributions of all types are more than welcome; if you are interested in contributing code, feel free to check out our GitHub [Issues][github-issues-link] and [Projects][github-project-link] to get stuck in to show us what youre made of.
> \[!TIP]
>
> We are creating a technology-driven forum, fostering knowledge interaction and the exchange of ideas that may culminate in mutual inspiration and collaborative innovation.
>
> Help us make LobeChat better. Welcome to provide product design feedback, user experience discussions directly to us.
>
> **Principal Maintainers:** [@arvinxx](https://github.com/arvinxx) [@canisminor1990](https://github.com/canisminor1990)
[![][pr-welcome-shield]][pr-welcome-link]
[![][submit-agents-shield]][submit-agents-link]
[![][submit-plugin-shield]][submit-plugin-link]
[![][contributors-contrib]][contributors-link]
<a href="https://github.com/lobehub/lobe-chat/graphs/contributors" target="_blank">
<table>
<tr>
<th colspan="2">
<br><img src="https://contrib.rocks/image?repo=lobehub/lobe-chat"><br><br>
</th>
</tr>
<tr>
<td>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://next.ossinsight.io/widgets/official/compose-org-active-contributors/thumbnail.png?activity=active&period=past_28_days&owner_id=131470832&repo_ids=643445235&image_size=2x3&color_scheme=dark">
<img src="https://next.ossinsight.io/widgets/official/compose-org-active-contributors/thumbnail.png?activity=active&period=past_28_days&owner_id=131470832&repo_ids=643445235&image_size=2x3&color_scheme=light">
</picture>
</td>
<td rowspan="2">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://next.ossinsight.io/widgets/official/compose-org-participants-growth/thumbnail.png?activity=active&period=past_28_days&owner_id=131470832&repo_ids=643445235&image_size=4x7&color_scheme=dark">
<img src="https://next.ossinsight.io/widgets/official/compose-org-participants-growth/thumbnail.png?activity=active&period=past_28_days&owner_id=131470832&repo_ids=643445235&image_size=4x7&color_scheme=light">
</picture>
</td>
</tr>
<tr>
<td>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://next.ossinsight.io/widgets/official/compose-org-active-contributors/thumbnail.png?activity=new&period=past_28_days&owner_id=131470832&repo_ids=643445235&image_size=2x3&color_scheme=dark">
<img src="https://next.ossinsight.io/widgets/official/compose-org-active-contributors/thumbnail.png?activity=new&period=past_28_days&owner_id=131470832&repo_ids=643445235&image_size=2x3&color_scheme=light">
</picture>
</td>
</tr>
</table>
</a>
<div align="right">
[![][back-to-top]](#readme-top)
</div>
## ❤️ Sponsor
Every bit counts and your one-time donation sparkles in our galaxy of support! You're a shooting star, making a swift and bright impact on our journey. Thank you for believing in us your generosity guides us toward our mission, one brilliant flash at a time.
<a href="https://opencollective.com/lobehub" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/lobehub/.github/blob/main/static/sponsor-dark.png?raw=true">
<img src="https://github.com/lobehub/.github/blob/main/static/sponsor-light.png?raw=true">
</picture>
</a>
<div align="right">
@@ -271,9 +607,10 @@ Contributions of all types are more than welcome, if you are interested in contr
## 🔗 More Products
- **[🤯 Lobe Theme][lobe-theme] :** The modern theme for stable diffusion webui, exquisite interface design, highly customizable UI, and efficiency boosting features.
- **[🅰️ Lobe SD Theme][lobe-theme]:** Modern theme for Stable Diffusion WebUI, exquisite interface design, highly customizable UI, and efficiency-boosting features.
- **[⛵️ Lobe Midjourney WebUI][lobe-midjourney-webui]:** WebUI for Midjourney, leverages AI to quickly generate a wide array of rich and diverse images from text prompts, sparking creativity and enhancing conversations.
- **[🌏 Lobe i18n][lobe-i18n] :** Lobe i18n is an automation tool for the i18n (internationalization) translation process, powered by ChatGPT. It supports features such as automatic splitting of large files, incremental updates, and customization options for the OpenAI model, API proxy, and temperature.
- **[💌 Lobe Commit][lobe-commit] :** Lobe Commit is a CLI tool that leverages Langchain/ChatGPT to generate Gitmoji-based commit messages.
- **[💌 Lobe Commit][lobe-commit]:** Lobe Commit is a CLI tool that leverages Langchain/ChatGPT to generate Gitmoji-based commit messages.
<div align="right">
@@ -289,30 +626,59 @@ Contributions of all types are more than welcome, if you are interested in contr
</details>
Copyright © 2023 [LobeHub][profile-link]. <br />
Copyright © 2024 [LobeHub][profile-link]. <br />
This project is [MIT](./LICENSE) licensed.
<!-- LINK GROUP -->
[back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square
[bun-link]: https://bun.sh
[bun-shield]: https://img.shields.io/badge/-speedup%20with%20bun-black?logo=bun&style=for-the-badge
[chat-plugin-realtime-weather]: https://github.com/lobehub/chat-plugin-realtime-weather
[chat-desktop]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/chat/desktop/pagespeed.svg
[chat-desktop-report]: https://lobehub.github.io/lobe-chat/lighthouse/chat/desktop/chat_preview_lobehub_com_chat.html
[chat-mobile]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/chat/mobile/pagespeed.svg
[chat-mobile-report]: https://lobehub.github.io/lobe-chat/lighthouse/chat/mobile/chat_preview_lobehub_com_chat.html
[chat-plugin-sdk]: https://github.com/lobehub/chat-plugin-sdk
[chat-plugin-search-engine]: https://github.com/lobehub/chat-plugin-search-engine
[chat-plugin-template]: https://github.com/lobehub/chat-plugin-template
[chat-plugin-web-crawler]: https://github.com/lobehub/chat-plugin-web-crawler
[chat-plugins-gateway]: https://github.com/lobehub/chat-plugins-gateway
[codecov-link]: https://codecov.io/gh/lobehub/lobe-chat
[codecov-shield]: https://img.shields.io/codecov/c/github/lobehub/lobe-chat?labelColor=black&style=flat-square&logo=codecov&logoColor=white
[codespaces-link]: https://codespaces.new/lobehub/lobe-chat
[codespaces-shield]: https://github.com/codespaces/badge.svg
[contributors-contrib]: https://contrib.rocks/image?repo=lobehub/lobe-chat
[contributors-link]: https://github.com/lobehub/lobe-chat/graphs/contributors
[deploy-button-image]: https://vercel.com/button
[deploy-link]: https://vercel.com/new/clone?repository-link=https%3A%2F%2Fgithub.com%2Flobehub%2Flobe-chat&env=OPENAI_API_KEY&envDescription=Find%20your%20OpenAI%20API%20Key%20by%20click%20the%20right%20Learn%20More%20button.%20%20&envLink=https%3A%2F%2Fplatform.openai.com%2Faccount%2Fapi-keys&project-name=lobe-chat&repository-name=lobe-chat
[deploy-link]: https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Flobehub%2Flobe-chat&env=OPENAI_API_KEY,ACCESS_CODE&envDescription=Find%20your%20OpenAI%20API%20Key%20by%20click%20the%20right%20Learn%20More%20button.%20%7C%20Access%20Code%20can%20protect%20your%20website&envLink=https%3A%2F%2Fplatform.openai.com%2Faccount%2Fapi-keys&project-name=lobe-chat&repository-name=lobe-chat
[deploy-on-sealos-button-image]: https://raw.githubusercontent.com/labring-actions/templates/main/Deploy-on-Sealos.svg
[deploy-on-sealos-link]: https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dlobe-chat
[deploy-on-zeabur-button-image]: https://zeabur.com/button.svg
[deploy-on-zeabur-link]: https://zeabur.com/templates/VZGGTI
[discord-link]: https://discord.gg/AYFPHvv2jT
[discord-shield]: https://img.shields.io/discord/1127171173982154893?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square
[discord-shield-badge]: https://img.shields.io/discord/1127171173982154893?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=for-the-badge
[fc-link]: https://sspai.com/post/81986
[docker-pulls-link]: https://hub.docker.com/r/lobehub/lobe-chat
[docker-pulls-shield]: https://img.shields.io/docker/pulls/lobehub/lobe-chat?color=45cc11&labelColor=black&style=flat-square
[docker-release-link]: https://hub.docker.com/r/lobehub/lobe-chat
[docker-release-shield]: https://img.shields.io/docker/v/lobehub/lobe-chat?color=369eff&label=docker&labelColor=black&logo=docker&logoColor=white&style=flat-square
[docker-size-link]: https://hub.docker.com/r/lobehub/lobe-chat
[docker-size-shield]: https://img.shields.io/docker/image-size/lobehub/lobe-chat?color=369eff&labelColor=black&style=flat-square
[docs]: https://lobehub.com/docs
[docs-dev-guide]: https://github.com/lobehub/lobe-chat/wiki/index
[docs-docker]: https://lobehub.com/docs/self-hosting/platform/docker
[docs-env-var]: https://lobehub.com/docs/self-hosting/environment-variables
[docs-feat-agent]: https://lobehub.com/docs/usage/features/agent-market
[docs-feat-local]: https://lobehub.com/docs/usage/features/local-llm
[docs-feat-mobile]: https://lobehub.com/docs/usage/features/mobile
[docs-feat-plugin]: https://lobehub.com/docs/usage/features/plugin-system
[docs-feat-provider]: https://lobehub.com/docs/usage/features/multi-ai-providers
[docs-feat-pwa]: https://lobehub.com/docs/usage/features/pwa
[docs-feat-t2i]: https://lobehub.com/docs/usage/features/text-to-image
[docs-feat-theme]: https://lobehub.com/docs/usage/features/theme
[docs-feat-tts]: https://lobehub.com/docs/usage/features/tts
[docs-feat-vision]: https://lobehub.com/docs/usage/features/vision
[docs-functionc-call]: https://platform.openai.com/docs/guides/function-calling
[docs-lighthouse]: https://github.com/lobehub/lobe-chat/wiki/Lighthouse
[docs-plugin-dev]: https://lobehub.com/docs/usage/plugins/development
[docs-self-hosting]: https://lobehub.com/docs/self-hosting/start
[docs-upstream-sync]: https://lobehub.com/docs/self-hosting/advanced/upstream-sync
[docs-usage-ollama]: https://lobehub.com/docs/usage/providers/ollama
[docs-usage-plugin]: https://lobehub.com/docs/usage/plugins/basic
[fossa-license-link]: https://app.fossa.com/projects/git%2Bgithub.com%2Flobehub%2Flobe-chat
[fossa-license-shield]: https://app.fossa.com/api/projects/git%2Bgithub.com%2Flobehub%2Flobe-chat.svg?type=large
[github-action-release-link]: https://github.com/actions/workflows/lobehub/lobe-chat/release.yml
@@ -334,22 +700,46 @@ This project is [MIT](./LICENSE) licensed.
[github-releasedate-shield]: https://img.shields.io/github/release-date/lobehub/lobe-chat?labelColor=black&style=flat-square
[github-stars-link]: https://github.com/lobehub/lobe-chat/network/stargazers
[github-stars-shield]: https://img.shields.io/github/stars/lobehub/lobe-chat?color=ffcb47&labelColor=black&style=flat-square
[github-wiki-link]: https://github.com/lobehub/lobe-chat/wiki
[github-trending-shield]: https://trendshift.io/api/badge/repositories/2256
[github-trending-url]: https://trendshift.io/repositories/2256
[image-banner]: https://github.com/lobehub/lobe-chat/assets/28616219/9f155dff-4737-429f-9cad-a70a1a860c5f
[image-feat-agent]: https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/268670869-f1ffbf66-42b6-42cf-a937-9ce1f8328514.png
[image-feat-local]: https://github.com/lobehub/lobe-chat/assets/28616219/ca9a21bc-ea6c-4c90-bf4a-fa53b4fb2b5c
[image-feat-mobile]: https://gw.alipayobjects.com/zos/kitchen/R441AuFS4W/mobile.webp
[image-feat-plugin]: https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/268670883-33c43a5c-a512-467e-855c-fa299548cce5.png
[image-feat-privoder]: https://github.com/lobehub/lobe-chat/assets/28616219/b164bc54-8ba2-4c1e-b2f2-f4d7f7e7a551
[image-feat-pwa]: https://gw.alipayobjects.com/zos/kitchen/69x6bllkX3/pwa.webp
[image-feat-t2i]: https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/297746445-0ff762b9-aa08-4337-afb7-12f932b6efbb.png
[image-feat-theme]: https://gw.alipayobjects.com/zos/kitchen/pvus1lo%26Z7/darkmode.webp
[image-feat-tts]: https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/284072124-c9853d8d-f1b5-44a8-a305-45ebc0f6d19a.png
[image-feat-vision]: https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/284072129-382bdf30-e3d6-4411-b5a0-249710b8ba08.png
[image-overview]: https://github.com/lobehub/lobe-chat/assets/28616219/8b04c3c9-3d71-4fb4-bd9b-a4f415c5876d
[image-star]: https://github.com/lobehub/lobe-chat/assets/17870709/cb06b748-513f-47c2-8740-d876858d7855
[issues-link]: https://img.shields.io/github/issues/lobehub/lobe-chat.svg?style=flat
[lobe-assets-github]: https://github.com/lobehub/lobe-assets
[lobe-chat-plugins]: https://github.com/lobehub/lobe-chat-plugins
[lobe-commit]: https://github.com/lobehub/lobe-commit/tree/master/packages/lobe-commit
[lobe-i18n]: https://github.com/lobehub/lobe-commit/tree/master/packages/lobe-i18n
[lobe-icons-github]: https://github.com/lobehub/lobe-icons
[lobe-icons-link]: https://www.npmjs.com/package/@lobehub/icons
[lobe-icons-shield]: https://img.shields.io/npm/v/@lobehub/icons?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square
[lobe-lint-github]: https://github.com/lobehub/lobe-lint
[lobe-lint-link]: https://www.npmjs.com/package/@lobehub/lint
[lobe-lint-shield]: https://img.shields.io/npm/v/@lobehub/lint?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square
[lobe-midjourney-webui]: https://github.com/lobehub/lobe-midjourney-webui
[lobe-theme]: https://github.com/lobehub/sd-webui-lobe-theme
[lobe-tts-github]: https://github.com/lobehub/lobe-tts
[lobe-tts-link]: https://www.npmjs.com/package/@lobehub/tts
[lobe-tts-shield]: https://img.shields.io/npm/v/@lobehub/tts?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square
[lobe-ui-github]: https://github.com/lobehub/lobe-ui
[lobe-ui-link]: https://www.npmjs.com/package/@lobehub/ui
[lobe-ui-shield]: https://img.shields.io/npm/v/@lobehub/ui?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square
[pr-welcome-link]: https://github.com/lobehub/lobe-chat/pulls
[pr-welcome-shield]: https://img.shields.io/badge/🤯_pr_welcome-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge
[profile-link]: https://github.com/lobehub
[share-linkedin-link]: https://linkedin.com/feed
[share-linkedin-shield]: https://img.shields.io/badge/-share%20on%20linkedin-black?labelColor=black&logo=linkedin&logoColor=white&style=flat-square
[share-mastodon-link]: https://mastodon.social/share?text=Check%20this%20GitHub%20repository%20out%20%F0%9F%A4%AF%20LobeChat%20-%20An%20open-source,%20extensible%20(Function%20Calling),%20high-performance%20chatbot%20framework.%20It%20supports%20one-click%20free%20deployment%20of%20your%20private%20ChatGPT/LLM%20web%20application.%20https://github.com/lobehub/lobe-chat%20#chatbot%20#chatGPT%20#openAI
[share-mastodon-shield]: https://img.shields.io/badge/-share%20on%20mastodon-black?labelColor=black&logo=mastodon&logoColor=white&style=flat-square
[share-reddit-link]: https://www.reddit.com/submit?title=Check%20this%20GitHub%20repository%20out%20%F0%9F%A4%AF%20LobeChat%20-%20An%20open-source%2C%20extensible%20%28Function%20Calling%29%2C%20high-performance%20chatbot%20framework.%20It%20supports%20one-click%20free%20deployment%20of%20your%20private%20ChatGPT%2FLLM%20web%20application.%20%23chatbot%20%23chatGPT%20%23openAI&url=https%3A%2F%2Fgithub.com%2Flobehub%2Flobe-chat
[share-reddit-shield]: https://img.shields.io/badge/-share%20on%20reddit-black?labelColor=black&logo=reddit&logoColor=white&style=flat-square
[share-telegram-link]: https://t.me/share/url"?text=Check%20this%20GitHub%20repository%20out%20%F0%9F%A4%AF%20LobeChat%20-%20An%20open-source%2C%20extensible%20%28Function%20Calling%29%2C%20high-performance%20chatbot%20framework.%20It%20supports%20one-click%20free%20deployment%20of%20your%20private%20ChatGPT%2FLLM%20web%20application.%20%23chatbot%20%23chatGPT%20%23openAI&url=https%3A%2F%2Fgithub.com%2Flobehub%2Flobe-chat
@@ -360,6 +750,8 @@ This project is [MIT](./LICENSE) licensed.
[share-whatsapp-shield]: https://img.shields.io/badge/-share%20on%20whatsapp-black?labelColor=black&logo=whatsapp&logoColor=white&style=flat-square
[share-x-link]: https://x.com/intent/tweet?hashtags=chatbot%2CchatGPT%2CopenAI&text=Check%20this%20GitHub%20repository%20out%20%F0%9F%A4%AF%20LobeChat%20-%20An%20open-source%2C%20extensible%20%28Function%20Calling%29%2C%20high-performance%20chatbot%20framework.%20It%20supports%20one-click%20free%20deployment%20of%20your%20private%20ChatGPT%2FLLM%20web%20application.&url=https%3A%2F%2Fgithub.com%2Flobehub%2Flobe-chat
[share-x-shield]: https://img.shields.io/badge/-share%20on%20x-black?labelColor=black&logo=x&logoColor=white&style=flat-square
[sponsor-link]: https://opencollective.com/lobehub 'Become ❤️ LobeHub Sponsor'
[sponsor-shield]: https://img.shields.io/badge/-Sponsor%20LobeHub-f04f88?logo=opencollective&logoColor=white&style=flat-square
[submit-agents-link]: https://github.com/lobehub/lobe-chat-agents
[submit-agents-shield]: https://img.shields.io/badge/🤖/🏪_submit_agent-%E2%86%92-c4f042?labelColor=black&style=for-the-badge
[submit-plugin-link]: https://github.com/lobehub/lobe-chat-plugins
+535 -126
View File
@@ -1,40 +1,46 @@
<a name="readme-top"></a>
<div align="center"><a name="readme-top"></a>
<div align="center">
<img height="120" src="https://registry.npmmirror.com/@lobehub/assets-logo/1.0.0/files/assets/logo-3d.webp">
<img height="120" src="https://gw.alipayobjects.com/zos/kitchen/qJ3l3EPsdW/split.svg">
<img height="120" src="https://registry.npmmirror.com/@lobehub/assets-emoji-anim/1.0.0/files/assets/robot.webp">
[![][image-banner]][vercel-link]
<h1>Lobe Chat</h1>
LobeChat 是一个开源的、可扩展的([Function Calling][fc-link])高性能聊天机器人框架。<br/> 它支持一键免费部署私人 ChatGPT/LLM 网页应用程序。
现代化设计的开源 ChatGPT/LLMs 聊天应用与开发框架<br/>
支持语音合成、多模态、可扩展的([function call][docs-functionc-call])插件系统<br/>
一键**免费**拥有你自己的 ChatGPT/Gemini/Claude/Ollama 应用
[English](./README.md) · **简体中文** · [更新日志](./CHANGELOG.md) · [文档][github-wiki-link] · [报告问题][github-issues-link] · [请求功能][github-issues-link]
[English](./README.md) · **简体中文** · [更新日志](./CHANGELOG.md) · [文档][github-document-link] · [报告问题][github-issues-link] · [请求功能][github-issues-link]
<!-- SHIELD GROUP -->
[![][github-release-shield]][github-release-link]
[![][docker-release-shield]][docker-release-link]
[![][vercel-shield]][vercel-link]
[![][discord-shield]][discord-link]
[![][github-releasedate-shield]][github-releasedate-link]
[![][discord-shield]][discord-link]<br/>
[![][codecov-shield]][codecov-link]
[![][github-action-test-shield]][github-action-test-link]
[![][github-action-release-shield]][github-action-release-link]<br/>
[![][github-action-release-shield]][github-action-release-link]
[![][github-releasedate-shield]][github-releasedate-link]<br/>
[![][github-contributors-shield]][github-contributors-link]
[![][github-forks-shield]][github-forks-link]
[![][github-stars-shield]][github-stars-link]
[![][github-issues-shield]][github-issues-link]
[![][github-license-shield]][github-license-link]
[![][github-license-shield]][github-license-link]<br>
[![][sponsor-shield]][sponsor-link]
**感谢分享 LobeChat 仓库**
**分享 LobeChat 给你的好友**
[![][share-x-shield]][share-x-link]
[![][share-telegram-shield]][share-telegram-link]
[![][share-whatsapp-shield]][share-whatsapp-link]
[![][share-reddit-shield]][share-reddit-link]
[![][share-weibo-shield]][share-weibo-link]
[![][share-mastodon-shield]][share-mastodon-link]
![](https://gw.alipayobjects.com/zos/kitchen/RKnWrrfuMl/welcome.webp)
<sup>探索私人生产力的未来。在个体崛起的时代中为你打造.</sup>
[![][github-trending-shield]][github-trending-url]
[![][image-overview]][vercel-link]
</div>
@@ -44,14 +50,29 @@ LobeChat 是一个开源的、可扩展的([Function Calling][fc-link])高
#### TOC
- [👋🏻 开始使用 & 交流](#-开始使用--交流)
- [功能特性](#-功能特性)
- [📸 快照预览](#-快照预览)
- [✨ 特性一览](#-特性一览)
- [`1` 多模型服务商支持](#1-多模型服务商支持)
- [`2` 支持本地大语言模型 (LLM)](#2-支持本地大语言模型-llm)
- [`3` 模型视觉识别 (Model Visual)](#3-模型视觉识别-model-visual)
- [`4` TTS & STT 语音会话](#4-tts--stt-语音会话)
- [`5` Text to Image 文生图](#5-text-to-image-文生图)
- [`6` 插件系统 (Function Calling)](#6-插件系统-function-calling)
- [`7` 助手市场 (GPTs)](#7-助手市场-gpts)
- [`8` 渐进式 Web 应用 (PWA)](#8-渐进式-web-应用-pwa)
- [`9` 移动设备适配](#9-移动设备适配)
- [`10` 自定义主题](#10-自定义主题)
- [更多特性](#更多特性)
- [⚡️ 性能测试](#-性能测试)
- [🛳 开箱即用](#-开箱即用)
- [保持更新](#保持更新)
- [`A` 使用 Vercel、Zeabur 或 Sealos 部署](#a-使用-vercelzeabur-或-sealos-部署)
- [`B` 使用 Docker 部署](#b-使用-docker-部署)
- [环境变量](#环境变量)
- [获取 OpenAI API Key](#获取-openai-api-key)
- [📦 生态系统](#-生态系统)
- [🧩 插件体系](#-插件体系)
- [⌨️ 本地开发](#-本地开发)
- [🤝 参与贡献](#-参与贡献)
- [❤ 社区赞助](#-社区赞助)
- [🔗 更多工具](#-更多工具)
####
@@ -62,16 +83,20 @@ LobeChat 是一个开源的、可扩展的([Function Calling][fc-link])高
## 👋🏻 开始使用 & 交流
我们是一群充满热情的设计工程师,希望为 AIGC 提供现代化的设计组件和工具,并以开源的方式分享,以促进它们在更广泛的社区中的发展和采用,LobeChat 目前正在积极开发中,有需求或者问题,欢迎提交 [issues][issues-link]
我们是一群充满热情的设计工程师,希望为 AIGC 提供现代化的设计组件和工具,并以开源的方式分享
同时通过 Bootstrapping 的方式,我们希望能够为开发者和用户提供一个更加开放、更加透明友好的产品生态。
不论普通用户与专业开发者,LobeHub 旨在成为所有人的 AI Agent 实验场。LobeChat 目前正在积极开发中,有任何需求或者问题,欢迎提交 [issues][issues-link]
| [![][vercel-shield-badge]][vercel-link] | 无需安装或注册!访问我们的网站,快速体验 |
| :---------------------------------------- | :--------------------------------------------------------------------------- |
| [![][discord-shield-badge]][discord-link] | 加入我们的 Discord 社区!这是你可以与开发者和其他 LobeHub 热衷用户交流的地方 |
> **Important**\
> \[!IMPORTANT]
>
> **收藏项目**,你将从 GitHub 上无延迟地接收所有发布通知~⭐️
![](https://gw.alipayobjects.com/zos/kitchen/0hcO8QiU9c/star.webp)
[![][image-star]][github-stars-link]
<details><summary><kbd>Star History</kbd></summary>
<picture>
@@ -80,18 +105,235 @@ LobeChat 是一个开源的、可扩展的([Function Calling][fc-link])高
</picture>
</details>
## ✨ 功能特性
## ✨ 特性一览
- [x] 💨 **快速部署**:使用 Vercel 平台,只需点击一键部署按钮,即可在 1 分钟内完成部署,无需复杂的配置过程;
- [x] 💎 **精致 UI 设计**:经过精心设计的界面,具有优雅的外观和流畅的交互效果,支持亮暗色主题,适配移动端。支持 PWA,提供更加接近原生应用的体验;
- [x] 🗣️ **流畅的对话体验**:流式响应带来流畅的对话体验,并且支持完整的 Markdown 渲染,包括代码高亮、LaTex 公式、Mermaid 流程图等;
- [x] 🧩 **支持插件与自定义插件开发**:会话支持插件扩展,用户可以安装和使用各种插件,例如搜索引擎、网页提取等,同时也支持自定义插件的开发,满足自定义需求;
- [x] 🔒 **隐私安全**:所有数据保存在用户浏览器本地,保证用户的隐私安全;
- [x] 🤖 **自定义助手角色**:用户可以根据自己的需求创建、分享和调试个性化的对话助手角色,提供更加灵活和个性化的对话功能;
[![][image-feat-privoder]][docs-feat-provider]
### `1` [多模型服务商支持][docs-feat-provider]
在 LobeChat 的不断发展过程中,我们深刻理解到在提供 AI 会话服务时模型服务商的多样性对于满足社区需求的重要性。因此,我们不再局限于单一的模型服务商,而是拓展了对多种模型服务商的支持,以便为用户提供更为丰富和多样化的会话选择。
通过这种方式,LobeChat 能够更灵活地适应不同用户的需求,同时也为开发者提供了更为广泛的选择空间。
#### 已支持的模型服务商
我们已经实现了对以下模型服务商的支持:
- **AWS Bedrock**:集成了 AWS Bedrock 服务,支持了 **Claude / LLama2** 等模型,提供了强大的自然语言处理能力。[了解更多](https://aws.amazon.com/cn/bedrock)
- **Google AI (Gemini Pro、Gemini Vision)**:接入了 Google 的 **Gemini** 系列模型,包括 Gemini 和 Gemini Pro,以支持更高级的语言理解和生成。[了解更多](https://deepmind.google/technologies/gemini/)
- **Anthropic (Claude)**:接入了 Anthropic 的 **Claude** 系列模型,包括 Claude 3 和 Claude 2,多模态突破,超长上下文,树立行业新基准。[了解更多](https://www.anthropic.com/claude)
- **ChatGLM**:加入了智谱的 **ChatGLM** 系列模型(GLM-4/GLM-4-vision/GLM-3-turbo),为用户提供了另一种高效的会话模型选择。[了解更多](https://www.zhipuai.cn/)
- **Moonshot AI (月之暗面)**:集成了 Moonshot 系列模型,这是一家来自中国的创新性 AI 创业公司,旨在提供更深层次的会话理解。[了解更多](https://www.moonshot.cn/)
- **Together.ai**:集成部署了数百种开源模型和向量模型,无需本地部署即可随时访问这些模型。[了解更多](https://www.together.ai/)
- **01.AI (零一万物)**:集成了零一万物模型,系列 API 具备较快的推理速度,这不仅缩短了处理时间,同时也保持了出色的模型效果。[了解更多](https://www.lingyiwanwu.com/)
- **Groq**:接入了 Groq 的 AI 模型,高效处理消息序列,生成回应,胜任多轮对话及单次交互任务。[了解更多](https://groq.com/)
- **OpenRouter**:其支持包括 **Claude 3****Gemma****Mistral****Llama2**和**Cohere**等模型路由,支持智能路由优化,提升使用效率,开放且灵活。[了解更多](https://openrouter.ai/)
- **Minimax**: 接入了 Minimax 的 AI 模型,包括 MoE 模型 **abab6**,提供了更多的选择空间。[了解更多](https://www.minimaxi.com/)
同时,我们也在计划支持更多的模型服务商,如 Replicate 和 Perplexity 等,以进一步丰富我们的服务商库。如果你希望让 LobeChat 支持你喜爱的服务商,欢迎加入我们的[社区讨论](https://github.com/lobehub/lobe-chat/discussions/1284)。
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-local]][docs-feat-local]
### `2` [支持本地大语言模型 (LLM)][docs-feat-local]
为了满足特定用户的需求,LobeChat 还基于 [Ollama](https://ollama.ai) 支持了本地模型的使用,让用户能够更灵活地使用自己的或第三方的模型。
> \[!TIP]
>
> 查阅 [📘 在 LobeChat 中使用 Ollama][docs-usage-ollama] 获得更多信息
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-vision]][docs-feat-vision]
### `3` [模型视觉识别 (Model Visual)][docs-feat-vision]
LobeChat 已经支持 OpenAI 最新的 [`gpt-4-vision`](https://platform.openai.com/docs/guides/vision) 支持视觉识别的模型,这是一个具备视觉识别能力的多模态应用。
用户可以轻松上传图片或者拖拽图片到对话框中,助手将能够识别图片内容,并在此基础上进行智能对话,构建更智能、更多元化的聊天场景。
这一特性打开了新的互动方式,使得交流不再局限于文字,而是可以涵盖丰富的视觉元素。无论是日常使用中的图片分享,还是在特定行业内的图像解读,助手都能提供出色的对话体验。
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-tts]][docs-feat-tts]
### `4` [TTS & STT 语音会话][docs-feat-tts]
LobeChat 支持文字转语音(Text-to-SpeechTTS)和语音转文字(Speech-to-Text,STT)技术,这使得我们的应用能够将文本信息转化为清晰的语音输出,用户可以像与真人交谈一样与我们的对话助手进行交流。
用户可以从多种声音中选择,给助手搭配合适的音源。 同时,对于那些倾向于听觉学习或者想要在忙碌中获取信息的用户来说,TTS 提供了一个极佳的解决方案。
在 LobeChat 中,我们精心挑选了一系列高品质的声音选项 (OpenAI Audio, Microsoft Edge Speech),以满足不同地域和文化背景用户的需求。用户可以根据个人喜好或者特定场景来选择合适的语音,从而获得个性化的交流体验。
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-t2i]][docs-feat-t2i]
### `5` [Text to Image 文生图][docs-feat-t2i]
支持最新的文本到图片生成技术,LobeChat 现在能够让用户在与助手对话中直接调用文生图工具进行创作。
通过利用 [`DALL-E 3`](https://openai.com/dall-e-3)、[`MidJourney`](https://www.midjourney.com/) 和 [`Pollinations`](https://pollinations.ai/) 等 AI 工具的能力, 助手们现在可以将你的想法转化为图像。
同时可以更私密和沉浸式地完成你的创作过程。
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-plugin]][docs-feat-plugin]
### `6` [插件系统 (Function Calling)][docs-feat-plugin]
LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地增强了 ChatGPT 的实用性和灵活性。
<video controls src="https://github.com/lobehub/lobe-chat/assets/28616219/f29475a3-f346-4196-a435-41a6373ab9e2" muted="false"></video>
通过利用插件,ChatGPT 能够实现实时信息的获取和处理,例如自动获取最新新闻头条,为用户提供即时且相关的资讯。
此外,这些插件不仅局限于新闻聚合,还可以扩展到其他实用的功能,如快速检索文档、生成图象、获取电商平台数据,以及其他各式各样的第三方服务。
> 通过文档了解更多 [📘 插件使用][docs-usage-plugin]
<!-- PLUGIN LIST -->
| 最近新增 | 插件描述 |
| ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------- |
| [社交搜索](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **say-apps** on **2024-05-02**</sup> | 社交搜索提供访问推文、用户、关注者、图片、媒体等功能。<br/>`社交` `推特` `x` `搜索` |
| [通过 Serper 搜索 Google](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **Barry** on **2024-04-30**</sup> | 通过 Serper.dev 免费 API 进行 Google 搜索引擎(每月 2500 次🆓)<br/>`网络` `搜索` |
| [NFT Guru](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **swap** on **2024-04-03**</sup> | 发现主要平台上 NFT 的当前价格,并通过实时跟踪快速变化的市场了解情况<br/>`加密货币` `nft` |
| [日历助手](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **cc** on **2024-03-13**</sup> | 一个用于管理日历事件的插件 # 将自动生成工作流程中的 i18n<br/>`日历` `日程安排` `将自动生成工作流程中的-i-18-n` |
> 📊 Total plugins: [<kbd>**56**</kbd>](https://github.com/lobehub/lobe-chat-plugins)
<!-- PLUGIN LIST -->
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-agent]][docs-feat-agent]
### `7` [助手市场 (GPTs)][docs-feat-agent]
在 LobeChat 的助手市场中,创作者们可以发现一个充满活力和创新的社区,它汇聚了众多精心设计的助手,这些助手不仅在工作场景中发挥着重要作用,也在学习过程中提供了极大的便利。
我们的市场不仅是一个展示平台,更是一个协作的空间。在这里,每个人都可以贡献自己的智慧,分享个人开发的助手。
> \[!TIP]
>
> 通过 [🤖/🏪 提交助手][submit-agents-link] ,你可以轻松地将你的助手作品提交到我们的平台。我们特别强调的是,LobeChat 建立了一套精密的自动化国际化(i18n)工作流程, 它的强大之处在于能够无缝地将你的助手转化为多种语言版本。
> 这意味着,不论你的用户使用何种语言,他们都能无障碍地体验到你的助手。
> \[!IMPORTANT]
>
> 我欢迎所有用户加入这个不断成长的生态系统,共同参与到助手的迭代与优化中来。共同创造出更多有趣、实用且具有创新性的助手,进一步丰富助手的多样性和实用性。
<!-- AGENT LIST -->
| 最近新增 | 助手说明 |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [销售描述专家](https://chat-preview.lobehub.com/market?agent=verkauf-kleinanzeigen)<br/><sup>By **[highseen](https://github.com/highseen)** on **2024-04-30**</sup> | 通过研究、定价、描述和标题设计帮助销售二手物品。<br/>`产品销售` `研究` `描述` |
| [越狱助手 DAN](https://chat-preview.lobehub.com/market?agent=gpt-4-dan-assistant)<br/><sup>By **[MapleEve](https://github.com/MapleEve)** on **2024-04-26**</sup> | 突破 OpenAI 审核机制,越狱之后的 ChatGPT<br/>`创意` `人工智能` `对话` `越狱` |
| [TailwindHelper](https://chat-preview.lobehub.com/market?agent=tailwind-helper)<br/><sup>By **[aototo](https://github.com/aototo)** on **2024-04-26**</sup> | TailwindHelper 是一位专业的前端设计师,拥有深厚的设计理论基础和丰富的实践经验。它由一家领先的软件开发公司创建,旨在帮助开发者和设计师加速 Web 界面的开发过程。TailwindHelper 精通 Tailwind CSS 框架,并能够理解复杂的设计要求,转化为高效且响应式的 CSS 类名。<br/>`tailwindcss` `css` `tailwind-helper` |
| [yapi JSON-SCHEMA to Typescript](https://chat-preview.lobehub.com/market?agent=yapi-ts-helper)<br/><sup>By **[zcf0508](https://github.com/zcf0508)** on **2024-04-26**</sup> | 擅长将 JSON schema 转换为 TypeScript 类型。<br/>`typescript` `开发` |
> 📊 Total agents: [<kbd>**244**</kbd> ](https://github.com/lobehub/lobe-chat-agents)
<!-- AGENT LIST -->
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-pwa]][docs-feat-pwa]
### `8` [渐进式 Web 应用 (PWA)][docs-feat-pwa]
我们深知在当今多设备环境下为用户提供无缝体验的重要性。为此,我们采用了渐进式 Web 应用 [PWA](https://support.google.com/chrome/answer/9658361) 技术,
这是一种能够将网页应用提升至接近原生应用体验的现代 Web 技术。通过 PWA,LobeChat 能够在桌面和移动设备上提供高度优化的用户体验,同时保持轻量级和高性能的特点。
在视觉和感觉上,我们也经过精心设计,以确保它的界面与原生应用无差别,提供流畅的动画、响应式布局和适配不同设备的屏幕分辨率。
> \[!NOTE]
>
> 若您未熟悉 PWA 的安装过程,您可以按照以下步骤将 LobeChat 添加为您的桌面应用(也适用于移动设备):
>
> - 在电脑上运行 Chrome 或 Edge 浏览器 .
> - 访问 LobeChat 网页 .
> - 在地址栏的右上角,单击 <kbd>安装</kbd> 图标 .
> - 根据屏幕上的指示完成 PWA 的安装 .
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-mobile]][docs-feat-mobile]
### `9` [移动设备适配][docs-feat-mobile]
针对移动设备进行了一系列的优化设计,以提升用户的移动体验。目前,我们正在对移动端的用户体验进行版本迭代,以实现更加流畅和直观的交互。如果您有任何建议或想法,我们非常欢迎您通过 GitHub Issues 或者 Pull Requests 提供反馈。
<div align="right">
[![][back-to-top]](#readme-top)
</div>
[![][image-feat-theme]][docs-feat-theme]
### `10` [自定义主题][docs-feat-theme]
作为设计工程师出身,LobeChat 在界面设计上充分考虑用户的个性化体验,因此引入了灵活多变的主题模式,其中包括日间的亮色模式和夜间的深色模式。
除了主题模式的切换,还提供了一系列的颜色定制选项,允许用户根据自己的喜好来调整应用的主题色彩。无论是想要沉稳的深蓝,还是希望活泼的桃粉,或者是专业的灰白,用户都能够在 LobeChat 中找到匹配自己风格的颜色选择。
> \[!TIP]
>
> 默认配置能够智能地识别用户系统的颜色模式,自动进行主题切换,以确保应用界面与操作系统保持一致的视觉体验。对于喜欢手动调控细节的用户,LobeChat 同样提供了直观的设置选项,针对聊天场景也提供了对话气泡模式和文档模式的选择。
<div align="right">
[![][back-to-top]](#readme-top)
</div>
### 更多特性
除了上述功能特性以外,LobeChat 所具有的设计和技术能力将为你带来更多使用保障:
- [x] 💎 **精致 UI 设计**:经过精心设计的界面,具有优雅的外观和流畅的交互效果,支持亮暗色主题,适配移动端。支持 PWA,提供更加接近原生应用的体验。
- [x] 🗣️ **流畅的对话体验**:流式响应带来流畅的对话体验,并且支持完整的 Markdown 渲染,包括代码高亮、LaTex 公式、Mermaid 流程图等。
- [x] 💨 **快速部署**:使用 Vercel 平台或者我们的 Docker 镜像,只需点击一键部署按钮,即可在 1 分钟内完成部署,无需复杂的配置过程。
- [x] 🔒 **隐私安全**:所有数据保存在用户浏览器本地,保证用户的隐私安全。
- [x] 🌐 **自定义域名**:如果用户拥有自己的域名,可以将其绑定到平台上,方便在任何地方快速访问对话助手。
- [x] 🏬 **角色市场**:提供角色市场,用户可以在市场上选择自己喜欢的对话助手角色,丰富对话的内容和风格;
> **Note**\
> ✨ 随着产品迭代持续更新,我们将会带来更多更多令人激动的功能!
---
> \[!NOTE]
>
> 你可以在 Projects 中找到我们后续的 [Roadmap][github-project-link] 计划
<div align="right">
@@ -100,55 +342,16 @@ LobeChat 是一个开源的、可扩展的([Function Calling][fc-link])高
</div>
## 📸 快照预览
## ⚡️ 性能测试
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/268670883-33c43a5c-a512-467e-855c-fa299548cce5.png)
#### `1` Function Calling 插件系统
通过构建强大的插件生态,ChatGPT 不仅能够实时获取最新新闻,还能助你一臂之力,轻松查询文档、访问各大电商数据。这使得 ChatGPT 在更广泛的领域中发挥其关键作用。如果你对编写插件有所兴趣,我们在下文的 🧩 插件体系 中提供了详尽的组件开发文档、SDK、以及样板文件,让我们一起让助手变得更加好用和强大~
<br/>
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/268670869-f1ffbf66-42b6-42cf-a937-9ce1f8328514.png)
#### `2` Prompt 助手市场
在我们的助手市场中,我们积累了大量实用的助手 Prompt,这些都是在日常工作和学习中得到实际应用的。你也可以在这里分享你的助手,与更多的人一起迭代和优化你的助手提示词。你可以通过 [🤖/🏪 提交助手][submit-agents-link] 来提交你的助手,我们构建的自动化 i18n 工作流将会自动将你的助手翻译成多语言版本,让多语种用户都能享受到你的智慧成果。
<br/>
![](https://gw.alipayobjects.com/zos/kitchen/69x6bllkX3/pwa.webp)
#### `3` PWA 渐进式 Web 应用
利用渐进式 Web 应用 [PWA](https://support.google.com/chrome/answer/9658361) 技术,您可在电脑或移动设备上实现流畅的 LobeChat 体验。
> **Note**\
> 若您未熟悉 PWA 的安装过程,您可以按照以下步骤将 LobeChat 添加为您的桌面应用(也适用于移动设备):
> \[!NOTE]
>
> - 在电脑上运行 Chrome 或 Edge 浏览器
> - 访问 LobeChat 网页
> - 在地址栏的右上角,单击 <kbd>安装</kbd> 图标
> - 根据屏幕上的指示完成 PWA 的安装
> 完整测试报告可见 [📘 Lighthouse 性能测试][docs-lighthouse]
<br/>
![](https://gw.alipayobjects.com/zos/kitchen/pvus1lo%26Z7/darkmode.webp)
#### `4` 主题模式选择
LobeChat 提供了两种独特的主题模式 - 明亮模式和暗黑模式,以及丰富的颜色定制选项,以满足您的个性化需求。默认情况下,我们的主题会智能地跟随您的系统设置进行切换,但如果您希望进行手动控制,也可以轻松在设置中进行切换。
<br/>
![](https://gw.alipayobjects.com/zos/kitchen/R441AuFS4W/mobile.webp)
#### `5` 移动设备适配
针对移动设备进行了一系列的优化设计,以提升用户的移动体验。目前,我们正在对移动端的用户体验进行版本迭代,以实现更加流畅和直观的交互。如果您有任何建议或想法,我们非常欢迎您通过 GitHub Issues 或者 Pull Requests 提供反馈。
> 🚧 更多快照和演示正在陆续添加中...
| Desktop | Mobile |
| :-------------------------------------------: | :------------------------------------------: |
| ![][chat-desktop] | ![][chat-mobile] |
| [📑 Lighthouse 测试报告][chat-desktop-report] | [📑 Lighthouse 测试报告][chat-mobile-report] |
<div align="right">
@@ -158,31 +361,133 @@ LobeChat 提供了两种独特的主题模式 - 明亮模式和暗黑模式,
## 🛳 开箱即用
LobeChat 提供了 Vercel 的 [自托管版本][deploy-link]这使你可以在几分钟内构建自己的聊天机器人,无需任何基础知识。如果想自己部署该服务,可以按照以下步骤进行操作:
LobeChat 提供了 Vercel 的 自托管版本 和 [Docker 镜像][docker-release-link]这使你可以在几分钟内构建自己的聊天机器人,无需任何基础知识。
> \[!TIP]
>
> 完整教程请查阅 [📘 构建属于自己的 Lobe Chat][docs-self-hosting]
### `A` 使用 Vercel、Zeabur 或 Sealos 部署
如果想在 Vercel 或 Zeabur 上部署该服务,可以按照以下步骤进行操作:
- 准备好你的 [OpenAI API Key](https://platform.openai.com/account/api-keys) 。
- 点击下方按钮开始部署: Deploy with Vercel直接使用 GitHub 账号登录即可,记得在环境变量页填入 API Key 和页面访问密码 CODE
- 点击下方按钮开始部署: 直接使用 GitHub 账号登录即可,记得在环境变量页填入 `OPENAI_API_KEY` (必填) and `ACCESS_CODE`(推荐)
- 部署完毕后,即可开始使用;
- 绑定自定义域名(可选):Vercel 分配的域名 DNS 在某些区域被污染了,绑定自定义域名即可直连。
- 绑定自定义域名(可选):Vercel 分配的域名 DNS 在某些区域被污染了,绑定自定义域名即可直连。目前 Zeabur 提供的域名还未被污染,大多数地区都可以直连。
<div align="center">
[![][deploy-button-image]][deploy-link]
| 使用 Vercel 部署 | 使用 Zeabur 部署 | 使用 Sealos 部署 |
| :-------------------------------------: | :---------------------------------------------------------: | :---------------------------------------------------------: |
| [![][deploy-button-image]][deploy-link] | [![][deploy-on-zeabur-button-image]][deploy-on-zeabur-link] | [![][deploy-on-sealos-button-image]][deploy-on-sealos-link] |
</div>
> **Note**\
> 本项目提供了一些额外的配置项,使用环境变量进行设置,完整环境变量可见 [📘环境变量](https://github.com/lobehub/lobe-chat/wiki/Environment-Variable.zh-CN)
#### Fork 之后
| 环境变量 | 类型 | 描述 | 示例 |
| ------------------ | ---- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| `OPENAI_API_KEY` | 必选 | 这是你在 OpenAI 账户页面申请的 API 密钥 | `sk-xxxxxx...xxxxxx` |
| `OPENAI_PROXY_URL` | 可选 | 如果你手动配置了 OpenAI 接口代理,可以使用此配置项来覆盖默认的 OpenAI API 请求基础 URL | `https://api.chatanywhere.cn`<br/>默认值:<br/>`https://api.openai.com` |
| `ACCESS_CODE` | 可选 | 添加访问此服务的密码,密码应为 6 位数字或字母 | `awCT74``e3@09!` |
在 Fork 后,请只保留 "upstream sync" Action 并在你 fork 的 GitHub Repo 中禁用其他 Action。
### 保持更新
#### 保持更新
如果你根据 README 中的一键部署步骤部署了自己的项目,你可能会发现总是被提示 “有可用更新”。这是因为 Vercel 默认为你创建新项目而非 fork 本项目,这将导致无法准确检测更新。我们建议按照 [📘 LobeChat 自部署保持更新](https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync.zh-CN) 步骤重新部署。
如果你根据 README 中的一键部署步骤部署了自己的项目,你可能会发现总是被提示 “有可用更新”。这是因为 Vercel 默认为你创建新项目而非 fork 本项目,这将导致无法准确检测更新。
> \[!TIP]
>
> 我们建议按照 [📘 自动同步更新][docs-upstream-sync] 步骤重新部署。
<br/>
### `B` 使用 Docker 部署
[![][docker-release-shield]][docker-release-link]
[![][docker-size-shield]][docker-size-link]
[![][docker-pulls-shield]][docker-pulls-link]
我们提供了 Docker 镜像,供你在自己的私有设备上部署 LobeChat 服务。使用以下命令即可使用一键启动 LobeChat 服务:
```fish
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e ACCESS_CODE=lobe66 \
--name lobe-chat \
lobehub/lobe-chat
```
> \[!TIP]
>
> 如果你需要通过代理使用 OpenAI 服务,你可以使用 `OPENAI_PROXY_URL` 环境变量来配置代理地址:
```fish
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e OPENAI_PROXY_URL=https://api-proxy.com/v1 \
-e ACCESS_CODE=lobe66 \
--name lobe-chat \
lobehub/lobe-chat
```
> \[!NOTE]
>
> 有关 Docker 部署的详细说明,详见 [📘 使用 Docker 部署][docs-docker]
<br/>
### 环境变量
本项目提供了一些额外的配置项,使用环境变量进行设置:
| 环境变量 | 类型 | 描述 | 示例 |
| ------------------- | ---- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| `OPENAI_API_KEY` | 必选 | 这是你在 OpenAI 账户页面申请的 API 密钥 | `sk-xxxxxx...xxxxxx` |
| `OPENAI_PROXY_URL` | 可选 | 如果你手动配置了 OpenAI 接口代理,可以使用此配置项来覆盖默认的 OpenAI API 请求基础 URL | `https://api.chatanywhere.cn``https://aihubmix.com/v1`<br/>默认值:<br/>`https://api.openai.com/v1` |
| `ACCESS_CODE` | 可选 | 添加访问此服务的密码,你可以设置一个长密码以防被爆破,该值用逗号分隔时为密码数组 | `awCTe)re_r74` or `rtrt_ewee3@09!` or `code1,code2,code3` |
| `OPENAI_MODEL_LIST` | 可选 | 用来控制模型列表,使用 `+` 增加一个模型,使用 `-` 来隐藏一个模型,使用 `模型名=展示名` 来自定义模型的展示名,用英文逗号隔开。 | `qwen-7b-chat,+glm-6b,-gpt-3.5-turbo` |
> \[!NOTE]
>
> 完整环境变量可见 [📘 环境变量][docs-env-var]
<br/>
### 获取 OpenAI API Key
API Key 是使用 LobeChat 进行大语言模型会话的必要信息,本节以 OpenAI 模型服务商为例,简要介绍获取 API Key 的方式。
#### `A` 通过 OpenAI 官方渠道
- 注册一个 [OpenAI 账户](https://platform.openai.com/signup),你需要使用国际手机号、非大陆邮箱进行注册;
- 注册完毕后,前往 [API Keys](https://platform.openai.com/api-keys) 页面,点击 `Create new secret key` 创建新的 API Key:
| 步骤 1:打开创建窗口 | 步骤 2:创建 API Key | 步骤 3:获取 API Key |
| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/296253192-ff2193dd-f125-4e58-82e8-91bc376c0d68.png" height="200"/> | <img src="https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/296254170-803bacf0-4471-4171-ae79-0eab08d621d1.png" height="200"/> | <img src="https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/296255167-f2745f2b-f083-4ba8-bc78-9b558e0002de.png" height="200"/> |
- 将此 API Key 填写到 LobeChat 的 API Key 配置中,即可开始使用。
> \[!TIP]
>
> 账户注册后,一般有 5 美元的免费额度,但有效期只有三个月。
> 如果你希望长期使用你的 API Key,你需要完成支付的信用卡绑定。由于 OpenAI 只支持外币信用卡,因此你需要找到合适的支付渠道,此处不再详细展开。
<br/>
#### `B` 通过 OpenAI 第三方代理商
如果你发现注册 OpenAI 账户或者绑定外币信用卡比较麻烦,可以考虑借助一些知名的 OpenAI 第三方代理商来获取 API Key,这可以有效降低获取 OpenAI API Key 的门槛。但与此同时,一旦使用三方服务,你可能也需要承担潜在的风险,
请根据你自己的实际情况自行决策。以下是常见的第三方模型代理商列表,供你参考:
| | 服务商 | 特性说明 | Proxy 代理地址 | 链接 |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | -------------------------------------------------------------- | ------------------------- | ------------------------------- |
| <img src="https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/296272721-c3ac0bf3-e433-4496-89c4-ebdc20689c17.jpg" width="48" /> | **AiHubMix** | 使用 OpenAI 企业接口,全站模型价格为官方 **6 折**(含 GPT-4 | `https://aihubmix.com/v1` | [获取](https://lobe.li/XHnZIUP) |
> \[!WARNING]
>
> **免责申明**: 在此推荐的 OpenAI API Key 由第三方代理商提供,所以我们不对 API Key 的 **有效性** 和 **安全性** 负责,请你自行承担购买和使用 API Key 的风险。
> \[!NOTE]
>
> 如果你是模型服务商,并认为自己的服务足够稳定且价格实惠,欢迎联系我们,我们会在自行体验和测试后酌情推荐。
<div align="right">
@@ -192,11 +497,12 @@ LobeChat 提供了 Vercel 的 [自托管版本][deploy-link]。这使你可以
## 📦 生态系统
| NPM | 代码库 | 描述 | 版本 |
| ------------------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------- | --------------------------------------- |
| [@lobehub/ui][lobe-ui-link] | [lobehub/lobe-ui][lobe-ui-github] | Lobe UI 是一个专为构建 AIGC 网页应用程序而设计的开源 UI 组件库 | [![][lobe-ui-shield]][lobe-ui-link] |
| [@lobehub/lint][lobe-lint-link] | [lobehub/lobe-lint][lobe-lint-github] | LobeLint 为 LobeHub 提供 ESlintStylelintCommitlintPrettierRemark 和 Semantic Release 的配置。 | [![][lobe-lint-shield]][lobe-lint-link] |
| @lobehub/assets | [lobehub/assets][lobe-assets-github] | LobeHub 的 Logo 资源、favicon、网页字体。 | |
| NPM | 仓库 | 描述 | 版本 |
| --------------------------------- | --------------------------------------- | ---------------------------------------------------------------------------------------- | ----------------------------------------- |
| [@lobehub/ui][lobe-ui-link] | [lobehub/lobe-ui][lobe-ui-github] | 构建 AIGC 网页应用程序而设计的开源 UI 组件库 | [![][lobe-ui-shield]][lobe-ui-link] |
| [@lobehub/icons][lobe-icons-link] | [lobehub/lobe-icons][lobe-icons-github] | 主流 AI / LLM 模型和公司 SVG Logo 与 Icon 合集 | [![][lobe-icons-shield]][lobe-icons-link] |
| [@lobehub/tts][lobe-tts-link] | [lobehub/lobe-tts][lobe-tts-github] | AI TTS / STT 语音合成 / 识别 React Hooks 库 | [![][lobe-tts-shield]][lobe-tts-link] |
| [@lobehub/lint][lobe-lint-link] | [lobehub/lobe-lint][lobe-lint-github] | LobeHub 代码样式规范 ESlintStylelintCommitlintPrettierRemark 和 Semantic Release | [![][lobe-lint-shield]][lobe-lint-link] |
<div align="right">
@@ -206,25 +512,20 @@ LobeChat 提供了 Vercel 的 [自托管版本][deploy-link]。这使你可以
## 🧩 插件体系
插件提供了扩展 LobeChat [Function Calling][fc-link] 能力的方法。可以用于引入新的 Function Calling,甚至是新的消息结果渲染方式。如果你对插件开发感兴趣,请在 Wiki 中查阅我们的 [📘 插件开发指引](https://github.com/lobehub/lobe-chat/wiki/Plugin-Development.zh-CN)
插件提供了扩展 LobeChat [Function Calling][docs-functionc-call] 能力的方法。可以用于引入新的 Function Calling,甚至是新的消息结果渲染方式。如果你对插件开发感兴趣,请在 Wiki 中查阅我们的 [📘 插件开发指引][docs-plugin-dev]
- [lobe-chat-plugins][lobe-chat-plugins]这是 LobeChat 的插件索引。它从该仓库的 index.json 中获取插件列表并显示给用户。
- [chat-plugin-template][chat-plugin-template]: Chat Plugin 插件开发模版,你可以通过项目模版快速新建插件项目。
- [@lobehub/chat-plugin-sdk][chat-plugin-sdk]LobeChat 插件 SDK 可帮助您创建出色的 Lobe Chat 插件。
- [@lobehub/chat-plugins-gateway][chat-plugins-gateway]LobeChat 插件网关是一个后端服务,作为 LobeChat 插件的网关。我们使用 Vercel 部署此服务。主要的 API POST /api/v1/runner 被部署为 Edge Function。
- [lobe-chat-plugins][lobe-chat-plugins]:插件索引从该仓库的 index.json 中获取插件列表并显示给用户。
- [chat-plugin-template][chat-plugin-template]插件开发模版,你可以通过项目模版快速新建插件项目。
- [@lobehub/chat-plugin-sdk][chat-plugin-sdk]:插件 SDK 可帮助您创建出色的 Lobe Chat 插件。
- [@lobehub/chat-plugins-gateway][chat-plugins-gateway]:插件网关是一个后端服务,作为 LobeChat 插件的网关。我们使用 Vercel 部署此服务。主要的 API POST /api/v1/runner 被部署为 Edge Function。
> **Note**\
> \[!NOTE]
>
> 插件系统目前正在进行重大开发。您可以在以下 Issues 中了解更多信息:
>
> - [x] [**插件一期**](https://github.com/lobehub/lobe-chat/issues/73): 实现插件与主体分离,将插件拆分为独立仓库维护,并实现插件的动态加载
> - [x] [**插件二期**](https://github.com/lobehub/lobe-chat/issues/97): 插件的安全性与使用的稳定性,更加精准地呈现异常状态,插件架构的可维护性与开发者友好
> - [ ] [**插件三期**](https://github.com/lobehub/lobe-chat/issues/149):更高阶与完善的自定义能力,支持插件鉴权与示例
| 官方插件 | 描述 |
| ---------------------------------------- | ---------------------------------------------------------------------------- |
| [搜索引擎][chat-plugin-search-engine] | 此插件允许使用 SerpApi 搜索引擎。 |
| [实时天气][chat-plugin-realtime-weather] | 此插件通过获取实时天气数据提供实用的天气信息,并可以根据用户的位置自动更新。 |
| [网站爬虫][chat-plugin-web-crawler] | 此插件自动爬取指定 URL 网页的主要内容,并将其用作上下文输入。 |
> - [x] [**插件三期**](https://github.com/lobehub/lobe-chat/issues/149):更高阶与完善的自定义能力,支持插件鉴权与示例
<div align="right">
@@ -240,15 +541,15 @@ LobeChat 提供了 Vercel 的 [自托管版本][deploy-link]。这使你可以
或者使用以下命令进行本地开发:
[![][bun-shield]][bun-link]
```bash
```fish
$ git clone https://github.com/lobehub/lobe-chat.git
$ cd lobe-chat
$ bun install
$ bun run dev
$ pnpm install
$ pnpm run dev
```
如果你希望了解更多详情,欢迎可以查阅我们的 [📘 开发指南][docs-dev-guide]
<div align="right">
[![][back-to-top]](#readme-top)
@@ -259,11 +560,65 @@ $ bun run dev
我们非常欢迎各种形式的贡献。如果你对贡献代码感兴趣,可以查看我们的 GitHub [Issues][github-issues-link] 和 [Projects][github-project-link],大展身手,向我们展示你的奇思妙想。
> \[!TIP]
>
> 我们希望创建一个技术分享型社区,一个可以促进知识共享、想法交流,激发彼此鼓励和协作的环境。
> 同时欢迎联系我们提供产品功能和使用体验反馈,帮助我们将 LobeChat 建设得更好。
>
> **组织维护者:** [@arvinxx](https://github.com/arvinxx) [@canisminor1990](https://github.com/canisminor1990)
[![][pr-welcome-shield]][pr-welcome-link]
[![][submit-agents-shield]][submit-agents-link]
[![][submit-plugin-shield]][submit-plugin-link]
[![][contributors-contrib]][contributors-link]
<a href="https://github.com/lobehub/lobe-chat/graphs/contributors" target="_blank">
<table>
<tr>
<th colspan="2">
<br><img src="https://contrib.rocks/image?repo=lobehub/lobe-chat"><br><br>
</th>
</tr>
<tr>
<td>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://next.ossinsight.io/widgets/official/compose-org-active-contributors/thumbnail.png?activity=active&period=past_28_days&owner_id=131470832&repo_ids=643445235&image_size=2x3&color_scheme=dark">
<img src="https://next.ossinsight.io/widgets/official/compose-org-active-contributors/thumbnail.png?activity=active&period=past_28_days&owner_id=131470832&repo_ids=643445235&image_size=2x3&color_scheme=light">
</picture>
</td>
<td rowspan="2">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://next.ossinsight.io/widgets/official/compose-org-participants-growth/thumbnail.png?activity=active&period=past_28_days&owner_id=131470832&repo_ids=643445235&image_size=4x7&color_scheme=dark">
<img src="https://next.ossinsight.io/widgets/official/compose-org-participants-growth/thumbnail.png?activity=active&period=past_28_days&owner_id=131470832&repo_ids=643445235&image_size=4x7&color_scheme=light">
</picture>
</td>
</tr>
<tr>
<td>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://next.ossinsight.io/widgets/official/compose-org-active-contributors/thumbnail.png?activity=new&period=past_28_days&owner_id=131470832&repo_ids=643445235&image_size=2x3&color_scheme=dark">
<img src="https://next.ossinsight.io/widgets/official/compose-org-active-contributors/thumbnail.png?activity=new&period=past_28_days&owner_id=131470832&repo_ids=643445235&image_size=2x3&color_scheme=light">
</picture>
</td>
</tr>
</table>
</a>
<div align="right">
[![][back-to-top]](#readme-top)
</div>
## ❤ 社区赞助
每一分支持都珍贵无比,汇聚成我们支持的璀璨银河!你就像一颗划破夜空的流星,瞬间点亮我们前行的道路。感谢你对我们的信任 —— 你的支持笔就像星辰导航,一次又一次地为项目指明前进的光芒。
<a href="https://opencollective.com/lobehub" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/lobehub/.github/blob/main/static/sponsor-dark.png?raw=true">
<img src="https://github.com/lobehub/.github/blob/main/static/sponsor-light.png?raw=true">
</picture>
</a>
<div align="right">
@@ -273,9 +628,10 @@ $ bun run dev
## 🔗 更多工具
- [🤯 Lobe Theme][lobe-theme] : Stable Diffusion WebUI 的现代主题,精致的界面设计,高度可定制的 UI,以及提高效率的功能。
- [🌏 Lobe i18n][lobe-i18n] : Lobe i18n 是一个由 ChatGPT 驱动的 i18n(国际化)翻译过程的自动化工具。它支持自动分割大文件、增量更新,以及为 OpenAI 模型、API 代理和温度提供定制选项的功能
- [💌 Lobe Commit][lobe-commit] : Lobe Commit 是一个 CLI 工具,它利用 Langchain/ChatGPT 生成基于 Gitmoji 的提交消息
- **[🅰️ Lobe SD Theme][lobe-theme]:** Stable Diffusion WebUI 的现代主题,精致的界面设计,高度可定制的 UI,以及提高效率的功能。
- **[⛵️ Lobe Midjourney WebUI][lobe-midjourney-webui]:** Midjourney WebUI, 能够根据文本提示快速生成丰富多样的图像,激发创造力,增强对话交流
- **[🌏 Lobe i18n][lobe-i18n]:** Lobe i18n 是一个由 ChatGPT 驱动的 i18n(国际化)翻译过程的自动化工具。它支持自动分割大文件、增量更新,以及为 OpenAI 模型、API 代理和温度提供定制选项的功能
- **[💌 Lobe Commit][lobe-commit]:** Lobe Commit 是一个 CLI 工具,它利用 Langchain/ChatGPT 生成基于 Gitmoji 的提交消息。
<div align="right">
@@ -297,24 +653,52 @@ This project is [MIT](./LICENSE) licensed.
<!-- LINK GROUP -->
[back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square
[bun-link]: https://bun.sh
[bun-shield]: https://img.shields.io/badge/-speedup%20with%20bun-black?logo=bun&style=for-the-badge
[chat-plugin-realtime-weather]: https://github.com/lobehub/chat-plugin-realtime-weather
[chat-desktop]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/chat/desktop/pagespeed.svg
[chat-desktop-report]: https://lobehub.github.io/lobe-chat/lighthouse/chat/desktop/chat_preview_lobehub_com_chat.html
[chat-mobile]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/chat/mobile/pagespeed.svg
[chat-mobile-report]: https://lobehub.github.io/lobe-chat/lighthouse/chat/mobile/chat_preview_lobehub_com_chat.html
[chat-plugin-sdk]: https://github.com/lobehub/chat-plugin-sdk
[chat-plugin-search-engine]: https://github.com/lobehub/chat-plugin-search-engine
[chat-plugin-template]: https://github.com/lobehub/chat-plugin-template
[chat-plugin-web-crawler]: https://github.com/lobehub/chat-plugin-web-crawler
[chat-plugins-gateway]: https://github.com/lobehub/chat-plugins-gateway
[codecov-link]: https://codecov.io/gh/lobehub/lobe-chat
[codecov-shield]: https://img.shields.io/codecov/c/github/lobehub/lobe-chat?labelColor=black&style=flat-square&logo=codecov&logoColor=white
[codespaces-link]: https://codespaces.new/lobehub/lobe-chat
[codespaces-shield]: https://github.com/codespaces/badge.svg
[contributors-contrib]: https://contrib.rocks/image?repo=lobehub/lobe-chat
[contributors-link]: https://github.com/lobehub/lobe-chat/graphs/contributors
[deploy-button-image]: https://vercel.com/button
[deploy-link]: https://vercel.com/new/clone?repository-link=https%3A%2F%2Fgithub.com%2Flobehub%2Flobe-chat&env=OPENAI_API_KEY&envDescription=Find%20your%20OpenAI%20API%20Key%20by%20click%20the%20right%20Learn%20More%20button.%20%20&envLink=https%3A%2F%2Fplatform.openai.com%2Faccount%2Fapi-keys&project-name=lobe-chat&repository-name=lobe-chat
[deploy-link]: https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Flobehub%2Flobe-chat&env=OPENAI_API_KEY,ACCESS_CODE&envDescription=Find%20your%20OpenAI%20API%20Key%20by%20click%20the%20right%20Learn%20More%20button.%20%7C%20Access%20Code%20can%20protect%20your%20website&envLink=https%3A%2F%2Fplatform.openai.com%2Faccount%2Fapi-keys&project-name=lobe-chat&repository-name=lobe-chat
[deploy-on-sealos-button-image]: https://raw.githubusercontent.com/labring-actions/templates/main/Deploy-on-Sealos.svg
[deploy-on-sealos-link]: https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dlobe-chat
[deploy-on-zeabur-button-image]: https://zeabur.com/button.svg
[deploy-on-zeabur-link]: https://zeabur.com/templates/VZGGTI
[discord-link]: https://discord.gg/AYFPHvv2jT
[discord-shield]: https://img.shields.io/discord/1127171173982154893?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square
[discord-shield-badge]: https://img.shields.io/discord/1127171173982154893?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=for-the-badge
[fc-link]: https://sspai.com/post/81986
[docker-pulls-link]: https://hub.docker.com/r/lobehub/lobe-chat
[docker-pulls-shield]: https://img.shields.io/docker/pulls/lobehub/lobe-chat?color=45cc11&labelColor=black&style=flat-square
[docker-release-link]: https://hub.docker.com/r/lobehub/lobe-chat
[docker-release-shield]: https://img.shields.io/docker/v/lobehub/lobe-chat?color=369eff&label=docker&labelColor=black&logo=docker&logoColor=white&style=flat-square
[docker-size-link]: https://hub.docker.com/r/lobehub/lobe-chat
[docker-size-shield]: https://img.shields.io/docker/image-size/lobehub/lobe-chat?color=369eff&labelColor=black&style=flat-square
[docs-dev-guide]: https://github.com/lobehub/lobe-chat/wiki/index
[docs-docker]: https://lobehub.com/docs/self-hosting/platform/docker
[docs-env-var]: https://lobehub.com/docs/self-hosting/environment-variables
[docs-feat-agent]: https://lobehub.com/docs/usage/features/agent-market
[docs-feat-local]: https://lobehub.com/docs/usage/features/local-llm
[docs-feat-mobile]: https://lobehub.com/docs/usage/features/mobile
[docs-feat-plugin]: https://lobehub.com/docs/usage/features/plugin-system
[docs-feat-provider]: https://lobehub.com/docs/usage/features/multi-ai-providers
[docs-feat-pwa]: https://lobehub.com/docs/usage/features/pwa
[docs-feat-t2i]: https://lobehub.com/docs/usage/features/text-to-image
[docs-feat-theme]: https://lobehub.com/docs/usage/features/theme
[docs-feat-tts]: https://lobehub.com/docs/usage/features/tts
[docs-feat-vision]: https://lobehub.com/docs/usage/features/vision
[docs-functionc-call]: https://platform.openai.com/docs/guides/function-calling
[docs-lighthouse]: https://github.com/lobehub/lobe-chat/wiki/Lighthouse.zh-CN
[docs-plugin-dev]: https://lobehub.com/docs/usage/plugins/development
[docs-self-hosting]: https://lobehub.com/docs/self-hosting/start
[docs-upstream-sync]: https://lobehub.com/docs/self-hosting/advanced/upstream-sync
[docs-usage-ollama]: https://lobehub.com/docs/usage/providers/ollama
[docs-usage-plugin]: https://lobehub.com/docs/usage/plugins/basic
[fossa-license-link]: https://app.fossa.com/projects/git%2Bgithub.com%2Flobehub%2Flobe-chat
[fossa-license-shield]: https://app.fossa.com/api/projects/git%2Bgithub.com%2Flobehub%2Flobe-chat.svg?type=large
[github-action-release-link]: https://github.com/lobehub/lobe-chat/actions/workflows/release.yml
@@ -323,6 +707,7 @@ This project is [MIT](./LICENSE) licensed.
[github-action-test-shield]: https://img.shields.io/github/actions/workflow/status/lobehub/lobe-chat/test.yml?label=test&labelColor=black&logo=githubactions&logoColor=white&style=flat-square
[github-contributors-link]: https://github.com/lobehub/lobe-chat/graphs/contributors
[github-contributors-shield]: https://img.shields.io/github/contributors/lobehub/lobe-chat?color=c4f042&labelColor=black&style=flat-square
[github-document-link]: https://lobehub.com/docs
[github-forks-link]: https://github.com/lobehub/lobe-chat/network/members
[github-forks-shield]: https://img.shields.io/github/forks/lobehub/lobe-chat?color=8ae8ff&labelColor=black&style=flat-square
[github-issues-link]: https://github.com/lobehub/lobe-chat/issues
@@ -336,22 +721,44 @@ This project is [MIT](./LICENSE) licensed.
[github-releasedate-shield]: https://img.shields.io/github/release-date/lobehub/lobe-chat?labelColor=black&style=flat-square
[github-stars-link]: https://github.com/lobehub/lobe-chat/network/stargazers
[github-stars-shield]: https://img.shields.io/github/stars/lobehub/lobe-chat?color=ffcb47&labelColor=black&style=flat-square
[github-wiki-link]: https://github.com/lobehub/lobe-chat/wiki
[github-trending-shield]: https://trendshift.io/api/badge/repositories/2256
[github-trending-url]: https://trendshift.io/repositories/2256
[image-banner]: https://github.com/lobehub/lobe-chat/assets/28616219/9f155dff-4737-429f-9cad-a70a1a860c5f
[image-feat-agent]: https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/268670869-f1ffbf66-42b6-42cf-a937-9ce1f8328514.png
[image-feat-local]: https://github.com/lobehub/lobe-chat/assets/28616219/ca9a21bc-ea6c-4c90-bf4a-fa53b4fb2b5c
[image-feat-mobile]: https://gw.alipayobjects.com/zos/kitchen/R441AuFS4W/mobile.webp
[image-feat-plugin]: https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/268670883-33c43a5c-a512-467e-855c-fa299548cce5.png
[image-feat-privoder]: https://github.com/lobehub/lobe-chat/assets/28616219/b164bc54-8ba2-4c1e-b2f2-f4d7f7e7a551
[image-feat-pwa]: https://gw.alipayobjects.com/zos/kitchen/69x6bllkX3/pwa.webp
[image-feat-t2i]: https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/297746445-0ff762b9-aa08-4337-afb7-12f932b6efbb.png
[image-feat-theme]: https://gw.alipayobjects.com/zos/kitchen/pvus1lo%26Z7/darkmode.webp
[image-feat-tts]: https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/284072124-c9853d8d-f1b5-44a8-a305-45ebc0f6d19a.png
[image-feat-vision]: https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/284072129-382bdf30-e3d6-4411-b5a0-249710b8ba08.png
[image-overview]: https://github.com/lobehub/lobe-chat/assets/28616219/8b04c3c9-3d71-4fb4-bd9b-a4f415c5876d
[image-star]: https://github.com/lobehub/lobe-chat/assets/17870709/cb06b748-513f-47c2-8740-d876858d7855
[issues-link]: https://img.shields.io/github/issues/lobehub/lobe-chat.svg?style=flat
[lobe-assets-github]: https://github.com/lobehub/lobe-assets
[lobe-chat-plugins]: https://github.com/lobehub/lobe-chat-plugins
[lobe-commit]: https://github.com/lobehub/lobe-commit/tree/master/packages/lobe-commit
[lobe-i18n]: https://github.com/lobehub/lobe-commit/tree/master/packages/lobe-i18n
[lobe-icons-github]: https://github.com/lobehub/lobe-icons
[lobe-icons-link]: https://www.npmjs.com/package/@lobehub/icons
[lobe-icons-shield]: https://img.shields.io/npm/v/@lobehub/icons?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square
[lobe-lint-github]: https://github.com/lobehub/lobe-lint
[lobe-lint-link]: https://www.npmjs.com/package/@lobehub/lint
[lobe-lint-shield]: https://img.shields.io/npm/v/@lobehub/lint?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square
[lobe-midjourney-webui]: https://github.com/lobehub/lobe-midjourney-webui
[lobe-theme]: https://github.com/lobehub/sd-webui-lobe-theme
[lobe-tts-github]: https://github.com/lobehub/lobe-tts
[lobe-tts-link]: https://www.npmjs.com/package/@lobehub/tts
[lobe-tts-shield]: https://img.shields.io/npm/v/@lobehub/tts?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square
[lobe-ui-github]: https://github.com/lobehub/lobe-ui
[lobe-ui-link]: https://www.npmjs.com/package/@lobehub/ui
[lobe-ui-shield]: https://img.shields.io/npm/v/@lobehub/ui?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square
[pr-welcome-link]: https://github.com/lobehub/lobe-chat/pulls
[pr-welcome-shield]: https://img.shields.io/badge/🤯_pr_welcome-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge
[profile-link]: https://github.com/lobehub
[share-mastodon-link]: https://mastodon.social/share?text=Check%20this%20GitHub%20repository%20out%20%F0%9F%A4%AF%20LobeChat%20-%20An%20open-source,%20extensible%20(Function%20Calling),%20high-performance%20chatbot%20framework.%20It%20supports%20one-click%20free%20deployment%20of%20your%20private%20ChatGPT/LLM%20web%20application.%20https://github.com/lobehub/lobe-chat%20#chatbot%20#chatGPT%20#openAI
[share-mastodon-shield]: https://img.shields.io/badge/-share%20on%20mastodon-black?labelColor=black&logo=mastodon&logoColor=white&style=flat-square
[share-reddit-link]: https://www.reddit.com/submit?title=%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%20GitHub%20%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%20%F0%9F%A4%AF%20LobeChat%20-%20%E5%BC%80%E6%BA%90%E7%9A%84%E3%80%81%E5%8F%AF%E6%89%A9%E5%B1%95%E7%9A%84%EF%BC%88Function%20Calling%EF%BC%89%E9%AB%98%E6%80%A7%E8%83%BD%E8%81%8A%E5%A4%A9%E6%9C%BA%E5%99%A8%E4%BA%BA%E6%A1%86%E6%9E%B6%E3%80%82%0A%E5%AE%83%E6%94%AF%E6%8C%81%E4%B8%80%E9%94%AE%E5%85%8D%E8%B4%B9%E9%83%A8%E7%BD%B2%E7%A7%81%E4%BA%BA%20ChatGPT%2FLLM%20%E7%BD%91%E9%A1%B5%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%20%23chatbot%20%23chatGPT%20%23openAI&url=https%3A%2F%2Fgithub.com%2Flobehub%2Flobe-chat
[share-reddit-shield]: https://img.shields.io/badge/-share%20on%20reddit-black?labelColor=black&logo=reddit&logoColor=white&style=flat-square
[share-telegram-link]: https://t.me/share/url"?text=%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%20GitHub%20%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%20%F0%9F%A4%AF%20LobeChat%20-%20%E5%BC%80%E6%BA%90%E7%9A%84%E3%80%81%E5%8F%AF%E6%89%A9%E5%B1%95%E7%9A%84%EF%BC%88Function%20Calling%EF%BC%89%E9%AB%98%E6%80%A7%E8%83%BD%E8%81%8A%E5%A4%A9%E6%9C%BA%E5%99%A8%E4%BA%BA%E6%A1%86%E6%9E%B6%E3%80%82%0A%E5%AE%83%E6%94%AF%E6%8C%81%E4%B8%80%E9%94%AE%E5%85%8D%E8%B4%B9%E9%83%A8%E7%BD%B2%E7%A7%81%E4%BA%BA%20ChatGPT%2FLLM%20%E7%BD%91%E9%A1%B5%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%20%23chatbot%20%23chatGPT%20%23openAI&url=https%3A%2F%2Fgithub.com%2Flobehub%2Flobe-chat
@@ -362,6 +769,8 @@ This project is [MIT](./LICENSE) licensed.
[share-whatsapp-shield]: https://img.shields.io/badge/-share%20on%20whatsapp-black?labelColor=black&logo=whatsapp&logoColor=white&style=flat-square
[share-x-link]: https://x.com/intent/tweet?hashtags=chatbot%2CchatGPT%2CopenAI&text=%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%20GitHub%20%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%20%F0%9F%A4%AF%20LobeChat%20-%20%E5%BC%80%E6%BA%90%E7%9A%84%E3%80%81%E5%8F%AF%E6%89%A9%E5%B1%95%E7%9A%84%EF%BC%88Function%20Calling%EF%BC%89%E9%AB%98%E6%80%A7%E8%83%BD%E8%81%8A%E5%A4%A9%E6%9C%BA%E5%99%A8%E4%BA%BA%E6%A1%86%E6%9E%B6%E3%80%82%0A%E5%AE%83%E6%94%AF%E6%8C%81%E4%B8%80%E9%94%AE%E5%85%8D%E8%B4%B9%E9%83%A8%E7%BD%B2%E7%A7%81%E4%BA%BA%20ChatGPT%2FLLM%20%E7%BD%91%E9%A1%B5%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F&url=https%3A%2F%2Fgithub.com%2Flobehub%2Flobe-chat
[share-x-shield]: https://img.shields.io/badge/-share%20on%20x-black?labelColor=black&logo=x&logoColor=white&style=flat-square
[sponsor-link]: https://opencollective.com/lobehub 'Become ❤ LobeHub Sponsor'
[sponsor-shield]: https://img.shields.io/badge/-Sponsor%20LobeHub-f04f88?logo=opencollective&logoColor=white&style=flat-square
[submit-agents-link]: https://github.com/lobehub/lobe-chat-agents
[submit-agents-shield]: https://img.shields.io/badge/🤖/🏪_submit_agent-%E2%86%92-c4f042?labelColor=black&style=for-the-badge
[submit-plugin-link]: https://github.com/lobehub/lobe-chat-plugins
+25
View File
@@ -0,0 +1,25 @@
import { act } from 'react-dom/test-utils';
import { beforeEach } from 'vitest';
import { createWithEqualityFn as actualCreate } from 'zustand/traditional';
// a variable to hold reset functions for all stores declared in the app
const storeResetFns = new Set<() => void>();
// when creating a store, we get its initial state, create a reset function and add it in the set
const createImpl = (createState: any) => {
const store = actualCreate(createState, Object.is);
const initialState = store.getState();
storeResetFns.add(() => store.setState(initialState, true));
return store;
};
// Reset all stores after each test run
beforeEach(() => {
act(() => {
for (const resetFn of storeResetFns) {
resetFn();
}
});
});
export const createWithEqualityFn = (f: any) => (f === undefined ? createImpl : createImpl(f));
@@ -0,0 +1,193 @@
# New Authentication Provider Guide
LobeChat uses [Auth.js v5](https://authjs.dev/) as the external authentication service. Auth.js is an open-source authentication library that provides a simple way to implement authentication and authorization features. This document will introduce how to use Auth.js to implement a new authentication provider.
### TOC
- [Add New Authentication Provider](#add-new-authentication-provider)
- [Pre-requisites: Check the Official Provider List](#pre-requisites-check-the-official-provider-list)
- [Step 1: Add Authenticator Core Code](#step-1-add-authenticator-core-code)
- [Step 2: Update Server Configuration Code](#step-2-update-server-configuration-code)
- [Step 3: Change Frontend Pages](#step-3-change-frontend-pages)
- [Step 4: Configure the Environment Variables](#step-4-configure-the-environment-variables)
- [Step 5: Modify server-side user information processing logic](#step-5-modify-server-side-user-information-processing-logic)
## Add New Authentication Provider
To add a new authentication provider in LobeChat (for example, adding Okta), you need to follow the steps below:
### Pre-requisites: Check the Official Provider List
First, you need to check the [Auth.js Provider List](https://authjs.dev/reference/core/providers) to see if your provider is already supported. If yes, you can directly use the SDK provided by Auth.js to implement the authentication feature.
Next, I will use [Okta](https://authjs.dev/reference/core/providers/okta) as an example to introduce how to add a new authentication provider.
### Step 1: Add Authenticator Core Code
Open the `src/app/api/auth/next-auth.ts` file and import `next-auth/providers/okta`.
```ts
import { NextAuth } from 'next-auth';
import Auth0 from 'next-auth/providers/auth0';
import Okta from 'next-auth/providers/okta';
// Import Okta provider
```
Add the predefined server configuration.
```ts
// Import server configuration
const { OKTA_CLIENT_ID, OKTA_CLIENT_SECRET, OKTA_ISSUER } = getServerConfig();
const nextAuth = NextAuth({
providers: [
// ... Other providers
Okta({
clientId: OKTA_CLIENT_ID,
clientSecret: OKTA_CLIENT_SECRET,
issuer: OKTA_ISSUER,
}),
],
});
```
### Step 2: Update Server Configuration Code
Open the `src/config/server/app.ts` file and add Okta-related environment variables in the `getAppConfig` function.
```ts
export const getAppConfig = () => {
// ... Other code
return {
// ... Other environment variables
OKTA_CLIENT_ID: process.env.OKTA_CLIENT_ID || '',
OKTA_CLIENT_SECRET: process.env.OKTA_CLIENT_SECRET || '',
OKTA_ISSUER: process.env.OKTA_ISSUER || '',
};
};
```
### Step 3: Change Frontend Pages
Modify the `signIn` function parameter in `src/Features/Conversation/Error/OAuthForm.tsx` and \`src/app/settings/common/Common.tsx
The default is `auth0`, which you can change to `okta` to switch to the Okta provider, or remove this parameter to support all added authentication services
This value is the id of the Auth.js provider, and you can read the source code of the corresponding `next-auth/providers` module to read the default ID.
### Step 4: Configure the Environment Variables
Add `OKTA_CLIENT_ID``OKTA_CLIENT_SECRET``OKTA_ISSUER` environment variables when you deploy.
### Step 5: Modify server-side user information processing logic
#### Get user information in the frontend
Use the `useOAuthSession()` method in the frontend page to get the user information `user` returned by the backend:
```ts
import { useOAuthSession } from '@/hooks/useOAuthSession';
const { user, isOAuthLoggedIn } = useOAuthSession();
```
The default type of `user` is `User`, and the type definition is:
```ts
interface User {
id?: string;
name?: string | null;
email?: string | null;
image?: string | null;
}
```
#### Modify user `id` handling logic
The `user.id` is used to identify users. When introducing a new OAuth identity provider, you need to handle the information carried in the OAuth callback in `src/app/api/auth/next-auth.ts`. You need to select the user's `id` from this information. Before that, we need to understand the data processing sequence of `Auth.js`:
```txt
authorize --> jwt --> session
```
By default, in the `jwt --> session` process, `Auth.js` will [automatically assign the user `id` to `account.providerAccountId` based on the login type](https://authjs.dev/reference/core/types#provideraccountid). If you need to select a different value as the user `id`, you need to implement the following handling logic:
```ts
callbacks: {
async jwt({ token, account, profile }) {
if (account) {
// You can select a different value from `account` or `profile`
token.userId = account.providerAccountId;
}
return token;
},
},
```
#### Customize `session` return
If you want to carry more information about `profile` and `account` in the `session`, according to the data processing order mentioned above in `Auth.js`, you must first copy this information to the `token`. For example, add the user avatar URL `profile.picture` to the `session`:
```diff
callbacks: {
async jwt({ token, profile, account }) {
if (profile && account) {
token.userId = account.providerAccountId;
+ token.avatar = profile.picture;
}
return token;
},
async session({ session, token }) {
if (session.user) {
session.user.id = token.userId ?? session.user.id;
+ session.user.avatar = token.avatar;
}
return session;
},
},
```
Then supplement the type definition for the new parameters:
```ts
declare module '@auth/core/jwt' {
interface JWT {
// ...
avatar?: string;
}
}
declare module 'next-auth' {
interface User {
avatar?: string;
}
}
```
> [More built-in type extensions in Auth.js](https://authjs.dev/getting-started/typescript#module-augmentation)
#### Differentiate multiple authentication providers in the processing logic
If you have configured multiple authentication providers and their `userId` mappings are different, you can use the `account.provider` parameter in the `jwt` method to get the default id of the identity provider and enter different processing logic.
```ts
callbacks: {
async jwt({ token, profile, account }) {
if (profile && account) {
if (account.provider === 'authing')
token.userId = account.providerAccountId ?? token.sub;
else if (acount.provider === 'auth0')
token.userId = profile.sub ?? token.sub;
else
// other providers
}
return token;
},
}
```
Now, you can use Okta as your provider to implement the authentication feature in LobeChat.
@@ -0,0 +1,192 @@
# 新身份验证方式开发指南
LobeChat 使用 [Auth.js v5](https://authjs.dev/) 作为外部身份验证服务。Auth.js 是一个开源的身份验证库,它提供了一种简单的方式来实现身份验证和授权功能。本文档将介绍如何使用 Auth.js 来实现新的身份验证方式。
### TOC
- [添加新的身份验证提供者](#添加新的身份验证提供者)
- [准备工作:查阅官方的提供者列表](#准备工作查阅官方的提供者列表)
- [步骤 1: 新增关键代码](#步骤-1-新增关键代码)
- [步骤 2: 更新服务端配置代码](#步骤-2-更新服务端配置代码)
- [步骤 3: 修改前端页面](#步骤-3-修改前端页面)
- [步骤 4: 配置环境变量](#步骤-4-配置环境变量)
- [步骤 5: 修改服务端用户信息处理逻辑](#步骤-5-修改服务端用户信息处理逻辑)
## 添加新的身份验证提供者
为了在 LobeChat 中添加新的身份验证提供者(例如添加 Okta),你需要完成以下步骤:
### 准备工作:查阅官方的提供者列表
首先,你需要查阅 [Auth.js 提供者列表](https://authjs.dev/reference/core/providers) 来了解是否你的提供者已经被支持。如果你的提供者已经被支持,你可以直接使用 Auth.js 提供的 SDK 来实现身份验证功能。
接下来我会以 [Okta](https://authjs.dev/reference/core/providers/okta) 为例来介绍如何添加新的身份验证提供者
### 步骤 1: 新增关键代码
打开 `src/app/api/auth/next-auth.ts` 文件,引入 `next-auth/providers/okta`
```ts
import { NextAuth } from 'next-auth';
import Auth0 from 'next-auth/providers/auth0';
import Okta from 'next-auth/providers/okta';
// 引入 Okta 提供者
```
新增预定义的服务端配置
```ts
// 导入服务器配置
const { OKTA_CLIENT_ID, OKTA_CLIENT_SECRET, OKTA_ISSUER } = getServerConfig();
const nextAuth = NextAuth({
providers: [
// ... 其他提供者
Okta({
clientId: OKTA_CLIENT_ID,
clientSecret: OKTA_CLIENT_SECRET,
issuer: OKTA_ISSUER,
}),
],
});
```
### 步骤 2: 更新服务端配置代码
打开 `src/config/server/app.ts` 文件,在 `getAppConfig` 函数中新增 Okta 相关的环境变量
```ts
export const getAppConfig = () => {
// ... 其他代码
return {
// ... 其他环境变量
OKTA_CLIENT_ID: process.env.OKTA_CLIENT_ID || '',
OKTA_CLIENT_SECRET: process.env.OKTA_CLIENT_SECRET || '',
OKTA_ISSUER: process.env.OKTA_ISSUER || '',
};
};
```
### 步骤 3: 修改前端页面
修改在 `src/features/Conversation/Error/OAuthForm.tsx``src/app/settings/common/Common.tsx` 中的 `signIn` 函数参数
默认为 `auth0`,你可以将其修改为 `okta` 以切换到 Okta 提供者,或删除该参数以支持所有已添加的身份验证服务
该值为 Auth.js 提供者 的 id,你可以阅读相应的 `next-auth/providers` 模块源码以读取默认 ID
### 步骤 4: 配置环境变量
在部署时新增 Okta 相关的环境变量 `OKTA_CLIENT_ID``OKTA_CLIENT_SECRET``OKTA_ISSUER`,并填入相应的值,即可使用
### 步骤 5: 修改服务端用户信息处理逻辑
#### 在前端获取用户信息
在前端页面中使用 `useOAuthSession()` 方法获取后端返回的用户信息 `user`
```ts
import { useOAuthSession } from '@/hooks/useOAuthSession';
const { user, isOAuthLoggedIn } = useOAuthSession();
```
默认的 `user` 类型为 `User`,类型定义为:
```ts
interface User {
id?: string;
name?: string | null;
email?: string | null;
image?: string | null;
}
```
#### 修改用户 `id` 处理逻辑
`user.id` 用于标识用户。当引入新身份 OAuth 提供者后,您需要在 `src/app/api/auth/next-auth.ts` 中处理 OAuth 回调所携带的信息。您需要从中选取用户的 `id`。在此之前,我们需要了解 `Auth.js` 的数据处理顺序:
```txt
authorize --> jwt --> session
```
默认情况下,在 `jwt --> session` 过程中,`Auth.js` 会[自动根据登陆类型](https://authjs.dev/reference/core/types#provideraccountid)将用户 `id` 赋值到 `account.providerAccountId` 中。 如果您需要选取其他值作为用户 `id` ,您需要实现以下处理逻辑。
```ts
callbacks: {
async jwt({ token, account, profile }) {
if (account) {
// 您可以从 `account` 或 `profile` 中选取其他值
token.userId = account.providerAccountId;
}
return token;
},
},
```
#### 自定义 `session` 返回
如果您想在 `session` 中携带更多关于 `profile``account` 的信息,根据上面提到的 `Auth.js` 数据处理顺序,那必须先将该信息复制到 `token` 上。
示例:把用户头像 URL`profile.picture` 添加到`session` 中:
```diff
callbacks: {
async jwt({ token, profile, account }) {
if (profile && account) {
token.userId = account.providerAccountId;
+ token.avatar = profile.picture;
}
return token;
},
async session({ session, token }) {
if (session.user) {
session.user.id = token.userId ?? session.user.id;
+ session.user.avatar = token.avatar;
}
return session;
},
},
```
然后补充对新增参数的类型定义:
```ts
declare module '@auth/core/jwt' {
interface JWT {
// ...
avatar?: string;
}
}
declare module 'next-auth' {
interface User {
avatar?: string;
}
}
```
> [更多`Auth.js`内置类型拓展](https://authjs.dev/getting-started/typescript#module-augmentation)
#### 在处理逻辑中区分多个身份验证提供者
如果您配置了多个身份验证提供者,并且他们的 `userId` 映射各不相同,可以在 `jwt` 方法中的 `account.provider` 参数获取身份提供者的默认 id ,从而进入不同的处理逻辑。
```ts
callbacks: {
async jwt({ token, profile, account }) {
if (profile && account) {
if (account.provider === 'Authing')
token.userId = account.providerAccountId ?? token.sub;
else if (acount.provider === 'Okta')
token.userId = profile.sub ?? token.sub;
else
// other providers
}
return token;
},
}
```
+47
View File
@@ -0,0 +1,47 @@
# Architecture Design
LobeChat is an AI conversation application built on the Next.js framework, aiming to provide an AI productivity platform that enables users to interact with AI through natural language. The following is an overview of the architecture design of LobeChat:
#### TOC
- [Application Architecture Overview](#application-architecture-overview)
- [Frontend Architecture](#frontend-architecture)
- [Edge Runtime API](#edge-runtime-api)
- [Agents Market](#agents-market)
- [Plugin Market](#plugin-market)
- [Security and Performance Optimization](#security-and-performance-optimization)
- [Development and Deployment Process](#development-and-deployment-process)
## Application Architecture Overview
The overall architecture of LobeChat consists of the frontend, EdgeRuntime API, Agents Market, Plugin Market, and independent plugins. These components collaborate to provide a complete AI experience.
## Frontend Architecture
The frontend of LobeChat adopts the Next.js framework, leveraging its powerful server-side rendering (SSR) capability and routing functionality. The frontend utilizes a stack of technologies, including the antd component library, lobe-ui AIGC component library, zustand state management, swr request library, i18next internationalization library, and more. These technologies collectively support the functionality and features of LobeChat.
The components in the frontend architecture include app, components, config, const, features, helpers, hooks, layout, locales, migrations, prompts, services, store, styles, types, and utils. Each component has specific responsibilities and collaborates with others to achieve different functionalities.
## Edge Runtime API
The Edge Runtime API is one of the core components of LobeChat, responsible for handling the core logic of AI conversations. It provides interaction interfaces with the AI engine, including natural language processing, intent recognition, and response generation. The EdgeRuntime API communicates with the frontend, receiving user input and returning corresponding responses.
## Agents Market
The Agents Market is a crucial part of LobeChat, providing various AI agents for different scenarios to handle specific tasks and domains. The Agents Market also offers functionality for discovering and uploading agents, allowing users to find agents created by others and easily share their own agents in the market.
## Plugin Market
The Plugin Market is another key component of LobeChat, offering various plugins to extend the functionality and features of LobeChat. Plugins can be independent functional modules or integrated with agents from the Agents Market. During conversations, the assistant automatically identifies user input, recognizes suitable plugins, and passes them to the corresponding plugins for processing and returns the results.
## Security and Performance Optimization
LobeChat's security strategy includes authentication and permission management. Users need to authenticate before using LobeChat, and operations are restricted based on the user's permissions.
To optimize performance, LobeChat utilizes Next.js SSR functionality to achieve fast page loading and response times. Additionally, a series of performance optimization measures are implemented, including code splitting, caching, and resource compression.
## Development and Deployment Process
LobeChat's development process includes version control, testing, continuous integration, and continuous deployment. The development team uses version control systems for code management and conducts unit and integration testing to ensure code quality. Continuous integration and deployment processes ensure rapid delivery and deployment of code.
The above is a brief introduction to the architecture design of LobeChat, detailing the responsibilities and collaboration of each component, as well as the impact of design decisions on application functionality and performance.
+47
View File
@@ -0,0 +1,47 @@
# 架构设计
LobeChat 是一个基于 Next.js 框架构建的 AI 会话应用,旨在提供一个 AI 生产力平台,使用户能够与 AI 进行自然语言交互。以下是 LobeChat 的架构设计介稿:
#### TOC
- [应用架构概览](#应用架构概览)
- [前端架构](#前端架构)
- [Edge Runtime API](#edge-runtime-api)
- [Agents 市场](#agents-市场)
- [插件市场](#插件市场)
- [安全性和性能优化](#安全性和性能优化)
- [开发和部署流程](#开发和部署流程)
## 应用架构概览
LobeChat 的整体架构由前端、EdgeRuntime API、Agents 市场、插件市场和独立插件组成。这些组件相互协作,以提供完整的 AI 体验。
## 前端架构
LobeChat 的前端采用 Next.js 框架,利用其强大的 SSR(服务器端渲染)能力和路由功能。前端使用了一系列技术栈,包括 antd 组件库和 lobe-ui AIGC 组件库、zustand 状态管理、swr 请求库、i18next 国际化库等。这些技术栈共同支持了 LobeChat 的功能和特性。
前端架构中的组件包括 app、components、config、const、features、helpers、hooks、layout、locales、migrations、prompts、services、store、styles、types 和 utils。每个组件都有特定的职责,并与其他组件协同工作,以实现不同的功能。
## Edge Runtime API
Edge Runtime API 是 LobeChat 的核心组件之一,负责处理 AI 会话的核心逻辑。它提供了与 AI 引擎的交互接口,包括自然语言处理、意图识别和回复生成等。EdgeRuntime API 与前端进行通信,接收用户的输入并返回相应的回复。
## Agents 市场
Agents 市场是 LobeChat 的一个重要组成部分,它提供了各种不同场景的 AI Agent,用于处理特定的任务和领域。Agents 市场还提供了使用和上传 Agent 的功能,使用户能够发现其他人制作的 Agent ,也可以一键分享自己的 Agent 到市场上。
## 插件市场
插件市场是 LobeChat 的另一个关键组件,它提供了各种插件,用于扩展 LobeChat 的功能和特性。插件可以是独立的功能模块,也可以与 Agents 市场的 Agent 进行集成。在会话中,助手将自动识别用户的输入,并识别适合的插件并传递给相应的插件进行处理,并返回处理结果。
## 安全性和性能优化
LobeChat 的安全性策略包括身份验证和权限管理。用户需要进行身份验证后才能使用 LobeChat,同时根据用户的权限进行相应的操作限制。
为了优化性能,LobeChat 使用了 Next.js 的 SSR 功能,实现了快速的页面加载和响应时间。此外,还采用了一系列的性能优化措施,包括代码分割、缓存和资源压缩等。
## 开发和部署流程
LobeChat 的开发流程包括版本控制、测试、持续集成和持续部署。开发团队使用版本控制系统进行代码管理,并进行单元测试和集成测试以确保代码质量。持续集成和持续部署流程确保了代码的快速交付和部署。
以上是 LobeChat 的架构设计介绍简介,详细解释了各个组件的职责和协作方式,以及设计决策对应用功能和性能的影响。
+136
View File
@@ -0,0 +1,136 @@
# Conversation API Implementation Logic
The implementation of LobeChat's large model AI mainly relies on OpenAI's API, including the core conversation API on the backend and the integrated API on the frontend. Next, we will introduce the implementation approach and code for the backend and frontend separately.
#### TOC
- [Backend Implementation](#backend-implementation)
- [Core Conversation API](#core-conversation-api)
- [Conversation Result Processing](#conversation-result-processing)
- [Frontend Implementation](#frontend-implementation)
- [Frontend Integration](#frontend-integration)
- [Using Streaming to Get Results](#using-streaming-to-get-results)
## Backend Implementation
The following code removes authentication, error handling, and other logic, retaining only the core functionality logic.
### Core Conversation API
In the file `src/app/api/openai/chat/handler.ts`, we define a `POST` method, which first parses the payload data from the request (i.e., the conversation content sent by the client), and then retrieves the authorization information from the request. Then, we create an `openai` object and call the `createChatCompletion` method, which is responsible for sending the conversation request to OpenAI and returning the result.
```ts
export const POST = async (req: Request) => {
const payload = await req.json();
const { apiKey, endpoint } = getOpenAIAuthFromRequest(req);
const openai = createOpenai(apiKey, endpoint);
return createChatCompletion({ openai, payload });
};
```
### Conversation Result Processing
In the file `src/app/api/openai/chat/createChatCompletion.ts`, we define the `createChatCompletion` method, which first preprocesses the payload data, then calls OpenAI's `chat.completions.create` method to send the request, and uses the `OpenAIStream` from the [Vercel AI SDK](https://sdk.vercel.ai/docs) to convert the returned result into a streaming response.
```ts
import { OpenAIStream, StreamingTextResponse } from 'ai';
export const createChatCompletion = async ({ payload, openai }: CreateChatCompletionOptions) => {
const { messages, ...params } = payload;
const formatMessages = messages.map((m) => ({
content: m.content,
name: m.name,
role: m.role,
}));
const response = await openai.chat.completions.create(
{
messages: formatMessages,
...params,
stream: true,
},
{ headers: { Accept: '*/*' } },
);
const stream = OpenAIStream(response);
return new StreamingTextResponse(stream);
};
```
## Frontend Implementation
### Frontend Integration
In the `src/services/chatModel.ts` file, we define the `fetchChatModel` method, which first preprocesses the payload data, then sends a POST request to the `/chat` endpoint on the backend, and returns the request result.
```ts
export const fetchChatModel = (
{ plugins: enabledPlugins, ...params }: Partial<OpenAIStreamPayload>,
options?: FetchChatModelOptions,
) => {
const payload = merge(
{
model: initialLobeAgentConfig.model,
stream: true,
...initialLobeAgentConfig.params,
},
params,
);
const filterFunctions: ChatCompletionFunctions[] = pluginSelectors.enabledSchema(enabledPlugins)(
usePluginStore.getState(),
);
const functions = filterFunctions.length === 0 ? undefined : filterFunctions;
return fetch(OPENAI_URLS.chat, {
body: JSON.stringify({ ...payload, functions }),
headers: createHeaderWithOpenAI({ 'Content-Type': 'application/json' }),
method: 'POST',
signal: options?.signal,
});
};
```
### Using Streaming to Get Results
In the `src/utils/fetch.ts` file, we define the `fetchSSE` method, which uses a streaming approach to retrieve data. When a new data chunk is read, it calls the `onMessageHandle` callback function to process the data chunk, achieving a typewriter-like output effect.
```ts
export const fetchSSE = async (fetchFn: () => Promise<Response>, options: FetchSSEOptions = {}) => {
const response = await fetchFn();
if (!response.ok) {
const chatMessageError = await getMessageError(response);
options.onErrorHandle?.(chatMessageError);
return;
}
const returnRes = response.clone();
const data = response.body;
if (!data) return;
const reader = data.getReader();
const decoder = new TextDecoder();
let done = false;
while (!done) {
const { value, done: doneReading } = await reader.read();
done = doneReading;
const chunkValue = decoder.decode(value);
options.onMessageHandle?.(chunkValue);
}
return returnRes;
};
```
The above is the core implementation of the LobeChat session API. With an understanding of these core codes, further expansion and optimization of LobeChat's AI functionality can be achieved.
+174
View File
@@ -0,0 +1,174 @@
# 会话 API 实现逻辑
LobeChat 的大模型 AI 实现主要依赖于 OpenAI 的 API,包括后端的核心会话 API 和前端的集成 API。接下来,我们将分别介绍后端和前端的实现思路和代码。
#### TOC
- [后端实现](#后端实现)
- [核心会话 API](#核心会话-api)
- [会话结果处理](#会话结果处理)
- [前端实现](#前端实现)
- [前端集成](#前端集成)
- [使用流式获取结果](#使用流式获取结果)
## 后端实现
以下代码中移除了鉴权、错误处理等逻辑,仅保留了核心的主要功能逻辑。
### 核心会话 API
`src/app/api/openai/chat/route.ts` 中,定义了一个处理 POST 请求的方法,主要负责从请求体中提取 `OpenAIChatStreamPayload` 类型的 payload,并使用 `createBizOpenAI` 函数根据请求和模型信息创建 OpenAI 实例。随后,该方法调用 `createChatCompletion` 来处理实际的会话,并返回响应结果。如果创建 OpenAI 实例过程中出现错误,则直接返回错误响应。
```ts
export const POST = async (req: Request) => {
const payload = (await req.json()) as OpenAIChatStreamPayload;
const openaiOrErrResponse = createBizOpenAI(req, payload.model);
// if resOrOpenAI is a Response, it means there is an error,just return it
if (openaiOrErrResponse instanceof Response) return openaiOrErrResponse;
return createChatCompletion({ openai: openaiOrErrResponse, payload });
};
```
### 会话结果处理
而在 `src/app/api/openai/chat/createChatCompletion.ts` 文件中,`createChatCompletion` 方法主要负责与 OpenAI API 进行交互,处理会话请求。它首先对 payload 中的消息进行预处理,然后通过 `openai.chat.completions.create` 方法发送 API 请求,并使用 `OpenAIStream` 将返回的响应转换为流式格式。如果在 API 调用过程中出现错误,方法将生成并处理相应的错误响应。
```ts
import { OpenAIStream, StreamingTextResponse } from 'ai';
export const createChatCompletion = async ({ payload, openai }: CreateChatCompletionOptions) => {
// 预处理消息
const { messages, ...params } = payload;
// 发送 API 请求
try {
const response = await openai.chat.completions.create(
{
messages,
...params,
stream: true,
} as unknown as OpenAI.ChatCompletionCreateParamsStreaming,
{ headers: { Accept: '*/*' } },
);
const stream = OpenAIStream(response);
return new StreamingTextResponse(stream);
} catch (error) {
// 检查错误是否为 OpenAI APIError
if (error instanceof OpenAI.APIError) {
let errorResult: any;
// 如果错误是 OpenAI APIError,那么会有一个 error 对象
if (error.error) {
errorResult = error.error;
} else if (error.cause) {
errorResult = error.cause;
}
// 如果没有其他请求错误,错误对象是一个类似 Response 的对象
else {
errorResult = { headers: error.headers, stack: error.stack, status: error.status };
}
console.error(errorResult);
// 返回错误响应
return createErrorResponse(ChatErrorType.OpenAIBizError, {
endpoint: openai.baseURL,
error: errorResult,
});
}
console.error(error);
return createErrorResponse(ChatErrorType.InternalServerError, {
endpoint: openai.baseURL,
error: JSON.stringify(error),
});
}
};
```
## 前端实现
### 前端集成
`src/services/chat.ts` 文件中,我们定义了 `ChatService` 类。这个类提供了一些方法来处理与 OpenAI 聊天 API 的交互。
`createAssistantMessage` 方法用于创建一个新的助手消息。它接收一个包含插件、消息和其他参数的对象,以及一个可选的 `FetchOptions` 对象。这个方法会合并默认的代理配置和传入的参数,预处理消息和工具,然后调用 `getChatCompletion` 方法获取聊天完成任务。
`getChatCompletion` 方法用于获取聊天完成任务。它接收一个 `OpenAIChatStreamPayload` 对象和一个可选的 `FetchOptions` 对象。这个方法会合并默认的代理配置和传入的参数,然后发送 POST 请求到 OpenAI 的聊天 API。
`runPluginApi` 方法用于运行插件 API 并获取结果。它接收一个 `PluginRequestPayload` 对象和一个可选的 `FetchOptions` 对象。这个方法会从工具存储中获取状态,通过插件标识符获取插件设置和清单,然后发送 POST 请求到插件的网关 URL。
`fetchPresetTaskResult` 方法用于获取预设任务的结果。它使用 `fetchAIFactory` 工厂函数创建一个新的函数,这个函数接收一个聊天完成任务的参数,并返回一个 Promise。当 Promise 解析时,返回的结果是聊天完成任务的结果。
`processMessages` 方法用于处理聊天消息。它接收一个聊天消息数组,一个可选的模型名称,和一个可选的工具数组。这个方法会处理消息内容,将输入的 `messages` 数组映射为 `OpenAIChatMessage` 类型的数组,如果存在启用的工具,将工具的系统角色添加到系统消息中。
```ts
class ChatService {
// 创建一个新的助手消息
createAssistantMessage(params: object, fetchOptions?: FetchOptions) {
// 实现细节...
}
// 获取聊天完成任务
getChatCompletion(payload: OpenAIChatStreamPayload, fetchOptions?: FetchOptions) {
// 实现细节...
}
// 运行插件 API 并获取结果
runPluginApi(payload: PluginRequestPayload, fetchOptions?: FetchOptions) {
// 实现细节...
}
// 获取预设任务的结果
fetchPresetTaskResult() {
// 实现细节...
}
// 处理聊天消息
processMessages(messages: ChatMessage[], modelName?: string, tools?: Tool[]) {
// 实现细节...
}
}
```
### 使用流式获取结果
`src/utils/fetch.ts` 文件中,我们定义了 `fetchSSE` 方法,该方法使用流式方法获取数据,当读取到新的数据块时,会调用 `onMessageHandle` 回调函数处理数据块,进而实现打字机输出效果。
```ts
export const fetchSSE = async (fetchFn: () => Promise<Response>, options: FetchSSEOptions = {}) => {
const response = await fetchFn();
// 如果不 ok 说明有请求错误
if (!response.ok) {
const chatMessageError = await getMessageError(response);
options.onErrorHandle?.(chatMessageError);
return;
}
const returnRes = response.clone();
const data = response.body;
if (!data) return;
let output = '';
const reader = data.getReader();
const decoder = new TextDecoder();
let done = false;
while (!done) {
const { value, done: doneReading } = await reader.read();
done = doneReading;
const chunkValue = decoder.decode(value, { stream: true });
output += chunkValue;
options.onMessageHandle?.(chunkValue);
}
await options?.onFinish?.(output);
return returnRes;
};
```
以上就是 LobeChat 会话 API 的核心实现。在理解了这些核心代码的基础上,便可以进一步扩展和优化 LobeChat 的 AI 功能。
@@ -0,0 +1,83 @@
# Code Style and Contribution Guidelines
Welcome to the Code Style and Contribution Guidelines for LobeChat. This guide will help you understand our code standards and contribution process, ensuring code consistency and smooth project progression.
## TOC
- [Code Style](#code-style)
- [ESLint](#eslint)
- [Prettier](#prettier)
- [remarklint](#remarklint)
- [stylelint](#stylelint)
- [Contribution Process](#contribution-process)
- [Gitmoji](#gitmoji)
- [Semantic Release](#semantic-release)
- [Commitlint](#commitlint)
- [How to Contribute](#how-to-contribute)
## Code Style
In LobeChat, we use the `@lobehub/lint` package to maintain a unified code style. This package incorporates configurations for `ESLint`, `Prettier`, `remarklint`, and `stylelint` to ensure that our JavaScript, Markdown, and CSS files adhere to the same coding standards.
### ESLint
We use ESLint to check for issues in our JavaScript code. You can find the `.eslintrc.js` file in the project's root directory, which contains our extensions and custom rules for the ESLint configuration of `@lobehub/lint`.
To ensure your code aligns with the project's standards, run ESLint before committing your code.
### Prettier
Prettier is responsible for code formatting to maintain consistency. Our Prettier configuration can be found in `.prettierrc.js`, imported from `@lobehub/lint`.
It's recommended to configure your editor to run Prettier automatically upon saving files or manually run it before committing.
### remarklint
For Markdown files, we use remarklint to ensure consistent document formatting. You can find the corresponding configuration file in the project.
### stylelint
We utilize stylelint to standardize the style of our CSS code. In the configuration file for stylelint, we have made some custom rule adjustments based on `@lobehub/lint` configuration.
Ensure that your style code passes stylelint checks before committing.
## Contribution Process
LobeChat follows the gitmoji and semantic release as our code submission and release process.
### Gitmoji
When committing code, please use gitmoji to label your commit messages. This helps other contributors quickly understand the content and purpose of your submission.
Gitmoji commit messages use specific emojis to represent the type or intent of the commit. Here's an example:
```
📝 Update README with contribution guidelines
- Added section about code style preferences
- Included instructions for running tests
- Corrected typos and improved formatting
```
In this example, the 📝 emoji represents a documentation update. The commit message clearly describes the changes and provides specific details.
### Semantic Release
We use semantic release to automate version control and release processes. Ensure that your commit messages adhere to the semantic release specifications so that when the code is merged into the main branch, the system can automatically create a new version and release it.
### Commitlint
To ensure consistency in commit messages, we use `commitlint` to check the format of commit messages. You can find the relevant rules in the `.commitlintrc.js` configuration file.
Before committing your code, ensure that your commit messages adhere to our standards.
### How to Contribute
1. Fork the project to your account.
2. Create a new branch for development.
3. After completing the development, ensure that your code passes the aforementioned code style checks.
4. Commit your changes and use appropriate gitmoji to label your commit message.
5. Create a Pull Request to the main branch of the original project.
6. Await code review and make necessary modifications based on feedback.
Thank you for following these guidelines, as they help us maintain the quality and consistency of the project. We look forward to your contributions!
@@ -0,0 +1,85 @@
# 代码风格与贡献指南
欢迎来到 LobeChat 的代码风格与贡献指南。本指南将帮助您理解我们的代码规范和贡献流程,确保代码的一致性和项目的顺利进行。
## TOC
- [代码风格](#代码风格)
- [ESLint](#eslint)
- [Prettier](#prettier)
- [remarklint](#remarklint)
- [stylelint](#stylelint)
- [贡献流程](#贡献流程)
- [Gitmoji](#gitmoji)
- [Semantic Release](#semantic-release)
- [Commitlint](#commitlint)
- [如何贡献](#如何贡献)
## 代码风格
在 LobeChat 中,我们使用 `@lobehub/lint` 程序包来统一代码风格。该程序包内置了 `ESLint``Prettier``remarklint``stylelint` 的配置,以确保我们的 JavaScript、Markdown 和 CSS 文件遵循相同的编码标准。
### ESLint
我们的项目使用 ESLint 来检查 JavaScript 代码中的问题。您可以在项目根目录下找到 `.eslintrc.js` 文件,其中包含了我们对 `@lobehub/lint` 的 ESLint 配置的扩展和自定义规则。
为了与 Next.js 框架兼容,我们在配置中添加了 `plugin:@next/next/recommended`。此外,我们禁用了一些规则,以适应我们项目的特定需求。
请在提交代码前运行 ESLint,以确保您的代码符合项目规范。
### Prettier
Prettier 负责代码格式化,以保证代码的一致性。您可以在 `.prettierrc.js` 中找到我们的 Prettier 配置,它是从 `@lobehub/lint` 导入的。
在保存文件时,建议您配置您的编辑器以自动运行 Prettier,或者在提交前手动运行它。
### remarklint
对于 Markdown 文件,我们使用 remarklint 来确保文档格式的统一。您可以在项目中找到相应的配置文件。
### stylelint
我们使用 stylelint 来规范 CSS 代码的风格。在 `stylelint` 的配置文件中,我们基于 `@lobehub/lint` 的配置进行了一些自定义规则的调整。
确保您的样式代码在提交前通过了 stylelint 的检查。
## 贡献流程
LobeChat 采用 gitmoji 和 semantic release 作为我们的代码提交和发布流程。
### Gitmoji
在提交代码时,请使用 gitmoji 来标注您的提交信息。这有助于其他贡献者快速理解您提交的内容和目的。
Gitmoji commit messages 使用特定的 emoji 来表示提交的类型或意图。以下是一个示例:
```
📝 Update README with contribution guidelines
- Added section about code style preferences
- Included instructions for running tests
- Corrected typos and improved formatting
```
在这个示例中,📝 emoji 代表了文档的更新。提交信息清晰地描述了更改的内容,提供了具体的细节。
### Semantic Release
我们使用 semantic release 来自动化版本控制和发布流程。请确保您的提交信息遵循 semantic release 的规范,这样当代码合并到主分支后,系统就可以自动创建新的版本并发布。
### Commitlint
为了确保提交信息的一致性,我们使用 `commitlint` 来检查提交信息格式。您可以在 `.commitlintrc.js` 配置文件中找到相关规则。
在您提交代码之前,请确保您的提交信息遵循我们的规范。
### 如何贡献
1. Fork 项目到您的账户。
2. 创建一个新的分支进行开发。
3. 开发完成后,确保您的代码通过了上述的代码风格检查。
4. 提交您的更改,并使用合适的 gitmoji 标注您的提交信息。
5. 创建一个 Pull Request 到原项目的主分支。
6. 等待代码审查,并根据反馈进行必要的修改。
感谢您遵循这些指导原则,它们有助于我们维护项目的质量和一致性。我们期待您的贡献!
@@ -0,0 +1,126 @@
# How to Develop a New Feature
LobeChat is built on the Next.js framework and uses TypeScript as the primary development language. When developing a new feature, we need to follow a certain development process to ensure the quality and stability of the code. The general process can be divided into the following five steps:
1. Routing: Define routes (`src/app`).
2. Data Structure: Define data structures (`src/types`).
3. Business Logic Implementation: Zustand store (`src/store`).
4. Page Display: Write static components/pages (`src/app/<new-page>/features/<new-feature>.tsx`).
5. Function Binding: Bind the store with page triggers (`const [state, function] = useNewStore(s => [s.state, s.function])`).
Taking the "Chat Messages" feature as an example, here are the brief steps to implement this feature:
#### TOC
- [1. Define Routes](#1-define-routes)
- [2. Define Data Structure](#2-define-data-structure)
- [3. Create Zustand Store](#3-create-zustand-store)
- [4. Create Page and Components](#4-create-page-and-components)
- [5. Function Binding](#5-function-binding)
## 1. Define Routes
In the `src/app` directory, we need to define a new route to host the "Chat Messages" page. Generally, we would create a new folder under `src/app`, for example, `chat`, and create a `page.tsx` file within this folder to export a React component as the main body of the page.
```tsx
// src/app/chat/page.tsx
import ChatPage from './features/chat';
export default ChatPage;
```
## 2. Define Data Structure
In the `src/types` directory, we need to define the data structure for "Chat Messages". For example, we create a `chat.ts` file and define the `ChatMessage` type within it:
```ts
// src/types/chat.ts
export type ChatMessage = {
id: string;
content: string;
timestamp: number;
sender: 'user' | 'bot';
};
```
## 3. Create Zustand Store
In the `src/store` directory, we need to create a new Zustand Store to manage the state of "Chat Messages". For example, we create a `chatStore.ts` file and define a Zustand Store within it:
```ts
// src/store/chatStore.ts
import create from 'zustand';
type ChatState = {
messages: ChatMessage[];
addMessage: (message: ChatMessage) => void;
};
export const useChatStore = create<ChatState>((set) => ({
messages: [],
addMessage: (message) => set((state) => ({ messages: [...state.messages, message] })),
}));
```
## 4. Create Page and Components
In `src/app/<new-page>/features/<new-feature>.tsx`, we need to create a new page or component to display "Chat Messages". In this file, we can use the Zustand Store created earlier and Ant Design components to build the UI:
```jsx
// src/features/chat/index.tsx
import { List, Typography } from 'antd';
import { useChatStore } from 'src/store/chatStore';
const ChatPage = () => {
const messages = useChatStore((state) => state.messages);
return (
<List
dataSource={messages}
renderItem={(message) => (
<List.Item>
<Typography.Text>{message.content}</Typography.Text>
</List.Item>
)}
/>
);
};
export default ChatPage;
```
## 5. Function Binding
In a page or component, we need to bind the Zustand Store's state and methods to the UI. In the example above, we have already bound the `messages` state to the `dataSource` property of the list. Now, we also need a method to add new messages. We can define this method in the Zustand Store and then use it in the page or component:
```jsx
import { Button } from 'antd';
const ChatPage = () => {
const messages = useChatStore((state) => state.messages);
const addMessage = useChatStore((state) => state.addMessage);
const handleSend = () => {
addMessage({ id: '1', content: 'Hello, world!', timestamp: Date.now(), sender: 'user' });
};
return (
<>
<List
dataSource={messages}
renderItem={(message) => (
<List.Item>
<Typography.Text>{message.content}</Typography.Text>
</List.Item>
)}
/>
<Button onClick={handleSend}>Send</Button>
</>
);
};
export default ChatPage;
```
The above is the step to implement the "chat message" feature in LobeChat. Of course, in the actual development of LobeChat, the business requirements and scenarios faced in real situations are far more complex than the above demo. Please develop according to the actual situation.
@@ -0,0 +1,126 @@
# 如何开发一个新功能:前端实现
LobeChat 基于 Next.js 框架构建,使用 TypeScript 作为主要开发语言。在开发新功能时,我们需要遵循一定的开发流程,以确保代码的质量和稳定性。大致的流程分为以下五步:
1. 路由:定义路由 (`src/app`)
2. 数据结构: 定义数据结构 ( `src/types` )
3. 业务功能实现: zustand store (`src/store`)
4. 页面展示:书写静态组件 / 页面 (`src/app/<new-page>/features/<new-feature>.tsx`)
5. 功能绑定:绑定 store 与页面的触发 (`const [state,function]= useNewStore(s=>[s.state,s.function])`)
我们以 "会话消息" 功能为例,以下是实现这个功能的简要步骤:
#### TOC
- [1. 定义路由](#1-定义路由)
- [2. 定义数据结构](#2-定义数据结构)
- [3. 创建 Zustand Store](#3-创建-zustand-store)
- [4. 创建页面与组件](#4-创建页面与组件)
- [5. 功能绑定](#5-功能绑定)
## 1. 定义路由
`src/app` 目录下,我们需要定义一个新的路由来承载 "会话消息" 页面。一般来说,我们会在 `src/app` 下创建一个新的文件夹,例如 `chat`,并且在这个文件夹中创建 `page.tsx`文件,在该文件中导出 React 组件作为页面的主体。
```tsx
// src/app/chat/page.tsx
import ChatPage from './features/chat';
export default ChatPage;
```
## 2. 定义数据结构
`src/types` 目录下,我们需要定义 "会话消息" 的数据结构。例如,我们创建一个 `chat.ts` 文件,并在其中定义 `ChatMessage` 类型:
```ts
// src/types/chat.ts
export type ChatMessage = {
id: string;
content: string;
timestamp: number;
sender: 'user' | 'bot';
};
```
## 3. 创建 Zustand Store
`src/store` 目录下,我们需要创建一个新的 Zustand Store 来管理 "会话消息" 的状态。例如,我们创建一个 `chatStore.ts` 文件,并在其中定义一个 Zustand Store
```ts
// src/store/chatStore.ts
import create from 'zustand';
type ChatState = {
messages: ChatMessage[];
addMessage: (message: ChatMessage) => void;
};
export const useChatStore = create<ChatState>((set) => ({
messages: [],
addMessage: (message) => set((state) => ({ messages: [...state.messages, message] })),
}));
```
## 4. 创建页面与组件
`src/app/<new-page>/features/<new-feature>.tsx` 中,我们需要创建一个新的页面或组件来显示 "会话消息"。在这个文件中,我们可以使用上面创建的 Zustand Store,以及 Ant Design 的组件来构建 UI
```jsx
// src/features/chat/index.tsx
import { List, Typography } from 'antd';
import { useChatStore } from 'src/store/chatStore';
const ChatPage = () => {
const messages = useChatStore((state) => state.messages);
return (
<List
dataSource={messages}
renderItem={(message) => (
<List.Item>
<Typography.Text>{message.content}</Typography.Text>
</List.Item>
)}
/>
);
};
export default ChatPage;
```
## 5. 功能绑定
在页面或组件中,我们需要将 Zustand Store 的状态和方法绑定到 UI 上。在上面的示例中,我们已经将 `messages` 状态绑定到了列表的 `dataSource` 属性上。现在,我们还需要一个方法来添加新的消息。我们可以在 Zustand Store 中定义这个方法,然后在页面或组件中使用它:
```jsx
import { Button } from 'antd';
const ChatPage = () => {
const messages = useChatStore((state) => state.messages);
const addMessage = useChatStore((state) => state.addMessage);
const handleSend = () => {
addMessage({ id: '1', content: 'Hello, world!', timestamp: Date.now(), sender: 'user' });
};
return (
<>
<List
dataSource={messages}
renderItem={(message) => (
<List.Item>
<Typography.Text>{message.content}</Typography.Text>
</List.Item>
)}
/>
<Button onClick={handleSend}>Send</Button>
</>
);
};
export default ChatPage;
```
以上就是在 LobeChat 中实现 "会话消息" 功能的步骤。当然,在 LobeChat 的实际开发中,真实场景所面临的业务诉求和场景远比上述 demo 复杂,请根据实际情况进行开发。
+713
View File
@@ -0,0 +1,713 @@
# Complete Guide to LobeChat Feature Development
This document aims to guide developers on how to develop a complete feature requirement in LobeChat.
We will use the implementation of sessionGroup as an example: [✨ feat: add session group manager](https://github.com/lobehub/lobe-chat/pull/1055), and explain the complete implementation process through the following six main sections:
1. Data Model / Database Definition
2. Service Implementation / Model Implementation
3. Frontend Data Flow Store Implementation
4. UI Implementation and Action Binding
5. Data Migration
6. Data Import and Export
## 1. Database Section
To implement the Session Group feature, it is necessary to define the relevant data model and indexes at the database level.
Define a new sessionGroup table in 3 steps:
### 1. Establish Data Model Schema
Define the data model of `DB_SessionGroup` in `src/database/schema/sessionGroup.ts`:
```typescript
import { z } from 'zod';
export const DB_SessionGroupSchema = z.object({
name: z.string(),
sort: z.number().optional(),
});
export type DB_SessionGroup = z.infer<typeof DB_SessionGroupSchema>;
```
### 2. Create Database Indexes
Since a new table needs to be added, an index needs to be added to the database schema for the `sessionGroup` table.
Add `dbSchemaV4` in `src/database/core/schema.ts`:
```diff
// ... previous implementations
// ************************************** //
// ******* Version 3 - 2023-12-06 ******* //
// ************************************** //
// - Added `plugin` table
export const dbSchemaV3 = {
...dbSchemaV2,
plugins:
'&identifier, type, manifest.type, manifest.meta.title, manifest.meta.description, manifest.meta.author, createdAt, updatedAt',
};
+ // ************************************** //
+ // ******* Version 4 - 2024-01-21 ******* //
+ // ************************************** //
+ // - Added `sessionGroup` table
+ export const dbSchemaV4 = {
+ ...dbSchemaV3,
+ sessionGroups: '&id, name, sort, createdAt, updatedAt',
+ sessions: '&id, type, group, pinned, meta.title, meta.description, meta.tags, createdAt, updatedAt',
};
```
> \[!Note]
>
> In addition to `sessionGroups`, the definition of `sessions` has also been modified here due to data migration. However, as this section only focuses on schema definition and does not delve into the implementation of data migration, please refer to section five for details.
> \[!Important]
>
> If you are unfamiliar with the need to create indexes here and the syntax of schema definition, you may need to familiarize yourself with the basics of Dexie.js. You can refer to the [📘 Local Database](./Local-Database.zh-CN) section for relevant information.
### 3. Add the sessionGroups Table to the Local DB
Extend the local database class to include the new `sessionGroups` table:
```diff
import { dbSchemaV1, dbSchemaV2, dbSchemaV3, dbSchemaV4 } from './schemas';
interface LobeDBSchemaMap {
files: DB_File;
messages: DB_Message;
plugins: DB_Plugin;
+ sessionGroups: DB_SessionGroup;
sessions: DB_Session;
topics: DB_Topic;
}
// Define a local DB
export class LocalDB extends Dexie {
public files: LobeDBTable<'files'>;
public sessions: LobeDBTable<'sessions'>;
public messages: LobeDBTable<'messages'>;
public topics: LobeDBTable<'topics'>;
public plugins: LobeDBTable<'plugins'>;
+ public sessionGroups: LobeDBTable<'sessionGroups'>;
constructor() {
super(LOBE_CHAT_LOCAL_DB_NAME);
this.version(1).stores(dbSchemaV1);
this.version(2).stores(dbSchemaV2);
this.version(3).stores(dbSchemaV3);
+ this.version(4).stores(dbSchemaV4);
this.files = this.table('files');
this.sessions = this.table('sessions');
this.messages = this.table('messages');
this.topics = this.table('topics');
this.plugins = this.table('plugins');
+ this.sessionGroups = this.table('sessionGroups');
}
}
```
As a result, you can now view the `sessionGroups` table in the `LOBE_CHAT_DB` in `Application` -> `Storage` -> `IndexedDB`.
![](https://github.com/lobehub/lobe-chat/assets/28616219/aea50f66-4060-4a32-88c8-b3c672d05be8)
## 2. Model and Service Section
### Define Model
When building the LobeChat application, the Model is responsible for interacting with the database. It defines how to read, insert, update, and delete data from the database, as well as defining specific business logic.
In `src/database/model/sessionGroup.ts`, the `SessionGroupModel` is defined as follows:
```typescript
import { BaseModel } from '@/database/client/core';
import { DB_SessionGroup, DB_SessionGroupSchema } from '@/database/client/schemas/sessionGroup';
import { nanoid } from '@/utils/uuid';
class _SessionGroupModel extends BaseModel {
constructor() {
super('sessions', DB_SessionGroupSchema);
}
async create(name: string, sort?: number, id = nanoid()) {
return this._add({ name, sort }, id);
}
// ... Implementation of other CRUD methods
}
export const SessionGroupModel = new _SessionGroupModel();
```
### Service Implementation
In LobeChat, the Service layer is mainly responsible for communicating with the backend service, encapsulating business logic, and providing data to other layers in the frontend. `SessionService` is a service class specifically handling business logic related to sessions. It encapsulates operations such as creating sessions, querying sessions, and updating sessions.
To maintain code maintainability and extensibility, we place the logic related to session grouping in the `SessionService`. This helps to keep the business logic of the session domain cohesive. When business requirements increase or change, it becomes easier to modify and extend within this domain.
`SessionService` implements session group-related request logic by calling methods from `SessionGroupModel`. The following is the implementation of Session Group-related request logic in `sessionService`:
```typescript
class SessionService {
// ... Omitted session business logic
// ************************************** //
// *********** SessionGroup *********** //
// ************************************** //
async createSessionGroup(name: string, sort?: number) {
const item = await SessionGroupModel.create(name, sort);
if (!item) {
throw new Error('session group create Error');
}
return item.id;
}
// ... Other SessionGroup related implementations
}
```
## 3. Store Action Section
In the LobeChat application, the Store module is used to manage the frontend state of the application. The Actions within it are functions that trigger state updates, usually by calling methods in the service layer to perform actual data processing operations and then updating the state in the Store. We use `zustand` as the underlying dependency for the Store module. For a detailed practical introduction to state management, you can refer to [📘 Best Practices for State Management](../State-Management/State-Management-Intro.zh-CN.md).
### sessionGroup CRUD
CRUD operations for session groups are the core behaviors for managing session group data. In `src/store/session/slice/sessionGroup`, we will implement the state logic related to session groups, including adding, deleting, updating session groups, and their sorting.
The following are the methods of the `SessionGroupAction` interface that need to be implemented in the `action.ts` file:
```ts
export interface SessionGroupAction {
// Add session group
addSessionGroup: (name: string) => Promise<string>;
// Remove session group
removeSessionGroup: (id: string) => Promise<void>;
// Update session group ID for a session
updateSessionGroupId: (sessionId: string, groupId: string) => Promise<void>;
// Update session group name
updateSessionGroupName: (id: string, name: string) => Promise<void>;
// Update session group sorting
updateSessionGroupSort: (items: SessionGroupItem[]) => Promise<void>;
}
```
Taking the `addSessionGroup` method as an example, we first call the `createSessionGroup` method of `sessionService` to create a new session group, and then use the `refreshSessions` method to refresh the sessions state:
```ts
export const createSessionGroupSlice: StateCreator<
SessionStore,
[['zustand/devtools', never]],
[],
SessionGroupAction
> = (set, get) => ({
// Implement the logic for adding a session group
addSessionGroup: async (name) => {
// Call the createSessionGroup method in the service layer and pass in the session group name
const id = await sessionService.createSessionGroup(name);
// Call the get method to get the current Store state and execute the refreshSessions method to refresh the session data
await get().refreshSessions();
// Return the ID of the newly created session group
return id;
},
// ... Other action implementations
});
```
With the above implementation, we can ensure that after adding a new session group, the application's state will be updated in a timely manner, and the relevant components will receive the latest state and re-render. This approach improves the predictability and maintainability of the data flow, while also simplifying communication between components.
### Sessions Group Logic Refactoring
This requirement involves upgrading the Sessions feature to transform it from a single list to three different groups: `pinnedSessions` (pinned list), `customSessionGroups` (custom groups), and `defaultSessions` (default list).
To handle these groups, we need to refactor the implementation logic of `useFetchSessions`. Here are the key changes:
1. Use the `sessionService.getGroupedSessions` method to call the backend API and retrieve the grouped session data.
2. Save the retrieved data into three different state fields: `pinnedSessions`, `customSessionGroups`, and `defaultSessions`.
#### `useFetchSessions` Method
This method is defined in `createSessionSlice` as follows:
```typescript
export const createSessionSlice: StateCreator<
SessionStore,
[['zustand/devtools', never]],
[],
SessionAction
> = (set, get) => ({
// ... other methods
useFetchSessions: () =>
useSWR<ChatSessionList>(FETCH_SESSIONS_KEY, sessionService.getGroupedSessions, {
onSuccess: (data) => {
set(
{
customSessionGroups: data.customGroup,
defaultSessions: data.default,
isSessionsFirstFetchFinished: true,
pinnedSessions: data.pinned,
sessions: data.all,
},
false,
n('useFetchSessions/onSuccess', data),
);
},
}),
});
```
After successfully retrieving the data, we use the `set` method to update the `customSessionGroups`, `defaultSessions`, `pinnedSessions`, and `sessions` states. This ensures that the states are synchronized with the latest session data.
#### `sessionService.getGroupedSessions` Method
The `sessionService.getGroupedSessions` method is responsible for calling the backend API `SessionModel.queryWithGroups()`.
```typescript
class SessionService {
// ... other SessionGroup related implementations
async getGroupedSessions(): Promise<ChatSessionList> {
return SessionModel.queryWithGroups();
}
}
```
#### `SessionModel.queryWithGroups` Method
This method is the core method called by `sessionService.getGroupedSessions`, and it is responsible for querying and organizing session data. The code is as follows:
```typescript
class _SessionModel extends BaseModel {
// ... other methods
/**
* Query session data and categorize sessions based on groups.
* @returns {Promise<ChatSessionList>} An object containing all sessions and categorized session lists.
*/
async queryWithGroups(): Promise<ChatSessionList> {
// Query session group data
const groups = await SessionGroupModel.query();
// Query custom session groups based on session group IDs
const customGroups = await this.queryByGroupIds(groups.map((item) => item.id));
// Query default session list
const defaultItems = await this.querySessionsByGroupId(SessionDefaultGroup.Default);
// Query pinned sessions
const pinnedItems = await this.getPinnedSessions();
// Query all sessions
const all = await this.query();
// Combine and return all sessions and their group information
return {
all, // Array containing all sessions
customGroup: groups.map((group) => ({ ...group, children: customGroups[group.id] })), // Custom groups
default: defaultItems, // Default session list
pinned: pinnedItems, // Pinned session list
};
}
}
```
The `queryWithGroups` method first queries all session groups, then based on the IDs of these groups, it queries custom session groups, as well as default and pinned sessions. Finally, it returns an object containing all sessions and categorized session lists.
### Adjusting sessions selectors
Due to changes in the logic of grouping within sessions, we need to adjust the logic of the `sessions` selectors to ensure they can correctly handle the new data structure.
Original selectors:
```ts
// Default group
const defaultSessions = (s: SessionStore): LobeSessions => s.sessions;
// Pinned group
const pinnedSessionList = (s: SessionStore) =>
defaultSessions(s).filter((s) => s.group === SessionGroupDefaultKeys.Pinned);
// Unpinned group
const unpinnedSessionList = (s: SessionStore) =>
defaultSessions(s).filter((s) => s.group === SessionGroupDefaultKeys.Default);
```
Revised:
```ts
const defaultSessions = (s: SessionStore): LobeSessions => s.defaultSessions;
const pinnedSessions = (s: SessionStore): LobeSessions => s.pinnedSessions;
const customSessionGroups = (s: SessionStore): CustomSessionGroup[] => s.customSessionGroups;
```
Since all data retrieval in the UI is implemented using syntax like `useSessionStore(sessionSelectors.defaultSessions)`, we only need to modify the selector implementation of `defaultSessions` to complete the data structure change. The data retrieval code in the UI layer does not need to be changed at all, which can greatly reduce the cost and risk of refactoring.
> !\[Important]
>
> If you are not familiar with the concept and functionality of selectors, you can refer to the section [📘 Data Storage and Retrieval Module](./State-Management-Selectors.en-US) for relevant information.
## IV. UI Section
Bind Store Action in the UI component to implement interactive logic, for example `CreateGroupModal`:
```tsx
const CreateGroupModal = () => {
// ... Other logic
const [updateSessionGroup, addCustomGroup] = useSessionStore((s) => [
s.updateSessionGroupId,
s.addSessionGroup,
]);
return (
<Modal
onOk={async () => {
// ... Other logic
const groupId = await addCustomGroup(name);
await updateSessionGroup(sessionId, groupId);
}}
>
{/* ... */}
</Modal>
);
};
```
## 5. Data Migration
In the process of software development, data migration is an inevitable issue, especially when the existing data structure cannot meet the new business requirements. For this iteration of SessionGroup, we need to handle the migration of the `group` field in the `session`, which is a typical data migration case.
### Issues with the Old Data Structure
In the old data structure, the `group` field was used to mark whether the session was "pinned" or belonged to a "default" group. However, when support for multiple session groups is needed, the original data structure becomes inflexible.
For example:
```
before pin: group = abc
after pin: group = pinned
after unpin: group = default
```
From the above example, it can be seen that once a session is unpinned from the "pinned" state, the `group` field cannot be restored to its original `abc` value. This is because we do not have a separate field to maintain the pinned state. Therefore, we have introduced a new field `pinned` to indicate whether the session is pinned, while the `group` field will be used solely to identify the session group.
### Migration Strategy
The core logic of this migration is as follows:
- When the user's `group` field is `pinned`, set their `pinned` field to `true`, and set the group to `default`.
However, data migration in LobeChat typically involves two parts: **configuration file migration** and **database migration**. Therefore, the above logic will need to be implemented separately in these two areas.
#### Configuration File Migration
For configuration file migration, we recommend performing it before database migration, as configuration file migration is usually easier to test and validate. LobeChat's file migration configuration is located in the `src/migrations/index.ts` file, which defines the various versions of configuration file migration and their corresponding migration scripts.
```diff
// Current latest version number
- export const CURRENT_CONFIG_VERSION = 2;
+ export const CURRENT_CONFIG_VERSION = 3;
// Historical version upgrade module
const ConfigMigrations = [
+ /**
+ * 2024.01.22
+ * from `group = pinned` to `pinned:true`
+ */
+ MigrationV2ToV3,
/**
* 2023.11.27
* Migrate from single key database to dexie-based relational structure
*/
MigrationV1ToV2,
/**
* 2023.07.11
* just the first version, Nothing to do
*/
MigrationV0ToV1,
];
```
The logic for this configuration file migration is defined in `src/migrations/FromV2ToV3/index.ts`, simplified as follows:
```ts
export class MigrationV2ToV3 implements Migration {
// Specify the version from which to upgrade
version = 2;
migrate(data: MigrationData<V2ConfigState>): MigrationData<V3ConfigState> {
const { sessions } = data.state;
return {
...data,
state: {
...data.state,
sessions: sessions.map((s) => this.migrateSession(s)),
},
};
}
migrateSession = (session: V2Session): V3Session => {
return {
...session,
group: 'default',
pinned: session.group === 'pinned',
};
};
}
```
It can be seen that the migration implementation is very simple. However, it is important to ensure the correctness of the migration, so corresponding test cases need to be written in `src/migrations/FromV2ToV3/migrations.test.ts`:
```ts
import { MigrationData, VersionController } from '@/migrations/VersionController';
import { MigrationV1ToV2 } from '../FromV1ToV2';
import inputV1Data from '../FromV1ToV2/fixtures/input-v1-session.json';
import inputV2Data from './fixtures/input-v2-session.json';
import outputV3DataFromV1 from './fixtures/output-v3-from-v1.json';
import outputV3Data from './fixtures/output-v3.json';
import { MigrationV2ToV3 } from './index';
describe('MigrationV2ToV3', () => {
let migrations;
let versionController: VersionController<any>;
beforeEach(() => {
migrations = [MigrationV2ToV3];
versionController = new VersionController(migrations, 3);
});
it('should migrate data correctly through multiple versions', () => {
const data: MigrationData = inputV2Data;
const migratedData = versionController.migrate(data);
expect(migratedData.version).toEqual(outputV3Data.version);
expect(migratedData.state.sessions).toEqual(outputV3Data.state.sessions);
expect(migratedData.state.topics).toEqual(outputV3Data.state.topics);
expect(migratedData.state.messages).toEqual(outputV3Data.state.messages);
});
it('should work correct from v1 to v3', () => {
const data: MigrationData = inputV1Data;
versionController = new VersionController([MigrationV2ToV3, MigrationV1ToV2], 3);
const migratedData = versionController.migrate(data);
expect(migratedData.version).toEqual(outputV3DataFromV1.version);
expect(migratedData.state.sessions).toEqual(outputV3DataFromV1.state.sessions);
expect(migratedData.state.topics).toEqual(outputV3DataFromV1.state.topics);
expect(migratedData.state.messages).toEqual(outputV3DataFromV1.state.messages);
});
});
```
```markdown
```
Unit tests require the use of `fixtures` to fix the test data. The test cases include verification logic for two parts: 1) the correctness of a single migration (v2 -> v3) and 2) the correctness of a complete migration (v1 -> v3).
> \[!Important]
>
> The version number in the configuration file may not match the database version number, as database version updates do not always involve changes to the data structure (such as adding tables or fields), while configuration file version updates usually involve data migration.
````
#### Database Migration
Database migration needs to be implemented in the `LocalDB` class, which is defined in the `src/database/core/db.ts` file. The migration process involves adding a new `pinned` field for each record in the `sessions` table and resetting the `group` field:
```diff
export class LocalDB extends Dexie {
public files: LobeDBTable<'files'>;
public sessions: LobeDBTable<'sessions'>;
public messages: LobeDBTable<'messages'>;
public topics: LobeDBTable<'topics'>;
public plugins: LobeDBTable<'plugins'>;
public sessionGroups: LobeDBTable<'sessionGroups'>;
constructor() {
super(LOBE_CHAT_LOCAL_DB_NAME);
this.version(1).stores(dbSchemaV1);
this.version(2).stores(dbSchemaV2);
this.version(3).stores(dbSchemaV3);
this.version(4)
.stores(dbSchemaV4)
+ .upgrade((trans) => this.upgradeToV4(trans));
this.files = this.table('files');
this.sessions = this.table('sessions');
this.messages = this.table('messages');
this.topics = this.table('topics');
this.plugins = this.table('plugins');
this.sessionGroups = this.table('sessionGroups');
}
+ /**
+ * 2024.01.22
+ *
+ * DB V3 to V4
+ * from `group = pinned` to `pinned:true`
+ */
+ upgradeToV4 = async (trans: Transaction) => {
+ const sessions = trans.table('sessions');
+ await sessions.toCollection().modify((session) => {
+ // translate boolean to number
+ session.pinned = session.group === 'pinned' ? 1 : 0;
session.group = 'default';
});
+ };
}
````
This is our data migration strategy. When performing the migration, it is essential to ensure the correctness of the migration script and validate the migration results through thorough testing.
## VI. Data Import and Export
In LobeChat, the data import and export feature is designed to ensure that users can migrate their data between different devices. This includes session, topic, message, and settings data. In the implementation of the Session Group feature, we also need to handle data import and export to ensure that the complete exported data can be restored exactly the same on other devices.
The core implementation of data import and export is in the `ConfigService` in `src/service/config.ts`, with key methods as follows:
| Method Name | Description |
| --------------------- | -------------------------- |
| `importConfigState` | Import configuration data |
| `exportAgents` | Export all agent data |
| `exportSessions` | Export all session data |
| `exportSingleSession` | Export single session data |
| `exportSingleAgent` | Export single agent data |
| `exportSettings` | Export settings data |
| `exportAll` | Export all data |
### Data Export
In LobeChat, when a user chooses to export data, the current session, topic, message, and settings data are packaged into a JSON file and provided for download. The standard structure of this JSON file is as follows:
```json
{
"exportType": "sessions",
"state": {
"sessions": [],
"topics": [],
"messages": []
},
"version": 3
}
```
Where:
- `exportType`: Identifies the type of data being exported, currently including `sessions`, `agent`, `settings`, and `all`.
- `state`: Stores the actual data, with different data types for different `exportType`.
- `version`: Indicates the data version.
In the implementation of the Session Group feature, we need to add `sessionGroups` data to the `state` field. This way, when users export data, their Session Group data will also be included.
For example, when exporting sessions, the relevant implementation code modification is as follows:
```diff
class ConfigService {
// ... Other code omitted
exportSessions = async () => {
const sessions = await sessionService.getAllSessions();
+ const sessionGroups = await sessionService.getSessionGroups();
const messages = await messageService.getAllMessages();
const topics = await topicService.getAllTopics();
- const config = createConfigFile('sessions', { messages, sessions, topics });
+ const config = createConfigFile('sessions', { messages, sessionGroups, sessions, topics });
exportConfigFile(config, 'sessions');
};
}
```
### Data Import
The data import functionality is implemented through `ConfigService.importConfigState`. When users choose to import data, they need to provide a JSON file that conforms to the above structure specification. The `importConfigState` method accepts the data of the configuration file and imports it into the application.
In the implementation of the Session Group feature, we need to handle the `sessionGroups` data during the data import process. This way, when users import data, their Session Group data will also be imported correctly.
The following is the modified code for the import implementation in `importConfigState`:
```diff
class ConfigService {
// ... Other code omitted
+ importSessionGroups = async (sessionGroups: SessionGroupItem[]) => {
+ return sessionService.batchCreateSessionGroups(sessionGroups);
+ };
importConfigState = async (config: ConfigFile): Promise<ImportResults | undefined> => {
switch (config.exportType) {
case 'settings': {
await this.importSettings(config.state.settings);
break;
}
case 'agents': {
+ const sessionGroups = await this.importSessionGroups(config.state.sessionGroups);
const data = await this.importSessions(config.state.sessions);
return {
+ sessionGroups: this.mapImportResult(sessionGroups),
sessions: this.mapImportResult(data),
};
}
case 'all': {
await this.importSettings(config.state.settings);
+ const sessionGroups = await this.importSessionGroups(config.state.sessionGroups);
const [sessions, messages, topics] = await Promise.all([
this.importSessions(config.state.sessions),
this.importMessages(config.state.messages),
this.importTopics(config.state.topics),
]);
return {
messages: this.mapImportResult(messages),
+ sessionGroups: this.mapImportResult(sessionGroups),
sessions: this.mapImportResult(sessions),
topics: this.mapImportResult(topics),
};
}
case 'sessions': {
+ const sessionGroups = await this.importSessionGroups(config.state.sessionGroups);
const [sessions, messages, topics] = await Promise.all([
this.importSessions(config.state.sessions),
this.importMessages(config.state.messages),
this.importTopics(config.state.topics),
]);
return {
messages: this.mapImportResult(messages),
+ sessionGroups: this.mapImportResult(sessionGroups),
sessions: this.mapImportResult(sessions),
topics: this.mapImportResult(topics),
};
}
}
};
}
```
One key point of the above modification is to import sessionGroup first, because if sessions are imported first and the corresponding SessionGroup Id is not found in the current database, the group of this session will default to be modified to the default value. This will prevent the correct association of the sessionGroup's ID with the session.
This is the implementation of the LobeChat Session Group feature in the data import and export process. This approach ensures that users' Session Group data is correctly handled during the import and export process.
## Summary
The above is the complete implementation process of the LobeChat Session Group feature. Developers can refer to this document for the development and testing of related functionalities.
@@ -0,0 +1,707 @@
# LobeChat 功能开发完全指南
本文档旨在指导开发者了解如何在 LobeChat 中开发一块完整的功能需求。
我们将以 sessionGroup 的实现为示例:[✨ feat: add session group manager](https://github.com/lobehub/lobe-chat/pull/1055) , 通过以下六个主要部分来阐述完整的实现流程:
1. 数据模型 / 数据库定义
2. Service 实现 / Model 实现
3. 前端数据流 Store 实现
4. UI 实现与 action 绑定
5. 数据迁移
6. 数据导入导出
## 一、数据库部分
为了实现 Session Group 功能,首先需要在数据库层面定义相关的数据模型和索引。
定义一个新的 sessionGroup 表,分 3 步:
### 1. 建立数据模型 schema
`src/database/schema/sessionGroup.ts` 中定义 `DB_SessionGroup` 的数据模型:
```typescript
import { z } from 'zod';
export const DB_SessionGroupSchema = z.object({
name: z.string(),
sort: z.number().optional(),
});
export type DB_SessionGroup = z.infer<typeof DB_SessionGroupSchema>;
```
### 2. 创建数据库索引
由于要新增一个表,所以需要在在数据库 Schema 中,为 `sessionGroup` 表添加索引。
`src/database/core/schema.ts` 中添加 `dbSchemaV4`:
```diff
// ... 前面的一些实现
// ************************************** //
// ******* Version 3 - 2023-12-06 ******* //
// ************************************** //
// - Added `plugin` table
export const dbSchemaV3 = {
...dbSchemaV2,
plugins:
'&identifier, type, manifest.type, manifest.meta.title, manifest.meta.description, manifest.meta.author, createdAt, updatedAt',
};
+ // ************************************** //
+ // ******* Version 4 - 2024-01-21 ******* //
+ // ************************************** //
+ // - Added `sessionGroup` table
+ export const dbSchemaV4 = {
+ ...dbSchemaV3,
+ sessionGroups: '&id, name, sort, createdAt, updatedAt',
+ sessions: '&id, type, group, pinned, meta.title, meta.description, meta.tags, createdAt, updatedAt',
};
```
> \[!Note]
>
> 除了 `sessionGroups` 外,此处也修改了 `sessions` 的定义,原因是存在数据迁移的情况。但由于本节只关注 schema 定义,不展开数据迁移部分实现,详情可见第五节。
> \[!Important]
>
> 如果你不了解为何此处需要创建索引,以及不了解此处的 schema 的定义语法。你可能需要提前了解下 Dexie.js 相关的基础知识,可以查阅 [📘 本地数据库](./Local-Database.zh-CN) 部分了解相关内容。
### 3. 在本地 DB 中加入 sessionGroups 表
扩展本地数据库类以包含新的 `sessionGroups` 表:
```diff
import { dbSchemaV1, dbSchemaV2, dbSchemaV3, dbSchemaV4 } from './schemas';
interface LobeDBSchemaMap {
files: DB_File;
messages: DB_Message;
plugins: DB_Plugin;
+ sessionGroups: DB_SessionGroup;
sessions: DB_Session;
topics: DB_Topic;
}
// Define a local DB
export class LocalDB extends Dexie {
public files: LobeDBTable<'files'>;
public sessions: LobeDBTable<'sessions'>;
public messages: LobeDBTable<'messages'>;
public topics: LobeDBTable<'topics'>;
public plugins: LobeDBTable<'plugins'>;
+ public sessionGroups: LobeDBTable<'sessionGroups'>;
constructor() {
super(LOBE_CHAT_LOCAL_DB_NAME);
this.version(1).stores(dbSchemaV1);
this.version(2).stores(dbSchemaV2);
this.version(3).stores(dbSchemaV3);
+ this.version(4).stores(dbSchemaV4);
this.files = this.table('files');
this.sessions = this.table('sessions');
this.messages = this.table('messages');
this.topics = this.table('topics');
this.plugins = this.table('plugins');
+ this.sessionGroups = this.table('sessionGroups');
}
}
```
如此一来,你就可以通过在 `Application` -> `Storage` -> `IndexedDB` 中查看到 `LOBE_CHAT_DB` 里的 `sessionGroups` 表了。
![](https://github.com/lobehub/lobe-chat/assets/28616219/aea50f66-4060-4a32-88c8-b3c672d05be8)
## 二、Model 与 Service 部分
### 定义 Model
在构建 LobeChat 应用时,Model 负责与数据库的交互,它定义了如何读取、插入、更新和删除数据库的数据,定义具体的业务逻辑。
`src/database/model/sessionGroup.ts` 中定义 `SessionGroupModel`
```typescript
import { BaseModel } from '@/database/client/core';
import { DB_SessionGroup, DB_SessionGroupSchema } from '@/database/client/schemas/sessionGroup';
import { nanoid } from '@/utils/uuid';
class _SessionGroupModel extends BaseModel {
constructor() {
super('sessions', DB_SessionGroupSchema);
}
async create(name: string, sort?: number, id = nanoid()) {
return this._add({ name, sort }, id);
}
// ... 其他 CRUD 方法的实现
}
export const SessionGroupModel = new _SessionGroupModel();
```
### Service 实现
在 LobeChat 中,Service 层主要负责与后端服务进行通信,封装业务逻辑,并提供数据给前端的其他层使用。`SessionService` 是一个专门处理与会话(Session)相关业务逻辑的服务类,它封装了创建会话、查询会话、更新会话等操作。
为了保持代码的可维护性和可扩展性,我们将会话分组相关的服务逻辑放在 `SessionService` 中,这样可以使会话领域的业务逻辑保持内聚。当业务需求增加或变化时,我们可以更容易地在这个领域内进行修改和扩展。
`SessionService` 通过调用 `SessionGroupModel` 的方法来实现对会话分组的管理。 在 `sessionService` 中实现 Session Group 相关的请求逻辑:
```typescript
class SessionService {
// ... 省略 session 业务逻辑
// ************************************** //
// *********** SessionGroup *********** //
// ************************************** //
async createSessionGroup(name: string, sort?: number) {
const item = await SessionGroupModel.create(name, sort);
if (!item) {
throw new Error('session group create Error');
}
return item.id;
}
// ... 其他 SessionGroup 相关的实现
}
```
## 三、Store Action 部分
在 LobeChat 应用中,Store 是用于管理应用前端状态的模块。其中的 Action 是触发状态更新的函数,通常会调用服务层的方法来执行实际的数据处理操作,然后更新 Store 中的状态。我们采用了 `zustand` 作为 Store 模块的底层依赖,对于状态管理的详细实践介绍,可以查阅 [📘 状态管理最佳实践](../State-Management/State-Management-Intro.zh-CN.md)
### sessionGroup CRUD
会话组的 CRUD 操作是管理会话组数据的核心行为。在 `src/store/session/slice/sessionGroup` 中,我们将实现与会话组相关的状态逻辑,包括添加、删除、更新会话组及其排序。
以下是 `action.ts` 文件中需要实现的 `SessionGroupAction` 接口方法:
```ts
export interface SessionGroupAction {
// 增加会话组
addSessionGroup: (name: string) => Promise<string>;
// 删除会话组
removeSessionGroup: (id: string) => Promise<void>;
// 更新会话的会话组 ID
updateSessionGroupId: (sessionId: string, groupId: string) => Promise<void>;
// 更新会话组名称
updateSessionGroupName: (id: string, name: string) => Promise<void>;
// 更新会话组排序
updateSessionGroupSort: (items: SessionGroupItem[]) => Promise<void>;
}
```
`addSessionGroup` 方法为例,我们首先调用 `sessionService``createSessionGroup` 方法来创建新的会话组,然后使用 `refreshSessions` 方法来刷新 sessions 状态:
```ts
export const createSessionGroupSlice: StateCreator<
SessionStore,
[['zustand/devtools', never]],
[],
SessionGroupAction
> = (set, get) => ({
// 实现添加会话组的逻辑
addSessionGroup: async (name) => {
// 调用服务层的 createSessionGroup 方法并传入会话组名称
const id = await sessionService.createSessionGroup(name);
// 调用 get 方法获取当前的 Store 状态并执行 refreshSessions 方法刷新会话数据
await get().refreshSessions();
// 返回新创建的会话组 ID
return id;
},
// ... 其他 action 实现
});
```
通过以上的实现,我们可以确保在添加新的会话组后,应用的状态会及时更新,且相关的组件会收到最新的状态并重新渲染。这种方式提高了数据流的可预测性和可维护性,同时也简化了组件之间的通信。
### Sessions 分组逻辑改造
本次需求改造需要对 Sessions 进行升级,从原来的单一列表变成了三个不同的分组:`pinnedSessions`(置顶列表)、`customSessionGroups`(自定义分组)和 `defaultSessions`(默认列表)。
为了处理这些分组,我们需要改造 `useFetchSessions` 的实现逻辑。以下是关键的改动点:
1. 使用 `sessionService.getGroupedSessions` 方法负责调用后端接口来获取分组后的会话数据;
2. 将获取后的数据保存为三到不同的状态字段中:`pinnedSessions``customSessionGroups``defaultSessions`
#### `useFetchSessions` 方法
该方法在 `createSessionSlice` 中定义,如下所示:
```typescript
export const createSessionSlice: StateCreator<
SessionStore,
[['zustand/devtools', never]],
[],
SessionAction
> = (set, get) => ({
// ... 其他方法
useFetchSessions: () =>
useSWR<ChatSessionList>(FETCH_SESSIONS_KEY, sessionService.getGroupedSessions, {
onSuccess: (data) => {
set(
{
customSessionGroups: data.customGroup,
defaultSessions: data.default,
isSessionsFirstFetchFinished: true,
pinnedSessions: data.pinned,
sessions: data.all,
},
false,
n('useFetchSessions/onSuccess', data),
);
},
}),
});
```
在成功获取数据后,我们使用 `set` 方法来更新 `customSessionGroups``defaultSessions``pinnedSessions``sessions` 状态。这将保证状态与最新的会话数据同步。
#### getGroupedSessions
使用 `sessionService.getGroupedSessions` 方法负责调用后端接口 `SessionModel.queryWithGroups()`
```typescript
class SessionService {
// ... 其他 SessionGroup 相关的实现
async getGroupedSessions(): Promise<ChatSessionList> {
return SessionModel.queryWithGroups();
}
}
```
#### `SessionModel.queryWithGroups` 方法
此方法是 `sessionService.getGroupedSessions` 调用的核心方法,它负责查询和组织会话数据,代码如下:
```typescript
class _SessionModel extends BaseModel {
// ... 其他方法
/**
* 查询会话数据,并根据会话组将会话分类。
* @returns {Promise<ChatSessionList>} 返回一个对象,其中包含所有会话以及分为不同组的会话列表。
*/
async queryWithGroups(): Promise<ChatSessionList> {
// 查询会话组数据
const groups = await SessionGroupModel.query();
// 根据会话组ID查询自定义会话组
const customGroups = await this.queryByGroupIds(groups.map((item) => item.id));
// 查询默认会话列表
const defaultItems = await this.querySessionsByGroupId(SessionDefaultGroup.Default);
// 查询置顶的会话
const pinnedItems = await this.getPinnedSessions();
// 查询所有会话
const all = await this.query();
// 组合并返回所有会话及其分组信息
return {
all, // 包含所有会话的数组
customGroup: groups.map((group) => ({ ...group, children: customGroups[group.id] })), // 自定义分组
default: defaultItems, // 默认会话列表
pinned: pinnedItems, // 置顶会话列表
};
}
}
```
方法 `queryWithGroups` 首先查询所有会话组,然后基于这些组的 ID 查询自定义会话组,同时查询默认和固定的会话。最后,它返回一个包含所有会话和按组分类的会话列表对象。
### sessions selectors 调整
由于 sessions 中关于分组的逻辑发生了变化,因此我们需要调整 `sessions` 的 selectors 逻辑,以确保它们能够正确地处理新的数据结构。
原有的 selectors:
```ts
// 默认分组
const defaultSessions = (s: SessionStore): LobeSessions => s.sessions;
// 置顶分组
const pinnedSessionList = (s: SessionStore) =>
defaultSessions(s).filter((s) => s.group === SessionGroupDefaultKeys.Pinned);
// 未置顶分组
const unpinnedSessionList = (s: SessionStore) =>
defaultSessions(s).filter((s) => s.group === SessionGroupDefaultKeys.Default);
```
修改后:
```ts
const defaultSessions = (s: SessionStore): LobeSessions => s.defaultSessions;
const pinnedSessions = (s: SessionStore): LobeSessions => s.pinnedSessions;
const customSessionGroups = (s: SessionStore): CustomSessionGroup[] => s.customSessionGroups;
```
由于在 UI 中的取数全部是通过 `useSessionStore(sessionSelectors.defaultSessions)` 这样的写法实现的,因此我们只需要修改 `defaultSessions` 的选择器实现,即可完成数据结构的变更。 UI 层的取数代码完全不用变更,可以大大降低重构的成本和风险。
> !\[Important]
>
> 如果你对 Selectors 的概念和功能不太了解,可以查阅 [📘 数据存储取数模块](../State-Management/State-Management-Selectors.zh-CN.md) 部分了解相关内容。
## 四、UI 部分
在 UI 组件中绑定 Store Action 实现交互逻辑,例如 `CreateGroupModal`
```tsx
const CreateGroupModal = () => {
// ... 其他逻辑
const [updateSessionGroup, addCustomGroup] = useSessionStore((s) => [
s.updateSessionGroupId,
s.addSessionGroup,
]);
return (
<Modal
onOk={async () => {
// ... 其他逻辑
const groupId = await addCustomGroup(name);
await updateSessionGroup(sessionId, groupId);
}}
>
{/* ... */}
</Modal>
);
};
```
## 五、数据迁移
在软件开发过程中,数据迁移是一个不可避免的问题,尤其是当现有的数据结构无法满足新的业务需求时。对于本次 SessionGroup 的迭代,我们需要处理 `session``group` 字段的迁移,这是一个典型的数据迁移案例。
### 旧数据结构的问题
在旧的数据结构中,`group` 字段被用来标记会话是否为 `pinned`(置顶)或属于某个 `default`(默认)分组。但是当需要支持多个会话分组时,原有的数据结构就显得不够灵活了。
例如:
```
before pin: group = abc
after pin: group = pinned
after unpin: group = default
```
从上述示例中可以看出,一旦会话从置顶状态(`pinned`)取消置顶(`unpin`),`group` 字段将无法恢复为原来的 `abc` 值。这是因为我们没有一个独立的字段来维护置顶状态。因此,我们引入了一个新的字段 `pinned` 来表示会话是否被置顶,而 `group` 字段将仅用于标识会话分组。
### 迁移策略
本次迁移的核心逻辑只有一条:
- 当用户的 `group` 字段为 `pinned` 时,将其 `pinned` 字段置为 `true`,同时将 group 设为 `default`;
但 LobeChat 中的数据迁移通常涉及到 **配置文件迁移****数据库迁移** 两个部分。所以上述逻辑会需要分别在两块实现迁移。
#### 配置文件迁移
对于配置文件迁移,我们建议先于数据库迁移进行,因为配置文件迁移通常更容易进行测试和验证。LobeChat 的文件迁移配置位于 `src/migrations/index.ts` 文件中,其中定义了配置文件迁移的各个版本及对应的迁移脚本。
```diff
// 当前最新的版本号
- export const CURRENT_CONFIG_VERSION = 2;
+ export const CURRENT_CONFIG_VERSION = 3;
// 历史记录版本升级模块
const ConfigMigrations = [
+ /**
+ * 2024.01.22
+ * from `group = pinned` to `pinned:true`
+ */
+ MigrationV2ToV3,
/**
* 2023.11.27
* 从单 key 数据库转换为基于 dexie 的关系型结构
*/
MigrationV1ToV2,
/**
* 2023.07.11
* just the first version, Nothing to do
*/
MigrationV0ToV1,
];
```
本次的配置文件迁移逻辑定义在 `src/migrations/FromV2ToV3/index.ts` 中,简化如下:
```ts
export class MigrationV2ToV3 implements Migration {
// 指定从该版本开始向上升级
version = 2;
migrate(data: MigrationData<V2ConfigState>): MigrationData<V3ConfigState> {
const { sessions } = data.state;
return {
...data,
state: {
...data.state,
sessions: sessions.map((s) => this.migrateSession(s)),
},
};
}
migrateSession = (session: V2Session): V3Session => {
return {
...session,
group: 'default',
pinned: session.group === 'pinned',
};
};
}
```
可以看到迁移的实现非常简单。但重要的是,我们需要保证迁移的正确性,因此需要编写对应的测试用例 `src/migrations/FromV2ToV3/migrations.test.ts`
```ts
import { MigrationData, VersionController } from '@/migrations/VersionController';
import { MigrationV1ToV2 } from '../FromV1ToV2';
import inputV1Data from '../FromV1ToV2/fixtures/input-v1-session.json';
import inputV2Data from './fixtures/input-v2-session.json';
import outputV3DataFromV1 from './fixtures/output-v3-from-v1.json';
import outputV3Data from './fixtures/output-v3.json';
import { MigrationV2ToV3 } from './index';
describe('MigrationV2ToV3', () => {
let migrations;
let versionController: VersionController<any>;
beforeEach(() => {
migrations = [MigrationV2ToV3];
versionController = new VersionController(migrations, 3);
});
it('should migrate data correctly through multiple versions', () => {
const data: MigrationData = inputV2Data;
const migratedData = versionController.migrate(data);
expect(migratedData.version).toEqual(outputV3Data.version);
expect(migratedData.state.sessions).toEqual(outputV3Data.state.sessions);
expect(migratedData.state.topics).toEqual(outputV3Data.state.topics);
expect(migratedData.state.messages).toEqual(outputV3Data.state.messages);
});
it('should work correct from v1 to v3', () => {
const data: MigrationData = inputV1Data;
versionController = new VersionController([MigrationV2ToV3, MigrationV1ToV2], 3);
const migratedData = versionController.migrate(data);
expect(migratedData.version).toEqual(outputV3DataFromV1.version);
expect(migratedData.state.sessions).toEqual(outputV3DataFromV1.state.sessions);
expect(migratedData.state.topics).toEqual(outputV3DataFromV1.state.topics);
expect(migratedData.state.messages).toEqual(outputV3DataFromV1.state.messages);
});
});
```
单测需要使用 `fixtures` 来固定测试数据,测试用例包含了两个部分的验证逻辑: 1) 单次迁移(v2 -> v3)和 2 完整迁移(v1 -> v3)的正确性。
> \[!Important]
>
> 配置文件的版本号可能与数据库版本号不一致,因为数据库版本的更新不总是伴随数据结构的变化(如新增表或字段),而配置文件的版本更新则通常涉及到数据迁移。
#### 数据库迁移
数据库迁移则需要在 `LocalDB` 类中实施,该类定义在 `src/database/core/db.ts` 文件中。迁移过程涉及到为 `sessions` 表的每条记录添加新的 `pinned` 字段,并重置 `group` 字段:
```diff
export class LocalDB extends Dexie {
public files: LobeDBTable<'files'>;
public sessions: LobeDBTable<'sessions'>;
public messages: LobeDBTable<'messages'>;
public topics: LobeDBTable<'topics'>;
public plugins: LobeDBTable<'plugins'>;
public sessionGroups: LobeDBTable<'sessionGroups'>;
constructor() {
super(LOBE_CHAT_LOCAL_DB_NAME);
this.version(1).stores(dbSchemaV1);
this.version(2).stores(dbSchemaV2);
this.version(3).stores(dbSchemaV3);
this.version(4)
.stores(dbSchemaV4)
+ .upgrade((trans) => this.upgradeToV4(trans));
this.files = this.table('files');
this.sessions = this.table('sessions');
this.messages = this.table('messages');
this.topics = this.table('topics');
this.plugins = this.table('plugins');
this.sessionGroups = this.table('sessionGroups');
}
+ /**
+ * 2024.01.22
+ *
+ * DB V3 to V4
+ * from `group = pinned` to `pinned:true`
+ */
+ upgradeToV4 = async (trans: Transaction) => {
+ const sessions = trans.table('sessions');
+ await sessions.toCollection().modify((session) => {
+ // translate boolean to number
+ session.pinned = session.group === 'pinned' ? 1 : 0;
+ session.group = 'default';
+ });
+ };
}
```
以上就是我们的数据迁移策略。在进行迁移时,务必确保迁移脚本的正确性,并通过充分的测试验证迁移结果。
## 六、数据导入导出
在 LobeChat 中,数据导入导出功能是为了确保用户可以在不同设备之间迁移他们的数据。这包括会话、话题、消息和设置等数据。在本次的 Session Group 功能实现中,我们也需要对数据导入导出进行处理,以确保当完整导出的数据在其他设备上可以一模一样恢复。
数据导入导出的核心实现在 `src/service/config.ts``ConfigService` 中,其中的关键方法如下:
| 方法名称 | 描述 |
| --------------------- | ---------------- |
| `importConfigState` | 导入配置数据 |
| `exportAgents` | 导出所有助理数据 |
| `exportSessions` | 导出所有会话数据 |
| `exportSingleSession` | 导出单个会话数据 |
| `exportSingleAgent` | 导出单个助理数据 |
| `exportSettings` | 导出设置数据 |
| `exportAll` | 导出所有数据 |
### 数据导出
在 LobeChat 中,当用户选择导出数据时,会将当前的会话、话题、消息和设置等数据打包成一个 JSON 文件并提供给用户下载。这个 JSON 文件的标准结构如下:
```json
{
"exportType": "sessions",
"state": {
"sessions": [],
"topics": [],
"messages": []
},
"version": 3
}
```
其中:
- `exportType` 标识导出数据的类型,目前有 `sessions``agent``settings``all` 四种;
- `state` 存储实际的数据,不同 `exportType` 的数据类型也不同;
- `version` 标识数据的版本。
在 Session Group 功能实现中,我们需要在 `state` 字段中添加 `sessionGroups` 数据。这样,当用户导出数据时,他们的 Session Group 数据也会被包含在内。
以导出 sessions 为例,导出数据的相关实现代码修改如下:
```diff
class ConfigService {
// ... 省略其他
exportSessions = async () => {
const sessions = await sessionService.getAllSessions();
+ const sessionGroups = await sessionService.getSessionGroups();
const messages = await messageService.getAllMessages();
const topics = await topicService.getAllTopics();
- const config = createConfigFile('sessions', { messages, sessions, topics });
+ const config = createConfigFile('sessions', { messages, sessionGroups, sessions, topics });
exportConfigFile(config, 'sessions');
};
}
```
### 数据导入
数据导入的功能是通过 `ConfigService.importConfigState` 来实现的。当用户选择导入数据时,他们需要提供一个由 符合上述结构规范的 JSON 文件。`importConfigState` 方法接受配置文件的数据,并将其导入到应用中。
在 Session Group 功能实现中,我们需要在导入数据的过程中处理 `sessionGroups` 数据。这样,当用户导入数据时,他们的 Session Group 数据也会被正确地导入。
以下是 `importConfigState` 中导入实现的变更代码:
```diff
class ConfigService {
// ... 省略其他代码
+ importSessionGroups = async (sessionGroups: SessionGroupItem[]) => {
+ return sessionService.batchCreateSessionGroups(sessionGroups);
+ };
importConfigState = async (config: ConfigFile): Promise<ImportResults | undefined> => {
switch (config.exportType) {
case 'settings': {
await this.importSettings(config.state.settings);
break;
}
case 'agents': {
+ const sessionGroups = await this.importSessionGroups(config.state.sessionGroups);
const data = await this.importSessions(config.state.sessions);
return {
+ sessionGroups: this.mapImportResult(sessionGroups),
sessions: this.mapImportResult(data),
};
}
case 'all': {
await this.importSettings(config.state.settings);
+ const sessionGroups = await this.importSessionGroups(config.state.sessionGroups);
const [sessions, messages, topics] = await Promise.all([
this.importSessions(config.state.sessions),
this.importMessages(config.state.messages),
this.importTopics(config.state.topics),
]);
return {
messages: this.mapImportResult(messages),
+ sessionGroups: this.mapImportResult(sessionGroups),
sessions: this.mapImportResult(sessions),
topics: this.mapImportResult(topics),
};
}
case 'sessions': {
+ const sessionGroups = await this.importSessionGroups(config.state.sessionGroups);
const [sessions, messages, topics] = await Promise.all([
this.importSessions(config.state.sessions),
this.importMessages(config.state.messages),
this.importTopics(config.state.topics),
]);
return {
messages: this.mapImportResult(messages),
+ sessionGroups: this.mapImportResult(sessionGroups),
sessions: this.mapImportResult(sessions),
topics: this.mapImportResult(topics),
};
}
}
};
}
```
上述修改的一个要点是先进行 sessionGroup 的导入,因为如果先导入 session 时,如果没有在当前数据库中查到相应的 SessionGroup Id,那么这个 session 的 group 会兜底修改为默认值。这样就无法正确地将 sessionGroup 的 ID 与 session 进行关联。
以上就是 LobeChat Session Group 功能在数据导入导出部分的实现。通过这种方式,我们可以确保用户的 Session Group 数据在导入导出过程中能够被正确地处理。
## 总结
以上就是 LobeChat Session Group 功能的完整实现流程。开发者可以参考本文档进行相关功能的开发和测试。
+40
View File
@@ -0,0 +1,40 @@
# Directory Structure
The directory structure of LobeChat is as follows:
```bash
src
├── app # Main logic and state management related code for the application
├── components # Reusable UI components
├── config # Application configuration files, including client-side and server-side environment variables
├── const # Used to define constants, such as action types, route names, etc.
├── features # Function modules related to business functions, such as agent settings, plugin development pop-ups, etc.
├── hooks # Custom utility hooks reused throughout the application
├── layout # Application layout components, such as navigation bars, sidebars, etc.
├── locales # Internationalization language files
├── services # Encapsulated backend service interfaces, such as HTTP requests
├── store # Zustand store for state management
├── types # TypeScript type definition files
└── utils # Common utility functions
```
## app
In the `app` folder, we organize each route page according to the app router's [Route Groups](https://nextjs.org/docs/app/building-your-application/routing/route-groups) to separately handle the implementation of desktop and mobile code. Taking the file structure of the `welcome` page as an example:
```bash
welcome
├── (desktop) # Desktop implementation
│ ├── features # Desktop-specific features
│ ├── index.tsx # Main entry file for desktop
│ └── layout.desktop.tsx # Desktop layout component
├── (mobile) # Mobile implementation
│ ├── features # Mobile-specific features
│ ├── index.tsx # Main entry file for mobile
│ └── layout.mobile.tsx # Mobile layout component
├── features # This folder contains features code shared by both desktop and mobile, such as the Banner component
│ └── Banner
└── page.tsx # This is the main entry file for the page, used to load desktop or mobile code based on the device type
```
In this way, we can clearly distinguish and manage desktop and mobile code, while also easily reusing code required on both devices, thereby improving development efficiency and maintaining code cleanliness and maintainability.
@@ -0,0 +1,40 @@
# 目录架构
LobeChat 的文件夹目录架构如下:
```bash
src
├── app # 应用主要逻辑和状态管理相关的代码
├── components # 可复用的 UI 组件
├── config # 应用的配置文件,包含客户端环境变量与服务端环境变量
├── const # 用于定义常量,如 action 类型、路由名等
├── features # 与业务功能相关的功能模块,如 Agent 设置、插件开发弹窗等
├── hooks # 全应用复用自定义的工具 Hooks
├── layout # 应用的布局组件,如导航栏、侧边栏等
├── locales # 国际化的语言文件
├── services # 封装的后端服务接口,如 HTTP 请求
├── store # 用于状态管理的 zustand store
├── types # TypeScript 的类型定义文件
└── utils # 通用的工具函数
```
## app
`app` 文件夹中,我们将每个路由页面按照 app router 的 [Route Groups](https://nextjs.org/docs/app/building-your-application/routing/route-groups) 进行组织,以此来分别处理桌面端和移动端的代码实现。以 `welcome` 页面的文件结构为例:
```bash
welcome
├── (desktop) # 桌面端实现
│ ├── features # 桌面端特有的功能
│ ├── index.tsx # 桌面端的主入口文件
│ └── layout.desktop.tsx # 桌面端的布局组件
├── (mobile) # 移动端实现
│ ├── features # 移动端特有的功能
│ ├── index.tsx # 移动端的主入口文件
│ └── layout.mobile.tsx # 移动端的布局组件
├── features # 此文件夹包含双端共享的特性代码,如 Banner 组件
│ └── Banner
└── page.tsx # 此为页面的主入口文件,用于根据设备类型选择加载桌面端或移动端的代码
```
通过这种方式,我们可以清晰地区分和管理桌面端和移动端的代码,同时也能方便地复用在两种设备上都需要的代码,从而提高开发效率并保持代码的整洁和可维护性。
+43
View File
@@ -0,0 +1,43 @@
# Technical Development Getting Started Guide
Welcome to the LobeChat technical development getting started guide. LobeChat is an AI conversation application built on the Next.js framework, which integrates a series of technology stacks to achieve diverse functions and features. This guide will provide a detailed introduction to the main technical components of LobeChat and how to configure and use these technologies in your development environment.
#### TOC
- [Basic Technology Stack](#basic-technology-stack)
- [Folder Directory Structure](#folder-directory-structure)
## Basic Technology Stack
The core technology stack of LobeChat includes:
- **Framework**: We have chosen [Next.js](https://nextjs.org/), a powerful React framework that provides key features such as server-side rendering, routing framework, and Router Handler for our project.
- **Component Library**: We use [Ant Design (antd)](https://ant.design/) as the basic component library, and also introduce [lobe-ui](https://github.com/lobehub/lobe-ui) as our business component library.
- **State Management**: We have opted for [zustand](https://github.com/pmndrs/zustand), a lightweight and easy-to-use state management library.
- **Network Requests**: We use [swr](https://swr.vercel.app/), a React Hooks library for data fetching.
- **Routing**: For routing management, we directly use the solution provided by [Next.js](https://nextjs.org/) itself.
- **Internationalization**: We use [i18next](https://www.i18next.com/) to implement multi-language support for the application.
- **Styling**: We use [antd-style](https://github.com/ant-design/antd-style), a CSS-in-JS library that complements Ant Design.
- **Unit Testing**: We use [vitest](https://github.com/vitest-dev/vitest) for unit testing.
## Folder Directory Structure
The folder directory structure of LobeChat is as follows:
```bash
src
├── app # Main logic of the application and code related to state management
├── components # Reusable UI components
├── config # Application configuration files, including client-side environment variables and server-side environment variables
├── const # Used to define constants, such as action types, route names, etc.
├── features # Function modules related to business features, such as Agent settings, plugin development pop-ups, etc.
├── hooks # Custom utility hooks reused throughout the application
├── layout # Application layout components, such as navigation bars, sidebars, etc.
├── locales # Language files for internationalization
├── services # Encapsulated backend service interfaces, such as HTTP requests
├── store # Zustand store for state management
├── types # TypeScript type definition files
└── utils # Common utility functions
```
For a detailed introduction to the directory structure, please refer to: [Folder Directory Structure](Folder-Structure.en-US.md)
+108
View File
@@ -0,0 +1,108 @@
# 技术开发上手指南
欢迎来到 LobeChat 技术开发上手指南。LobeChat 是一款基于 Next.js 框架构建的 AI 会话应用,它汇集了一系列的技术栈,以实现多样化的功能和特性。本指南将详细介绍 LobeChat 的主要技术组成,以及如何在你的开发环境中配置和使用这些技术。
#### TOC
- [基础技术栈](#基础技术栈)
- [文件夹目录架构](#文件夹目录架构)
- [本地开发环境设置](#本地开发环境设置)
- [代码风格与贡献指南](#代码风格与贡献指南)
- [国际化实现指南](#国际化实现指南)
- [附录:资源与参考](#附录资源与参考)
## 基础技术栈
LobeChat 的核心技术栈如下:
- **框架**:我们选择了 [Next.js](https://nextjs.org/),这是一款强大的 React 框架,为我们的项目提供了服务端渲染、路由框架、Router Handler 等关键功能。
- **组件库**:我们使用了 [Ant Design (antd)](https://ant.design/) 作为基础组件库,同时引入了 [lobe-ui](https://github.com/lobehub/lobe-ui) 作为我们的业务组件库。
- **状态管理**:我们选用了 [zustand](https://github.com/pmndrs/zustand),一款轻量级且易于使用的状态管理库。
- **网络请求**:我们采用 [swr](https://swr.vercel.app/),这是一款用于数据获取的 React Hooks 库。
- **路由**:路由管理我们直接使用 [Next.js](https://nextjs.org/) 自身提供的解决方案。
- **国际化**:我们使用 [i18next](https://www.i18next.com/) 来实现应用的多语言支持。
- **样式**:我们使用 [antd-style](https://github.com/ant-design/antd-style),这是一款与 Ant Design 配套的 CSS-in-JS 库。
- **单元测试**:我们使用 [vitest](https://github.com/vitest-dev/vitest) 进行单元测试。
## 文件夹目录架构
LobeChat 的文件夹目录架构如下:
```bash
src
├── app # 应用主要逻辑和状态管理相关的代码
├── components # 可复用的 UI 组件
├── config # 应用的配置文件,包含客户端环境变量与服务端环境变量
├── const # 用于定义常量,如 action 类型、路由名等
├── features # 与业务功能相关的功能模块,如 Agent 设置、插件开发弹窗等
├── hooks # 全应用复用自定义的工具 Hooks
├── layout # 应用的布局组件,如导航栏、侧边栏等
├── locales # 国际化的语言文件
├── services # 封装的后端服务接口,如 HTTP 请求
├── store # 用于状态管理的 zustand store
├── types # TypeScript 的类型定义文件
└── utils # 通用的工具函数
```
有关目录架构的详细介绍,详见: [文件夹目录架构](Folder-Structure.zh-CN.md)
## 本地开发环境设置
本节将概述搭建开发环境并进行本地开发。 在开始之前,请确保你的本地环境中已安装 Node.js、Git 以及你选择的包管理器(Bun 或 PNPM)。
我们推荐使用 WebStorm 作为你的集成开发环境(IDE)。
1. **获取代码**:克隆 LobeChat 的代码库到本地:
```bash
git clone https://github.com/lobehub/lobe-chat.git
```
2. **安装依赖**:进入项目目录,并安装所需依赖:
```bash
cd lobe-chat
# 如果你使用 Bun
bun install
# 如果你使用 PNPM
pnpm install
```
3. **运行与调试**:启动本地开发服务器,开始你的开发之旅:
```bash
# 使用 Bun 启动开发服务器
bun run dev
# 访问 http://localhost:3010 查看应用
```
现在,你应该可以在浏览器中看到 LobeChat 的欢迎页面。详细的环境配置指南,请参考 [开发环境设置指南](Setup-Development.zh-CN.md)。
## 代码风格与贡献指南
在 LobeChat 项目中,我们十分重视代码的质量和一致性。为此,我们制定了一系列的代码风格规范和贡献流程,以确保每位开发者都能顺利地参与到项目中。以下是你作为开发者需要遵守的代码风格和贡献准则。
- **代码风格**:我们使用 `@lobehub/lint` 统一代码风格,包括 ESLint、Prettier、remarklint 和 stylelint 配置。请遵守我们的代码规范,以保持代码的一致性和可读性。
- **贡献流程**:我们采用 gitmoji 和 semantic release 作为代码提交和发布流程。请使用 gitmoji 标注您的提交信息,并确保遵循 semantic release 的规范,以便我们的自动化系统能够正确处理版本控制和发布。
所有的贡献都将经过代码审查。维护者可能会提出修改建议或要求。请积极响应审查意见,并及时做出调整,我们期待你的参与和贡献。
详细的代码风格和贡献指南,请参考 [代码风格与贡献指南](Contributing-Guidelines.zh-CN.md)。
## 国际化实现指南
LobeChat 采用 `i18next``lobe-i18n` 实现多语言支持,确保用户全球化体验。
国际化文件位于 `src/locales`,包含默认语言(中文)。 我们会通过 `lobe-i18n` 自动生成其他的语言 JSON 文件。
如果要添加新语种,需遵循特定步骤,详见 [新语种添加指南](../Internationalization/Add-New-Locale.zh-CN.md)。 我们鼓励你参与我们的国际化努力,共同为全球用户提供更好的服务。
详细的国际化实现指南指南,请参考 [国际化实现指南](../Internationalization/Internationalization-Implementation.zh-CN.md)。
## 附录:资源与参考
为了支持开发者更好地理解和使用 LobeChat 的技术栈,我们提供了一份详尽的资源与参考列表 —— [LobeChat 资源与参考](https://github.com/lobehub/lobe-chat/wiki/Resources.zh-CN) - 访问我们维护的资源列表,包括教程、文章和其他有用的链接。
我们鼓励开发者利用这些资源深入学习和提升技能,通过 [LobeChat GitHub Discussions](https://github.com/lobehub/lobe-chat/discussions) 或者 [Discord](https://discord.com/invite/AYFPHvv2jT) 加入社区讨论,提出问题或分享你的经验。
如果你有任何疑问,或者需要进一步的帮助,请不要犹豫,请通过上述渠道与我们联系。
+19
View File
@@ -0,0 +1,19 @@
# Resources and References
The design and development of LobeChat would not have been possible without the excellent projects in the community and ecosystem. We have used or referred to some outstanding resources and guides in the design and development process. Here are some key reference resources for developers to refer to during the development and learning process:
1. **OpenAI API Guide**: We use OpenAI's API to access and process AI conversation data. You can check out the [OpenAI API Guide](https://platform.openai.com/docs/api-reference/introduction) for more details.
2. **OpenAI SDK**: We use OpenAI's Node.js SDK to interact with OpenAI's API. You can view the source code and documentation on the [OpenAI SDK](https://github.com/openai/openai-node) GitHub repository.
3. **AI SDK**: We use Vercel's AI SDK to access and process AI conversation data. You can refer to the documentation of [AI SDK](https://sdk.vercel.ai/docs) for more details.
4. **LangChain**: Our early conversation feature was implemented based on LangChain. You can visit [LangChain](https://langchain.com) to learn more about it.
5. **Chat-Next-Web**: Chat Next Web is an excellent project, and some of LobeChat's features and workflows are referenced from its implementation. You can view the source code and documentation on the [Chat-Next-Web](https://github.com/Yidadaa/ChatGPT-Next-Web) GitHub repository.
6. **Next.js Documentation**: Our project is built on Next.js, and you can refer to the [Next.js Documentation](https://nextjs.org/docs) for more information about Next.js.
7. **FlowGPT**: FlowGPT is currently the world's largest Prompt community, and some of the agents in LobeChat come from active authors in FlowGPT. You can visit [FlowGPT](https://flowgpt.com/) to learn more about it.
We will continue to update and supplement this list to provide developers with more reference resources.
+19
View File
@@ -0,0 +1,19 @@
# 资源与参考
LobeChat 的设计和开发离不开社区和生态中的优秀项目。我们在设计和开发过程中使用或参考了一些优秀的资源和指南。以下是一些主要的参考资源,供开发者在开发和学习过程中参考:
1. **OpenAI API 指南**:我们使用 OpenAI 的 API 来获取和处理 AI 的会话数据。你可以查看 [OpenAI API 指南](https://platform.openai.com/docs/api-reference/introduction) 了解更多详情。
2. **OpenAI SDK**:我们使用 OpenAI 的 Node.js SDK 来与 OpenAI 的 API 交互。你可以在 [OpenAI SDK](https://github.com/openai/openai-node) 的 GitHub 仓库中查看源码和文档。
3. **AI SDK**:我们使用 Vercel 的 AI SDK 来获取和处理 AI 的会话数据。你可以查看 [AI SDK](https://sdk.vercel.ai/docs) 的文档来了解更多详情。
4. **LangChain**:我们早期的会话功能是基于 LangChain 实现的。你可以访问 [LangChain](https://langchain.com) 来了解更多关于它的信息。
5. **Chat-Next-Web**Chat Next Web 是一个优秀的项目,LobeChat 的部分功能、Workflow 等参考了它的实现。你可以在 [Chat-Next-Web](https://github.com/Yidadaa/ChatGPT-Next-Web) 的 GitHub 仓库中查看源码和文档。
6. **Next.js 文档**:我们的项目是基于 Next.js 构建的,你可以查看 [Next.js 文档](https://nextjs.org/docs) 来了解更多关于 Next.js 的信息。
7. **FlowGPT**:FlowGPT 是目前全球最大的 Prompt 社区,LobeChat 中的一些 Agent 来自 FlowGPT 的活跃作者。你可以访问 [FlowGPT](https://flowgpt.com/) 来了解更多关于它的信息。
我们会持续更新和补充这个列表,为开发者提供更多的参考资源。
+69
View File
@@ -0,0 +1,69 @@
# Environment Setup Guide
Welcome to the LobeChat development environment setup guide.
#### TOC
- [Online Development](#online-development)
- [Local Development](#local-development)
- [Development Environment Requirements](#development-environment-requirements)
- [Project Setup](#project-setup)
## Online Development
If you have access to GitHub Codespaces, you can click the button below to enter the online development environment with just one click:
[![][codespaces-shield]][codespaces-link]
## Local Development
Before starting development on LobeChat, you need to install and configure some necessary software and tools in your local environment. This document will guide you through these steps.
### Development Environment Requirements
First, you need to install the following software:
- Node.js: LobeChat is built on Node.js, so you need to install Node.js. We recommend installing the latest stable version.
- Yarn: We use Yarn as the preferred package manager. You can download and install it from the Yarn official website.
- PNPM: We use PNPM as an auxiliary package manager. You can download and install it from the PNPM official website.
- Git: We use Git for version control. You can download and install it from the Git official website.
- IDE: You can choose your preferred integrated development environment (IDE). We recommend using WebStorm, a powerful IDE particularly suitable for TypeScript development.
### Project Setup
After installing the above software, you can start setting up the LobeChat project.
1. **Get the code**: First, you need to clone the LobeChat codebase from GitHub. Run the following command in the terminal:
```bash
git clone https://github.com/lobehub/lobe-chat.git
```
2. **Install dependencies**: Then, navigate to the project directory and use Yarn to install the project's dependencies:
```bash
cd lobe-chat
yarn install
```
If you are using PNPM, you can execute:
```bash
cd lobe-chat
pnpm install
```
3. **Start the development server**: After installing the dependencies, you can start the development server:
```bash
yarn run dev
```
Now, you can open `http://localhost:3010` in your browser, and you should see the welcome page of LobeChat. This indicates that you have successfully set up the development environment.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/274655364-414bc31e-8511-47a3-af17-209b530effc7.png)
During the development process, if you encounter any issues with environment setup or have any questions about LobeChat development, feel free to ask us at any time. We look forward to seeing your contributions!
[codespaces-link]: https://codespaces.new/lobehub/lobe-chat
[codespaces-shield]: https://github.com/codespaces/badge.svg
@@ -0,0 +1,69 @@
# 环境设置指南
欢迎阅读 LobeChat 的开发环境设置指南。
#### TOC
- [在线开发](#在线开发)
- [本地开发](#本地开发)
- [开发环境需求](#开发环境需求)
- [项目设置](#项目设置)
## 在线开发
如果你有 GitHub Codespaces 的使用权限,可以点击下方按钮一键进入在线开发环境:
[![][codespaces-shield]][codespaces-link]
## 本地开发
在开始开发 LobeChat 之前,你需要在本地环境中安装和配置一些必要的软件和工具。本文档将指导你完成这些步骤。
### 开发环境需求
首先,你需要安装以下软件:
- Node.jsLobeChat 是基于 Node.js 构建的,因此你需要安装 Node.js。我们建议安装最新的稳定版。
- Bun:我们使用 Bun 作为首选包管理器。你可以从 Bun 的官方网站上下载并安装。
- PNPM:我们使用 PNPM 作为辅助包管理器。你可以从 pnpm 的官方网站上下载并安装。
- Git:我们使用 Git 进行版本控制。你可以从 Git 的官方网站上下载并安装。
- IDE:你可以选择你喜欢的集成开发环境(IDE)。我们推荐使用 WebStorm,它是一款功能强大的 IDE,特别适合 TypeScript 开发。
### 项目设置
完成上述软件的安装后,你可以开始设置 LobeChat 项目了。
1. **获取代码**:首先,你需要从 GitHub 上克隆 LobeChat 的代码库。在终端中运行以下命令:
```bash
git clone https://github.com/lobehub/lobe-chat.git
```
2. **安装依赖**:然后,进入项目目录,并使用 bun 安装项目的依赖包:
```bash
cd lobe-chat
bun i
```
如果你使用 pnpm ,可以执行:
```bash
cd lobe-chat
pnpm i
```
3. **启动开发服务器**:安装完依赖后,你可以启动开发服务器:
```bash
bun run dev
```
现在,你可以在浏览器中打开 `http://localhost:3010`,你应该能看到 LobeChat 的欢迎页面。这表明你已经成功地设置了开发环境。
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/274655364-414bc31e-8511-47a3-af17-209b530effc7.png)
在开发过程中,如果你在环境设置上遇到任何问题,或者有任何关于 LobeChat 开发的问题,欢迎随时向我们提问。我们期待看到你的贡献!
[codespaces-link]: https://codespaces.new/lobehub/lobe-chat
[codespaces-shield]: https://github.com/codespaces/badge.svg
+87
View File
@@ -0,0 +1,87 @@
# Testing Guide
LobeChat's testing strategy includes unit testing and end-to-end (E2E) testing. Below are detailed explanations of each type of testing:
#### TOC
- [Unit Testing](#unit-testing)
- [🚧 End-to-End Testing](#-end-to-end-testing)
- [Development Testing](#development-testing)
- [1. Unit Testing](#1-unit-testing)
- [Testing Strategy](#testing-strategy)
## Unit Testing
Unit testing is used to test the functionality of independent units in the application, such as components, functions, utility functions, etc. We use [vitest][vitest-url] for unit testing.
To run unit tests, you can use the following command:
```
npm run test
```
This will run all unit tests and generate a test report.
We encourage developers to write corresponding unit tests while writing code to ensure the quality and stability of the code.
## 🚧 End-to-End Testing
End-to-end testing is used to test the functionality and performance of the application in a real environment. It simulates real user operations and verifies the application's performance in different scenarios.
Currently, there is no integrated end-to-end testing in LobeChat. We will gradually introduce end-to-end testing in subsequent iterations.
## Development Testing
### 1. Unit Testing
Unit testing is conducted on the smallest testable units in the application, usually functions, components, or modules. In LobeChat, we use [vitest][vitest-url] for unit testing.
#### Writing Test Cases
Before writing unit tests, you need to create a directory with the same name as the file to be tested and name the test file `<filename>.test.ts`. For example, if you want to test the `src/utils/formatDate.ts` file, the test file should be named `src/utils/formatDate.test.ts`.
In the test file, you can use the `describe` and `it` functions to organize and write test cases. The `describe` function is used to create a test suite, and the `it` function is used to write specific test cases.
```typescript
import { formatNumber } from './formatNumber';
describe('formatNumber', () => {
it('should format number with comma separator', () => {
const result = formatNumber(1000);
expect(result).toBe('1,000');
});
it('should return the same number if it is less than 1000', () => {
const result = formatNumber(500);
expect(result).toBe('500');
});
});
```
In test cases, you can use the `expect` function to assert whether the test results meet expectations. The `expect` function can be used with various matchers, such as `toBe`, `toEqual`, `toBeTruthy`, etc.
#### Running Unit Tests
Execute unit tests by running the following command:
```
npm run test
```
This will run all unit tests and output the test results.
## Testing Strategy
To write effective test cases, you can consider the following testing strategies:
- **Boundary Testing**: Test the boundary conditions of inputs, such as minimum value, maximum value, empty value, etc.
- **Exception Testing**: Test the code handling exceptional cases, such as error handling, fallback in exceptional situations, etc.
- **Functional Testing**: Test whether various functional modules of the application work properly, including user interaction, data processing, etc.
- **Compatibility Testing**: Test the compatibility of the application on different browsers and devices.
- **Performance Testing**: Test the performance of the application under different loads, such as response time, resource utilization, etc.
Also, ensure that your test cases have good coverage, covering critical code and functionality in the application.
By properly writing and executing unit tests, integration tests, and end-to-end tests, you can improve the quality and stability of the application and promptly identify and fix potential issues.
[vitest-url]: https://vitest.dev/
+87
View File
@@ -0,0 +1,87 @@
# 测试指南
LobeChat 的测试策略包括单元测试和端到端 (E2E) 测试。下面是每种测试的详细说明:
#### TOC
- [单元测试](#单元测试)
- [🚧 端到端测试](#-端到端测试)
- [开发测试](#开发测试)
- [1. 单元测试](#1-单元测试)
- [测试策略](#测试策略)
## 单元测试
单元测试用于测试应用中的独立单元(如组件、函数、工具函数等)的功能。我们使用 [vitest][vitest-url] 进行单元测试。
要运行单元测试,可以使用以下命令:
```
npm run test
```
这将运行所有的单元测试,并生成测试报告。
我们鼓励开发者在编写代码时,同时编写对应的单元测试,以确保代码的质量和稳定性。
## 🚧 端到端测试
端到端测试用于测试应用在真实环境中的功能和性能。它模拟用户的真实操作,并验证应用在不同场景下的表现。
在 LobeChat 中,目前暂时没有集成端到端测试,我们会在后续迭代中逐步引入端到端测试。
## 开发测试
### 1. 单元测试
单元测试是针对应用中的最小可测试单元进行的测试,通常是针对函数、组件或模块进行的测试。在 LobeChat 中,我们使用 [vitest][vitest-url] 进行单元测试。
#### 编写测试用例
在编写单元测试之前,您需要创建一个与被测试文件相同的目录,并将测试文件命名为 `<filename>.test.ts`。例如,如果要测试 `src/utils/formatDate.ts` 文件,测试文件应命名为 `src/utils/formatDate.test.ts`
在测试文件中,您可以使用 `describe``it` 函数来组织和编写测试用例。`describe` 函数用于创建测试套件,`it` 函数用于编写具体的测试用例。
```typescript
import { formatNumber } from './formatNumber';
describe('formatNumber', () => {
it('should format number with comma separator', () => {
const result = formatNumber(1000);
expect(result).toBe('1,000');
});
it('should return the same number if it is less than 1000', () => {
const result = formatNumber(500);
expect(result).toBe('500');
});
});
```
在测试用例中,您可以使用 `expect` 函数来断言测试结果是否符合预期。`expect` 函数可以与各种匹配器(matchers)一起使用,例如 `toBe``toEqual``toBeTruthy` 等。
#### 运行单元测试
通过运行以下命令来执行单元测试:
```
npm run test
```
这将运行所有的单元测试,并输出测试结果。
## 测试策略
为了编写有效的测试用例,您可以考虑以下测试策略:
- **边界条件测试**:测试输入的边界条件,例如最小值、最大值、空值等。
- **异常情况测试**:测试处理异常情况的代码,例如错误处理、异常情况下的回退等。
- **功能测试**:测试应用的各个功能模块是否正常工作,包括用户交互、数据处理等。
- **兼容性测试**:测试应用在不同浏览器和设备上的兼容性。
- **性能测试**:测试应用在不同负载下的性能表现,例如响应时间、资源占用等。
同时,请确保您的测试用例具有良好的覆盖率,覆盖到应用中的关键代码和功能。
通过合理编写和执行单元测试、集成测试和端到端测试,您可以提高应用的质量和稳定性,并及时发现和修复潜在的问题。
[vitest-url]: https://vitest.dev/
+87
View File
@@ -0,0 +1,87 @@
<div align="center">
<img height="120" src="https://registry.npmmirror.com/@lobehub/assets-logo/1.0.0/files/assets/logo-3d.webp">
<img height="120" src="https://gw.alipayobjects.com/zos/kitchen/qJ3l3EPsdW/split.svg">
<img height="120" src="https://registry.npmmirror.com/@lobehub/assets-emoji/1.3.0/files/assets/robot.webp">
<h1>Lobe Chat Contributing Wiki</h1>
LobeChat is an open-source, extensible ([Function Calling][fc-url]), high-performance chatbot framework. <br/> It supports one-click free deployment of your private ChatGPT/LLM web application.
[Usage Documents](https://lobehub.com/docs) | [使用指南](https://lobehub.com/docs)
</div>
![](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)
<!-- DOCS LIST -->
### 🤯 Basic
- [Architecture Design](https://github.com/lobehub/lobe-chat/wiki/Architecture) | [架构设计](https://github.com/lobehub/lobe-chat/wiki/Architecture.zh-CN)
- [Code Style and Contribution Guidelines](https://github.com/lobehub/lobe-chat/wiki/Contributing-Guidelines) | [代码风格与贡献指南](https://github.com/lobehub/lobe-chat/wiki/Contributing-Guidelines.zh-CN)
- [Complete Guide to LobeChat Feature Development](https://github.com/lobehub/lobe-chat/wiki/Feature-Development) | [LobeChat 功能开发完全指南](https://github.com/lobehub/lobe-chat/wiki/Feature-Development.zh-CN)
- [Conversation API Implementation Logic](https://github.com/lobehub/lobe-chat/wiki/Chat-API) | [会话 API 实现逻辑](https://github.com/lobehub/lobe-chat/wiki/Chat-API.zh-CN)
- [Directory Structure](https://github.com/lobehub/lobe-chat/wiki/Folder-Structure) | [目录架构](https://github.com/lobehub/lobe-chat/wiki/Folder-Structure.zh-CN)
- [Environment Setup Guide](https://github.com/lobehub/lobe-chat/wiki/Setup-Development) | [环境设置指南](https://github.com/lobehub/lobe-chat/wiki/Setup-Development.zh-CN)
- [How to Develop a New Feature](https://github.com/lobehub/lobe-chat/wiki/Feature-Development-Frontend) | [如何开发一个新功能:前端实现](https://github.com/lobehub/lobe-chat/wiki/Feature-Development-Frontend.zh-CN)
- [New Authentication Provider Guide](https://github.com/lobehub/lobe-chat/wiki/Add-New-Authentication-Providers) | [新身份验证方式开发指南](https://github.com/lobehub/lobe-chat/wiki/Add-New-Authentication-Providers.zh-CN)
- [Resources and References](https://github.com/lobehub/lobe-chat/wiki/Resources) | [资源与参考](https://github.com/lobehub/lobe-chat/wiki/Resources.zh-CN)
- [Technical Development Getting Started Guide](https://github.com/lobehub/lobe-chat/wiki/Intro) | [技术开发上手指南](https://github.com/lobehub/lobe-chat/wiki/Intro.zh-CN)
- [Testing Guide](https://github.com/lobehub/lobe-chat/wiki/Test) | [测试指南](https://github.com/lobehub/lobe-chat/wiki/Test.zh-CN)
<br/>
### 🌎 Internationalization
- [Internationalization Implementation Guide](https://github.com/lobehub/lobe-chat/wiki/Internationalization-Implementation) | [国际化实现指南](https://github.com/lobehub/lobe-chat/wiki/Internationalization-Implementation.zh-CN)
- [New Locale Guide](https://github.com/lobehub/lobe-chat/wiki/Add-New-Locale) | [新语种添加指南](https://github.com/lobehub/lobe-chat/wiki/Add-New-Locale.zh-CN)
<br/>
### ⌨️ State Management
- [Best Practices for State Management](https://github.com/lobehub/lobe-chat/wiki/State-Management-Intro) | [状态管理最佳实践](https://github.com/lobehub/lobe-chat/wiki/State-Management-Intro.zh-CN)
- [Data Store Selector](https://github.com/lobehub/lobe-chat/wiki/State-Management-Selectors) | [数据存储取数模块](https://github.com/lobehub/lobe-chat/wiki/State-Management-Selectors.zh-CN)
<br/>
### 🤖 Agents
- [Agent Index and Submit](https://github.com/lobehub/lobe-chat-agents) | [助手索引与提交](https://github.com/lobehub/lobe-chat-agents/blob/main/README.zh-CN.md)
<br/>
### 🧩 Plugins
- [Plugin Index and Submit](https://github.com/lobehub/lobe-chat-plugins) | [插件索引与提交](https://github.com/lobehub/lobe-chat-plugins/blob/main/README.zh-CN.md)
- [Plugin SDK Docs](https://chat-plugin-sdk.lobehub.com) | [插件 SDK 文档](https://chat-plugin-sdk.lobehub.com)
<br/>
### 📊 Others
- [Lighthouse Reports](https://github.com/lobehub/lobe-chat/wiki/Lighthouse) | [Lighthouse 测试报告](https://github.com/lobehub/lobe-chat/wiki/Lighthouse.zh-CN)
<br/>
<!-- DOCS LIST -->
---
<details><summary><h4>📝 License</h4></summary>
[![][fossa-license-shield]][fossa-license-url]
</details>
Copyright © 2023 [LobeHub][profile-url]. <br />
This project is [MIT][license-url] licensed.
<!-- LINK GROUP -->
[fc-url]: https://sspai.com/post/81986
[fossa-license-shield]: https://app.fossa.com/api/projects/git%2Bgithub.com%2Flobehub%2Flobe-chat.svg?type=large
[fossa-license-url]: https://app.fossa.com/projects/git%2Bgithub.com%2Flobehub%2Flobe-chat
[license-url]: https://github.com/lobehub/lobe-chat/blob/main/LICENSE
[profile-url]: https://github.com/lobehub
@@ -0,0 +1,62 @@
# New Locale Guide
LobeChat uses [lobe-i18n](https://github.com/lobehub/lobe-cli-toolbox/tree/master/packages/lobe-i18n) as the i18n solution, which allows for quick addition of new language support in the application.
## TOC
- [Adding New Language Support](#adding-new-language-support)
- [Step 1: Update the Internationalization Configuration File](#step-1-update-the-internationalization-configuration-file)
- [Step 2: Automatically Translate Language Files](#step-2-automatically-translate-language-files)
- [Step 3: Submit and Review Your Changes](#step-3-submit-and-review-your-changes)
- [Additional Information](#additional-information)
## Adding New Language Support
To add new language internationalization support in LobeChat (for example, adding Vietnamese `vi-VN`), please follow the steps below:
### Step 1: Update the Internationalization Configuration File
1. Open the `.i18nrc.js` file. You can find this file in the project's root directory.
2. Add the new language code to the configuration file. For example, to add Vietnamese, you need to add `'vi-VN'` to the configuration file.
```js
module.exports = {
// ... Other configurations
outputLocales: [
'zh-TW',
'en-US',
'ru-RU',
'ja-JP',
// ...Other languages
'vi-VN', // Add 'vi-VN' to the array
],
};
```
### Step 2: Automatically Translate Language Files
LobeChat uses the `lobe-i18n` tool to automatically translate language files, so manual updating of i18n files is not required.
Run the following command to automatically translate and generate the Vietnamese language files:
```bash
npm run i18n
```
This will utilize the `lobe-i18n` tool to process the language files.
### Step 3: Submit and Review Your Changes
Once you have completed the above steps, you need to submit your changes and create a Pull Request.
Ensure that you follow LobeChat's contribution guidelines and provide a necessary description to explain your changes. For example, refer to a similar previous Pull Request [#759](https://github.com/lobehub/lobe-chat/pull/759).
### Additional Information
- After submitting your Pull Request, please patiently wait for the project maintainers to review it.
- If you encounter any issues, you can reach out to the LobeChat community for assistance.
- For more accurate results, ensure that your Pull Request is based on the latest main branch and stays in sync with the main branch.
By following the above steps, you can successfully add new language support to LobeChat and ensure that the application provides a localized experience for more users.
@@ -0,0 +1,62 @@
# 新语种添加指南
LobeChat 使用 [lobe-i18n](https://github.com/lobehub/lobe-cli-toolbox/tree/master/packages/lobe-i18n) 作为 i18n 解决方案,可以在应用中快速添加新的语言支持。
## TOC
- [添加新的语言支持](#添加新的语言支持)
- [步骤 1: 更新国际化配置文件](#步骤-1-更新国际化配置文件)
- [步骤 2: 自动翻译语言文件](#步骤-2-自动翻译语言文件)
- [步骤 3: 提交和审查你的更改](#步骤-3-提交和审查你的更改)
- [附加信息](#附加信息)
## 添加新的语言支持
为了在 LobeChat 中添加新的语言国际化支持,(例如添加越南语 `vi-VN`),请按照以下步骤操作:
### 步骤 1: 更新国际化配置文件
1. 打开 `.i18nrc.js` 文件。你可以在项目的根目录中找到此文件。
2. 将新的语言代码添加到配置文件中。例如,为了添加越南语,你需要在配置文件中添加 `'vi-VN'`
```js
module.exports = {
// ... 其他配置
outputLocales: [
'zh-TW',
'en-US',
'ru-RU',
'ja-JP',
// ...其他语言
'vi-VN', // 在数组中添加 'vi-VN'
],
};
```
### 步骤 2: 自动翻译语言文件
LobeChat 使用 `lobe-i18n` 工具来自动翻译语言文件,因此不需要手动更新 i18n 文件。
运行以下命令来自动翻译并生成越南语的语言文件:
```bash
npm run i18n
```
这将会利用 `lobe-i18n` 工具来处理语言文件。
### 步骤 3: 提交和审查你的更改
一旦你完成了上述步骤,你需要提交你的更改并创建一个 Pull Request。
请确保你遵循了 LobeChat 的贡献指南,并提供必要的描述来说明你的更改。例如,参考之前的类似 Pull Request [#759](https://github.com/lobehub/lobe-chat/pull/759)。
### 附加信息
- 提交你的 Pull Request 后,请耐心等待项目维护人员的审查。
- 如果遇到任何问题,可以联系 LobeChat 社区寻求帮助。
- 为了更精确的结果,确保你的 Pull Request 是基于最新的主分支,并且与主分支保持同步。
通过遵循上述步骤,你可以成功为 LobeChat 添加新的语言支持,并且确保应用能够为更多用户提供本地化的体验。
@@ -0,0 +1,125 @@
# Internationalization Implementation Guide
Welcome to the LobeChat Internationalization Implementation Guide. This document will guide you through understanding the internationalization mechanism of LobeChat, including file structure and how to add new languages. LobeChat uses `i18next` and `lobe-i18n` as the internationalization solution, aiming to provide users with seamless multilingual support.
## TOC
- [Internationalization Overview](#internationalization-overview)
- [File Structure](#file-structure)
- [Core Implementation Logic](#core-implementation-logic)
- [Adding Support for New Languages](#adding-support-for-new-languages)
- [Resources and Further Reading](#resources-and-further-reading)
## Internationalization Overview
Internationalization (i18n for short) is the process of enabling an application to adapt to different languages and regions. In LobeChat, we support multiple languages and achieve dynamic language switching and content localization through the `i18next` library. Our goal is to provide a localized experience for global users.
## File Structure
In the LobeChat project, internationalization-related files are organized as follows:
- `src/locales/default`: Contains translation files for the default development language (Chinese), which we use as Chinese.
- `locales`: Contains folders for all supported languages, with each language folder containing the respective translation files generated by lobe-i18n.
In the directory structure of `src/locales`, the `default` folder contains the original translation files (Chinese), while each other language folder contains JSON translation files for the respective language. The files in each language folder correspond to the TypeScript files in the `default` folder, ensuring consistency in the structure of translation files across languages.
```
src/locales
├── create.ts
├── default
│ ├── chat.ts
│ ├── common.ts
│ ├── error.ts
│ ├── index.ts
│ ├── market.ts
│ ├── migration.ts
│ ├── plugin.ts
│ ├── setting.ts
│ ├── tool.ts
│ └── welcome.ts
└── resources.ts
```
The file structure generated by lobe-i18n is as follows:
```
locales
├── ar
│ ├── chat.json
│ ├── common.json
│ ├── error.json
│ └── ... (other translation files)
├── de-DE
│ ├── chat.json
│ ├── common.json
│ ├── error.json
│ └── ... (other translation files)
├── en-US
├── ... (other language directories)
├── zh-CN
└── zh-TW
```
## Core Implementation Logic
The internationalization core implementation logic of LobeChat is as follows:
- Initialize and configure using the `i18next` library.
- Automatically detect the user's language preference using `i18next-browser-languagedetector`.
- Dynamically load translation resources using `i18next-resources-to-backend`.
- Set the direction of the HTML document (LTR or RTL) based on the user's language preference.
Here is a simplified pseudo code example to illustrate the core implementation logic of internationalization in LobeChat:
```ts
import i18n from 'i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
import resourcesToBackend from 'i18next-resources-to-backend';
import { isRtlLang } from 'rtl-detect';
// Create i18n instance and configure
const createI18nInstance = (lang) => {
const i18nInstance = i18n
.use(LanguageDetector) // Use language detection
.use(
resourcesToBackend((language, namespace) => {
// Dynamically load translation resources for the corresponding language
return import(`path/to/locales/${language}/${namespace}.json`);
}),
);
// Listen for language change events and dynamically set document direction
i18nInstance.on('languageChanged', (language) => {
const direction = isRtlLang(language) ? 'rtl' : 'ltr';
document.documentElement.dir = direction; // Set HTML document direction
});
// Initialize i18n instance
i18nInstance.init({
// Relevant configurations
});
return i18nInstance;
};
```
In this example, we demonstrate how to use `i18next` and related plugins to initialize internationalization settings. We dynamically import translation resources and respond to language change events to adjust the text direction of the page. This process provides LobeChat with flexible multilingual support capabilities.
## Adding Support for New Languages
We have already supported a variety of languages globally through the following efforts:
- [✨ feat: adding Arabic Language Support #1049](https://github.com/lobehub/lobe-chat/pull/1049)
- [🌐 style: Add Vietnamese files and add the vi-VN option in the General Settings #860](https://github.com/lobehub/lobe-chat/pull/860)
- [🌐 style: support it-IT nl-NL and pl-PL locales #759](https://github.com/lobehub/lobe-chat/pull/759)
- [🌐 feat(locale): Add fr-FR (#637) #645](https://github.com/lobehub/lobe-chat/pull/645)
- [🌐 Add russian localy #137](https://github.com/lobehub/lobe-chat/pull/137)
To add support for new languages, please refer to the detailed steps in the [New Locale Addition Guide](Add-New-Locale.en-US).
## Resources and Further Reading
- [i18next Official Documentation](https://www.i18next.com/)
- [lobe-i18n Tool Description](https://github.com/lobehub/lobe-cli-toolbox/tree/master/packages/lobe-i18n)
By following this guide, you can better understand and participate in the internationalization work of LobeChat, providing a seamless multilingual experience for global users.
@@ -0,0 +1,125 @@
# 国际化实现指南
欢迎阅读 LobeChat 国际化实现指南。本文档将指导你了解 LobeChat 的国际化机制,包括文件结构、如何添加新语种。LobeChat 采用 `i18next``lobe-i18n` 作为国际化解决方案,旨在为用户提供流畅的多语言支持。
## TOC
- [国际化概述](#国际化概述)
- [文件结构](#文件结构)
- [核心实现逻辑](#核心实现逻辑)
- [添加新的语言支持](#添加新的语言支持)
- [资源和进一步阅读](#资源和进一步阅读)
## 国际化概述
国际化(Internationalization,简称为 i18n)是一个让应用能够适应不同语言和地区的过程。在 LobeChat 中,我们支持多种语言,并通过 `i18next` 库来实现语言的动态切换和内容的本地化。我们的目标是让 LobeChat 能够为全球用户提供本地化的体验。
## 文件结构
在 LobeChat 的项目中,国际化相关的文件被组织如下:
- `src/locales/default`: 包含默认开发语言(中文)的翻译文件,我们作为中文。
- `locales`: 包含所有支持的语言文件夹,每个语言文件夹中包含相应语言的翻译文件,这些翻译文件通过 lobe-i18n 自动生成。
`src/locales` 这个目录结构中,`default` 文件夹包含了原始的翻译文件(中文),其他每个语言文件夹则包含了相应语言的 JSON 翻译文件。每个语言文件夹中的文件对应 `default` 文件夹中的 TypeScript 文件,确保了各语种之间的翻译文件结构一致性。
```
src/locales
├── create.ts
├── default
│ ├── chat.ts
│ ├── common.ts
│ ├── error.ts
│ ├── index.ts
│ ├── market.ts
│ ├── migration.ts
│ ├── plugin.ts
│ ├── setting.ts
│ ├── tool.ts
│ └── welcome.ts
└── resources.ts
```
通过 lobe-i18n 自动生成的文件结构如下:
```
locales
├── ar
│ ├── chat.json
│ ├── common.json
│ ├── error.json
│ └── ... (其他翻译文件)
├── de-DE
│ ├── chat.json
│ ├── common.json
│ ├── error.json
│ └── ... (其他翻译文件)
├── en-US
├── ... (其他语种目录)
├── zh-CN
└── zh-TW
```
## 核心实现逻辑
LobeChat 的国际化核心实现逻辑如下:
- 使用 `i18next` 库进行初始化和配置。
- 使用 `i18next-browser-languagedetector` 自动检测用户的语言偏好。
- 使用 `i18next-resources-to-backend` 动态加载翻译资源。
- 根据用户的语言偏好,设置 HTML 文档的方向(LTR 或 RTL)。
以下是一个简化的伪代码示例,用以说明 LobeChat 国际化的核心实现逻辑:
```ts
import i18n from 'i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
import resourcesToBackend from 'i18next-resources-to-backend';
import { isRtlLang } from 'rtl-detect';
// 创建 i18n 实例并配置
const createI18nInstance = (lang) => {
const i18nInstance = i18n
.use(LanguageDetector) // 使用语言检测
.use(
resourcesToBackend((language, namespace) => {
// 动态加载对应语言的翻译资源
return import(`path/to/locales/${language}/${namespace}.json`);
}),
);
// 监听语言变化事件,动态设置文档方向
i18nInstance.on('languageChanged', (language) => {
const direction = isRtlLang(language) ? 'rtl' : 'ltr';
document.documentElement.dir = direction; // 设置 HTML 文档方向
});
// 初始化 i18n 实例
i18nInstance.init({
// 相关配置
});
return i18nInstance;
};
```
在这个示例中,我们展示了如何使用 `i18next` 和相关插件来初始化国际化设置。我们动态导入了翻译资源,并响应语言变化事件来调整页面的文本方向。这个过程为 LobeChat 提供了灵活的多语言支持能力。
## 添加新的语言支持
我们通过以下工作,已经支持了全球多种语言:
- [✨ feat: adding Arabic Language Support #1049](https://github.com/lobehub/lobe-chat/pull/1049)
- [🌐 style: Add Vietnamese files and add the vi-VN option in the General Settings #860](https://github.com/lobehub/lobe-chat/pull/860)
- [🌐 style: support it-IT nl-NL and pl-PL locales #759](https://github.com/lobehub/lobe-chat/pull/759)
- [🌐 feat(locale): Add fr-FR (#637) #645](https://github.com/lobehub/lobe-chat/pull/645)
- [🌐 Add russian localy #137](https://github.com/lobehub/lobe-chat/pull/137)
要添加新的语种支持, 详细步骤请参考:[新语种添加指南](Add-New-Locale.zh-CN.md)。
## 资源和进一步阅读
- [i18next 官方文档](https://www.i18next.com/)
- [lobe-i18n 工具说明](https://github.com/lobehub/lobe-cli-toolbox/tree/master/packages/lobe-i18n)
通过遵循本指南,你可以更好地理解和参与到 LobeChat 的国际化工作中,为全球用户提供无缝的多语言体验。
+65
View File
@@ -0,0 +1,65 @@
# Lighthouse Reports
#### TOC
- [Welcome Page](#welcome-page)
- [Chat Page](#chat-page)
- [Market Page](#market-page)
- [Settings Page](#settings-page)
## Welcome Page
> **Info**\
> <https://chat-preview.lobehub.com/welcome>
| Desktop | Mobile |
| :---------------------------------------------: | :--------------------------------------------: |
| ![][welcome-desktop] | ![][welcome-mobile] |
| [⚡️ Lighthouse Report][welcome-desktop-report] | [⚡️ Lighthouse Report][welcome-mobile-report] |
## Chat Page
> **Info**\
> <https://chat-preview.lobehub.com/chat>
| Desktop | Mobile |
| :------------------------------------------: | :-----------------------------------------: |
| ![][chat-desktop] | ![][chat-mobile] |
| [⚡️ Lighthouse Report][chat-desktop-report] | [⚡️ Lighthouse Report][chat-mobile-report] |
## Market Page
> **Info**\
> <https://chat-preview.lobehub.com/market>
| Desktop | Mobile |
| :--------------------------------------------: | :-------------------------------------------: |
| ![][market-desktop] | ![][market-mobile] |
| [⚡️ Lighthouse Report][market-desktop-report] | [⚡️ Lighthouse Report][market-mobile-report] |
## Settings Page
> **Info**\
> <https://chat-preview.lobehub.com/settings>
| Desktop | Mobile |
| :----------------------------------------------: | :---------------------------------------------: |
| ![][settings-desktop] | ![][settings-mobile] |
| [⚡️ Lighthouse Report][settings-desktop-report] | [⚡️ Lighthouse Report][settings-mobile-report] |
[chat-desktop]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/chat/desktop/pagespeed.svg
[chat-desktop-report]: https://lobehub.github.io/lobe-chat/lighthouse/chat/desktop/chat_preview_lobehub_com_chat.html
[chat-mobile]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/chat/mobile/pagespeed.svg
[chat-mobile-report]: https://lobehub.github.io/lobe-chat/lighthouse/chat/mobile/chat_preview_lobehub_com_chat.html
[market-desktop]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/market/desktop/pagespeed.svg
[market-desktop-report]: https://lobehub.github.io/lobe-chat/lighthouse/market/desktop/chat_preview_lobehub_com_market.html
[market-mobile]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/market/mobile/pagespeed.svg
[market-mobile-report]: https://lobehub.github.io/lobe-chat/lighthouse/market/mobile/chat_preview_lobehub_com_market.html
[settings-desktop]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/settings/desktop/pagespeed.svg
[settings-desktop-report]: https://lobehub.github.io/lobe-chat/lighthouse/settings/desktop/chat_preview_lobehub_com_settings.html
[settings-mobile]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/settings/mobile/pagespeed.svg
[settings-mobile-report]: https://lobehub.github.io/lobe-chat/lighthouse/settings/mobile/chat_preview_lobehub_com_settings.html
[welcome-desktop]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/welcome/desktop/pagespeed.svg
[welcome-desktop-report]: https://lobehub.github.io/lobe-chat/lighthouse/welcome/desktop/chat_preview_lobehub_com_welcome.html
[welcome-mobile]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/welcome/mobile/pagespeed.svg
[welcome-mobile-report]: https://lobehub.github.io/lobe-chat/lighthouse/welcome/mobile/chat_preview_lobehub_com_welcome.html
+65
View File
@@ -0,0 +1,65 @@
# Lighthouse 测试报告
#### TOC
- [Welcome 欢迎页面](#welcome-欢迎页面)
- [Chat 聊天页面](#chat-聊天页面)
- [Market 市场页面](#market-市场页面)
- [Settings 设置页面](#settings-设置页面)
## Welcome 欢迎页面
> **Info**\
> <https://chat-preview.lobehub.com/welcome>
| Desktop | Mobile |
| :---------------------------------------------: | :--------------------------------------------: |
| ![][welcome-desktop] | ![][welcome-mobile] |
| [⚡️ Lighthouse Report][welcome-desktop-report] | [⚡️ Lighthouse Report][welcome-mobile-report] |
## Chat 聊天页面
> **Info**\
> <https://chat-preview.lobehub.com/chat>
| Desktop | Mobile |
| :------------------------------------------: | :-----------------------------------------: |
| ![][chat-desktop] | ![][chat-mobile] |
| [⚡️ Lighthouse Report][chat-desktop-report] | [⚡️ Lighthouse Report][chat-mobile-report] |
## Market 市场页面
> **Info**\
> <https://chat-preview.lobehub.com/market>
| Desktop | Mobile |
| :--------------------------------------------: | :-------------------------------------------: |
| ![][market-desktop] | ![][market-mobile] |
| [⚡️ Lighthouse Report][market-desktop-report] | [⚡️ Lighthouse Report][market-mobile-report] |
## Settings 设置页面
> **Info**\
> <https://chat-preview.lobehub.com/settings>
| Desktop | Mobile |
| :----------------------------------------------: | :---------------------------------------------: |
| ![][settings-desktop] | ![][settings-mobile] |
| [⚡️ Lighthouse Report][settings-desktop-report] | [⚡️ Lighthouse Report][settings-mobile-report] |
[chat-desktop]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/chat/desktop/pagespeed.svg
[chat-desktop-report]: https://lobehub.github.io/lobe-chat/lighthouse/chat/desktop/chat_preview_lobehub_com_chat.html
[chat-mobile]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/chat/mobile/pagespeed.svg
[chat-mobile-report]: https://lobehub.github.io/lobe-chat/lighthouse/chat/mobile/chat_preview_lobehub_com_chat.html
[market-desktop]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/market/desktop/pagespeed.svg
[market-desktop-report]: https://lobehub.github.io/lobe-chat/lighthouse/market/desktop/chat_preview_lobehub_com_market.html
[market-mobile]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/market/mobile/pagespeed.svg
[market-mobile-report]: https://lobehub.github.io/lobe-chat/lighthouse/market/mobile/chat_preview_lobehub_com_market.html
[settings-desktop]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/settings/desktop/pagespeed.svg
[settings-desktop-report]: https://lobehub.github.io/lobe-chat/lighthouse/settings/desktop/chat_preview_lobehub_com_settings.html
[settings-mobile]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/settings/mobile/pagespeed.svg
[settings-mobile-report]: https://lobehub.github.io/lobe-chat/lighthouse/settings/mobile/chat_preview_lobehub_com_settings.html
[welcome-desktop]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/welcome/desktop/pagespeed.svg
[welcome-desktop-report]: https://lobehub.github.io/lobe-chat/lighthouse/welcome/desktop/chat_preview_lobehub_com_welcome.html
[welcome-mobile]: https://raw.githubusercontent.com/lobehub/lobe-chat/lighthouse/lighthouse/welcome/mobile/pagespeed.svg
[welcome-mobile-report]: https://lobehub.github.io/lobe-chat/lighthouse/welcome/mobile/chat_preview_lobehub_com_welcome.html
@@ -0,0 +1,224 @@
# Best Practices for State Management
LobeChat differs from traditional CRUD web applications in that it involves a large amount of rich interactive capabilities. Therefore, it is crucial to design a data flow architecture that is easy to develop and maintain. This document will introduce the best practices for data flow management in LobeChat.
## TOC
- [Key Concepts](#key-concepts)
- [Hierarchical Structure](#hierarchical-structure)
- [Best Practices for LobeChat SessionStore Directory Structure](#best-practices-for-lobechat-sessionstore-directory-structure)
- [Implementation of SessionStore](#implementation-of-sessionstore)
## Key Concepts
| Concept | Explanation |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| store | The store contains the application's state and actions. It allows access to and modification of the state during application rendering. |
| state | State refers to the data of the application, storing the current state of the application. Any change in the state will **trigger a re-rendering** to reflect the new state. |
| action | An action is an operation function that describes the interactive events occurring in the application. Actions are typically triggered by user interactions, network requests, or timers. Actions can be **synchronous** or **asynchronous**. |
| reducer | A reducer is a pure function that takes the current state and action as parameters and returns a new state. It is used to update the application's state based on the action type. A reducer is a pure function with no side effects, therefore it is always a **synchronous** function. |
| selector | A selector is a function used to retrieve specific data from the application's state. It takes the application's state as a parameter and returns computed or transformed data. Selectors can combine parts of the state or multiple states to generate derived data. Selectors are commonly used to map the application's state to a component's props for the component's use. |
| slice | A slice is a concept used to express a part of the data model state. It specifies a state slice and its related state, action, reducer, and selector. Using slices, a large store can be divided into smaller, maintainable subtypes. |
## Hierarchical Structure
The structure of the Store can vary greatly depending on the complexity:
- **Low Complexity**: Generally includes 2 to 5 states and 3 to 4 actions. In this case, the structure usually consists of a `store.ts` and an `initialState.ts`.
```bash
DataFill/store
├── index.ts
└── initialState.ts
```
- **Moderate Complexity**: Typically involves 5 to 15 states and 5 to 10 actions, with the possibility of selectors for derived states and reducers to simplify data changes. The structure usually includes a `store.ts`, an `initialState.ts`, and a `selectors.ts`/`reducer.ts`.
```bash
IconPicker/store
├── index.ts
├── initialState.ts
├── selectors.ts
└── store.ts
```
```bash
SortableList/store
├── index.ts
├── initialState.ts
├── listDataReducer.ts
└── store.ts
```
- **Medium Complexity**: Involves 15 to 30 states and 10 to 20 actions, often requiring the use of multiple slices to manage different actions. The following code represents the internal data flow of the `SortableTree` component:
```bash
SortableTree/store
├── index.ts
├── initialState.ts
├── selectors.ts
├── slices
│ ├── crudSlice.ts
│ ├── dndSlice.ts
│ └── selectionSlice.ts
├── store.ts
└── treeDataReducer.ts
```
- **High Complexity**: Involves over 30 states and 20 actions, requiring modular cohesion using slices. Each slice declares its own initState, actions, reducers, and selectors.
The directory structure of the previous version of SessionStore for LobeChat, with high complexity, implements a large amount of business logic. However, with the modularization of slices and the fractal architecture, it is easy to find the corresponding modules, making it easy to maintain and iterate on new features.
```bash
LobeChat SessionStore
├── index.ts
├── initialState.ts
├── selectors.ts
├── slices
│ ├── agentConfig
│ │ ├── action.ts
│ │ ├── index.ts
│ │ ├── initialState.ts
│ │ └── selectors.ts
│ ├── chat
│ │ ├── actions
│ │ │ ├── index.ts
│ │ │ ├── message.ts
│ │ │ └── topic.ts
│ │ ├── index.ts
│ │ ├── initialState.ts
│ │ ├── reducers
│ │ │ ├── message.ts
│ │ │ └── topic.ts
│ │ ├── selectors
│ │ │ ├── chat.ts
│ │ │ ├── index.ts
│ │ │ ├── token.ts
│ │ │ ├── topic.ts
│ │ │ └── utils.ts
│ │ └── utils.ts
│ └── session
│ ├── action.ts
│ ├── index.ts
│ ├── initialState.ts
│ ├── reducers
│ │ └── session.ts
│ └── selectors
│ ├── export.ts
│ ├── index.ts
│ └── list.ts
└── store.ts
```
Based on the provided directory structure of LobeChat SessionStore, we can update the previous document and convert the examples to the implementation of LobeChat's SessionStore. The following is a portion of the updated document:
### Best Practices for LobeChat SessionStore Directory Structure
In the LobeChat application, session management is a complex functional module, so we use the Slice pattern to organize the data flow. Below is the directory structure of LobeChat SessionStore, where each directory and file has its specific purpose:
```bash
src/store/session
├── helpers.ts # Helper functions
├── hooks # Custom React hooks
│   ├── index.ts # Export file for hooks
│   ├── useEffectAfterHydrated.ts # Hook for effects after session hydration
│   ├── useOnFinishHydrationSession.ts # Hook for session hydration completion
│   ├── useSessionChatInit.ts # Hook for session chat initialization
│   └── useSessionHydrated.ts # Hook for session hydration status
├── index.ts # Aggregated export file for SessionStore
├── initialState.ts # Aggregated initialState for all slices
├── selectors.ts # Selectors exported from various slices
├── slices # Separated functional modules
│   ├── agent # State and operations related to agents
│   │   ├── action.ts # Action definitions related to agents
│   │   ├── index.ts # Entry file for agent slice
│   │   ├── selectors.test.ts # Tests for agent-related selectors
│   │   └── selectors.ts # Selector definitions related to agents
│   └── session # State and operations related to sessions
│   ├── action.test.ts # Tests for session-related actions
│   ├── action.ts # Action definitions related to sessions
│   ├── helpers.ts # Helper functions related to sessions
│   ├── initialState.ts # Initial state for session slice
│   └── selectors # Session-related selectors and their tests
│   ├── export.ts # Aggregated export for session selectors
│   ├── index.ts # Entry file for session selectors
│   ├── list.test.ts # Tests for list selectors
│   └── list.ts # Definitions for list-related selectors
└── store.ts # Creation and usage of SessionStore
```
## Implementation of SessionStore
In LobeChat, the SessionStore is designed as the core module for managing session state and logic. It consists of multiple Slices, with each Slice managing a relevant portion of state and logic. Below is a simplified example of the SessionStore implementation:
#### store.ts
```ts
import { PersistOptions, devtools, persist, subscribeWithSelector } from 'zustand/middleware';
import { shallow } from 'zustand/shallow';
import { devtools } from 'zustand/middleware';
import { createWithEqualityFn } from 'zustand/traditional';
import { SessionStoreState, initialState } from './initialState';
import { AgentAction, createAgentSlice } from './slices/agent/action';
import { SessionAction, createSessionSlice } from './slices/session/action';
// =============== Aggregate createStoreFn ============ //
export type SessionStore = SessionAction & AgentAction & SessionStoreState;
const createStore: StateCreator<SessionStore, [['zustand/devtools', never]]> = (...parameters) => ({
...initialState,
...createAgentSlice(...parameters),
...createSessionSlice(...parameters),
});
// =============== Implement useStore ============ //
export const useSessionStore = createWithEqualityFn<SessionStore>()(
persist(
subscribeWithSelector(
devtools(createStore, {
name: 'LobeChat_Session' + (isDev ? '_DEV' : ''),
}),
),
persistOptions,
),
shallow,
);
```
In this `store.ts` file, we create a `useSessionStore` hook that uses the `zustand` library to create a global state manager. We merge the initialState and the state and actions of each Slice to create a complete SessionStore.
#### slices/session/action.ts
```ts
import { StateCreator } from 'zustand';
import { SessionStore } from '@/store/session';
export interface SessionActions {
/**
* A custom hook that uses SWR to fetch sessions data.
*/
useFetchSessions: () => SWRResponse<any>;
}
export const createSessionSlice: StateCreator<
SessionStore,
[['zustand/devtools', never]],
[],
SessionAction
> = (set, get) => ({
useFetchSessions: () => {
// ...logic for initializing sessions
},
// ...implementation of other actions
});
```
In the `action.ts` file, we define a `SessionActions` interface to describe session-related actions and implement a `useFetchSessions` function to create these actions. Then, we merge these actions with the initial state to form the session-related Slice.
Through this layered and modular approach, we can ensure that LobeChat's SessionStore is clear, maintainable, and easy to extend and test.
@@ -0,0 +1,216 @@
# 状态管理最佳实践
LobeChat 不同于传统 CRUD 的网页,存在大量的富交互能力,如何设计一个易于开发与易于维护的数据流架构非常重要。本篇文档将介绍 LobeChat 中的数据流管理最佳实践。
## TOC
- [概念要素](#概念要素)
- [结构分层](#结构分层)
- [LobeChat SessionStore 目录结构最佳实践](#lobechat-sessionstore-目录结构最佳实践)
- [SessionStore 的实现](#sessionstore-的实现)
## 概念要素
| 概念名词 | 解释 |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| store | 状态库 (store),包含存储应用的状态、动作。允许在应用渲染中访问和修改状态。 |
| state | 状态 (state) 是指应用程序的数据,存储了应用程序的当前状态,状态的变化**一定会触发应用的重新渲染**,以反映新的状态。 |
| action | 动作 (action) 是一个操作函数,它描述了应用程序中发生的交互事件。动作通常是由用户交互、网络请求或定时器等触发。 action 可以是**同步**的,也可以是**异步**的。 |
| reducer | 归约器 (reducer) 是一个纯函数,它接收当前状态和动作作为参数,并返回一个新的状态。它用于根据动作类型来更新应用程序的状态。Reducer 是一个纯函数,不存在副作用,因此一定是 **同步** 函数。 |
| selector | 选择器 (selector) 是一个函数,用于从应用程序的状态中获取特定的数据。它接收应用程序的状态作为参数,并返回经过计算或转换后的数据。Selector 可以将状态的一部分或多个状态组合起来,以生成派生的数据。Selector 通常用于将应用程序的状态映射到组件的 props,以供组件使用。 |
| slice | 切片 (slice) 是一个概念,用于表达数据模型状态的一部分。它指定了一个状态切片(slice),以及与该切片相关的 state、action、reducer 和 selector。使用 Slice 可以将大型的 Store 拆分为更小的、可维护的子类型。 |
## 结构分层
在不同的复杂度下,我们可以将 Store 的结构组织可以由很大的不同:
- **较低复杂度**:一般包含 2\~5 个 state 、3 \~ 4 个 action。此时的结构一般直接一个 `store.ts` + 一个 `initialState.ts` 即可。
```bash
DataFill/store
├── index.ts
└── initialState.ts
```
- **一般复杂度** :一般复杂度存在 5 \~ 15 个 state、 5 \~ 10 个 action,可能会存在 selector 实现派生状态,也有可能存在 reducer 简化部分数据变更的复杂度。此时的结构一般为一个 `store.ts` + 一个 `initialState.ts` + 一个 `selectors.ts`/`reducer.ts`
```bash
IconPicker/store
├── index.ts
├── initialState.ts
├── selectors.ts
└── store.ts
```
```bash
SortableList/store
├── index.ts
├── initialState.ts
├── listDataReducer.ts
└── store.ts
```
- **中等复杂度** : 中等复杂度存在 15 \~ 30 个 state、 10 \~ 20 个 action,大概率会存在 selector 来聚合派生状态,大概率存在 reducer 简化部分数据变更的复杂度。
此时结构,用单一的 action store 已经较难维护,往往会拆解出来多个 slice 用于管理不同的 action。 下方的代码代表了 `SortableTree` 组件的内部数据流:
```bash
SortableTree/store
├── index.ts
├── initialState.ts
├── selectors.ts
├── slices
├── crudSlice.ts
├── dndSlice.ts
└── selectionSlice.ts
├── store.ts
└── treeDataReducer.ts
```
- 高等复杂度:高等复杂度存在 30 个以上的 state、 20 个以上的 action。必然需要 slice 做模块化内聚。在每个 slice 中都各自声明了各自的 initState、 action、reducer 与 selector。
下述这个数据流的目录结构是之前一版 SessionStore,具有很高的复杂度,实现了大量的业务逻辑。但借助于 slice 的模块化和分形架构的心智,我们可以很容易地找到对应的模块,新增功能与迭代都很易于维护。
```bash
LobeChat SessionStore
├── index.ts
├── initialState.ts
├── selectors.ts
├── slices
│ ├── agentConfig
│ │ ├── action.ts
│ │ ├── index.ts
│ │ ├── initialState.ts
│ │ └── selectors.ts
│ ├── chat
│ │ ├── actions
│ │ │ ├── index.ts
│ │ │ ├── message.ts
│ │ │ └── topic.ts
│ │ ├── index.ts
│ │ ├── initialState.ts
│ │ ├── reducers
│ │ │ ├── message.ts
│ │ │ └── topic.ts
│ │ ├── selectors
│ │ │ ├── chat.ts
│ │ │ ├── index.ts
│ │ │ ├── token.ts
│ │ │ ├── topic.ts
│ │ │ └── utils.ts
│ │ └── utils.ts
│ └── session
│ ├── action.ts
│ ├── index.ts
│ ├── initialState.ts
│ ├── reducers
│ │ └── session.ts
│ └── selectors
│ ├── export.ts
│ ├── index.ts
│ └── list.ts
└── store.ts
```
### LobeChat SessionStore 目录结构最佳实践
在 LobeChat 应用中,由于会话管理是一个复杂的功能模块,因此我们采用了 [slice 模式](https://github.com/pmndrs/zustand/blob/main/docs/guides/slices-pattern.md) 来组织数据流。下面是 LobeChat SessionStore 的目录结构,其中每个目录和文件都有其特定的用途:
```fish
src/store/session
├── index.ts # SessionStore 的聚合导出文件
├── initialState.ts # 聚合了所有 slice 的 initialState
├── selectors.ts # 从各个 slices 导出的 selector
├── store.ts # SessionStore 的创建和使用
├── helpers.ts # 辅助函数
└── slices # 各个独立的功能切片
   ├── agent # 助理 Slice
   │   ├── action.ts
   │   ├── index.ts
   │   └── selectors.ts
   └── session # 会话 Slice
      ├── action.ts
      ├── helpers.ts
      ├── initialState.ts
      └── selectors
         ├── export.ts
         ├── list.ts
         └── index.ts
```
## SessionStore 的实现
在 LobeChat 中,SessionStore 被设计为管理会话状态和逻辑的核心模块。它由多个 Slices 组成,每个 Slice 管理一部分相关的状态和逻辑。下面是一个简化的 SessionStore 的实现示例:
#### store.ts
```ts
import { PersistOptions, devtools, persist, subscribeWithSelector } from 'zustand/middleware';
import { shallow } from 'zustand/shallow';
import { devtools } from 'zustand/middleware';
import { createWithEqualityFn } from 'zustand/traditional';
import { SessionStoreState, initialState } from './initialState';
import { AgentAction, createAgentSlice } from './slices/agent/action';
import { SessionAction, createSessionSlice } from './slices/session/action';
// =============== 聚合 createStoreFn ============ //
export type SessionStore = SessionAction & AgentAction & SessionStoreState;
const createStore: StateCreator<SessionStore, [['zustand/devtools', never]]> = (...parameters) => ({
...initialState,
...createAgentSlice(...parameters),
...createSessionSlice(...parameters),
});
// =============== 实装 useStore ============ //
export const useSessionStore = createWithEqualityFn<SessionStore>()(
persist(
subscribeWithSelector(
devtools(createStore, {
name: 'LobeChat_Session' + (isDev ? '_DEV' : ''),
}),
),
persistOptions,
),
shallow,
);
```
在这个 `store.ts` 文件中,我们创建了一个 `useSessionStore` 钩子,它使用 `zustand` 库来创建一个全局状态管理器。我们将 initialState 和每个 Slice 的状态和动作合并,以创建完整的 SessionStore。
#### slices/session/action.ts
```ts
import { StateCreator } from 'zustand';
import { SessionStore } from '@/store/session';
export interface SessionActions {
/**
* A custom hook that uses SWR to fetch sessions data.
*/
useFetchSessions: () => SWRResponse<any>;
}
export const createSessionSlice: StateCreator<
SessionStore,
[['zustand/devtools', never]],
[],
SessionAction
> = (set, get) => ({
useFetchSessions: () => {
// ...初始化会话的逻辑
},
// ...其他动作的实现
});
```
`action.ts` 文件中,我们定义了一个 `SessionActions` 接口来描述会话相关的动作,并且实现了一个 `useFetchSessions` 函数来创建这些动作。然后,我们将这些动作与初始状态合并,以形成会话相关的 Slice。
通过这种结构分层和模块化的方法,我们可以确保 LobeChat 的 SessionStore 是清晰、可维护的,同时也便于扩展和测试。
@@ -0,0 +1,68 @@
# Data Store Selector
Selectors are data retrieval modules under the LobeChat data flow development framework. Their role is to extract data from the store using specific business logic for consumption by components.
Taking `src/store/plugin/selectors.ts` as an example:
This TypeScript code snippet defines an object named `pluginSelectors`, which contains a series of selector functions used to retrieve data from the plugin storage state. Selectors are functions that extract and derive data from a Redux store (or similar state management library). This specific example is for managing the state related to the frontend application's plugin system.
Here are some key points to note:
- `enabledSchema`: A function that returns an array of `ChatCompletionFunctions` filtered based on the enabled plugin list `enabledPlugins`. It appends the plugin identifier as a prefix to the API names to ensure uniqueness and uses the `uniqBy` function from the Lodash library to remove duplicates.
- `onlinePluginStore`: Returns the current online plugin list.
- `pluginList`: Returns the list of plugins, including custom plugins and standard plugins.
- `getPluginMetaById`: Returns the plugin metadata based on the plugin ID.
- `getDevPluginById`: Returns information about the custom plugins in development.
- `getPluginManifestById`: Returns the plugin manifest based on the plugin ID.
- `getPluginSettingsById`: Returns the plugin settings based on the plugin ID.
- `getPluginManifestLoadingStatus`: Returns the loading status of the plugin manifest (loading, success, or error) based on the plugin ID.
- `isCustomPlugin`: Checks if the plugin with the given ID is a custom plugin.
- `displayPluginList`: Returns a processed plugin list, including author, avatar, creation time, description, homepage URL, identifier, and title.
- `hasPluginUI`: Determines if the plugin has UI components based on the plugin ID.
Selectors are highly modular and maintainable. By encapsulating complex state selection logic in separate functions, they make the code more concise and intuitive when accessing state data in other parts of the application. Additionally, by using TypeScript, each function can have clear input and output types, which helps improve code reliability and development efficiency.
Taking the `displayPluginList` method as an example, its code is as follows:
```ts
const pluginList = (s: PluginStoreState) => [...s.pluginList, ...s.customPluginList];
const displayPluginList = (s: PluginStoreState) =>
pluginList(s).map((p) => ({
author: p.author,
avatar: p.meta?.avatar,
createAt: p.createAt,
desc: pluginHelpers.getPluginDesc(p.meta),
homepage: p.homepage,
identifier: p.identifier,
title: pluginHelpers.getPluginTitle(p.meta),
}));
```
- `pluginList` method: Used to retrieve the list of all plugins from the plugin state storage `PluginStoreState`. It creates a new plugin list by combining two arrays: `pluginList` and `customPluginList`.
- `displayPluginList` method: Calls the `pluginList` method to retrieve the merged plugin list and transforms the `title` and `desc` into text displayed on the UI.
In components, the final consumed data can be directly obtained by importing:
```tsx | pure
import { usePluginStore } from '@/store/plugin';
import { pluginSelectors } from '@/store/plugin/selectors';
const Render = ({ plugins }) => {
const list = usePluginStore(pluginSelectors.displayPluginList);
return <> ... </>;
};
```
The benefits of implementing this approach are:
1. **Decoupling and reusability**: By separating selectors from components, we can reuse these selectors across multiple components without rewriting data retrieval logic. This reduces duplicate code, improves development efficiency, and makes the codebase cleaner and easier to maintain.
2. **Performance optimization**: Selectors can be used to compute derived data, avoiding redundant calculations in each component. When the state changes, only the selectors dependent on that part of the state will recalculate, reducing unnecessary rendering and computation.
3. **Ease of testing**: Selectors are pure functions, relying only on the passed parameters. This means they can be tested in an isolated environment without the need to simulate the entire store or component tree.
4. **Type safety**: As LobeChat uses TypeScript, each selector has explicit input and output type definitions. This provides developers with the advantage of auto-completion and compile-time checks, reducing runtime errors.
5. **Maintainability**: Selectors centralize the logic for reading state, making it more intuitive to track state changes and management. If the state structure changes, only the relevant selectors need to be updated, rather than searching and replacing in multiple places throughout the codebase.
6. **Composability**: Selectors can be composed with other selectors to create more complex selection logic. This pattern allows developers to build a hierarchy of selectors, making state selection more flexible and powerful.
7. **Simplified component logic**: Components do not need to know the structure of the state or how to retrieve and compute the required data. Components only need to call selectors to obtain the data needed for rendering, simplifying and clarifying component logic.
With this design, LobeChat developers can focus more on building the user interface and business logic without worrying about the details of data retrieval and processing. This pattern also provides better adaptability and scalability for potential future changes in state structure.
@@ -0,0 +1,49 @@
# 数据存储取数模块
selectors 是 LobeChat 数据流研发框架下的取数模块,它的作用是从 store 中以特定特务逻辑取出数据,供组件消费使用。
`src/store/tool/slices/plugin/selectors.ts` 为例:
这个 TypeScript 代码段定义了一个名为 `pluginSelectors` 的对象,该对象包含一系列用于从插件存储状态中检索数据的选择器函数。选择器是一种从 zustand 中提取和派生数据的函数。这个特定的例子是为了管理与前端应用程序的插件系统相关的状态。
下面是一些关键点的说明:
- `getCustomPluginById`: 根据插件 ID 返回自定义插件信息。
- `getInstalledPluginById`: 根据插件 ID 返回已安装插件的信息。
- `getPluginManifestById`: 根据插件 ID 返回插件清单。
- `getPluginMetaById`: 根据插件 ID 返回插件元数据。
- `getPluginSettingsById`: 根据插件 ID 返回插件设置。
- `installedCustomPluginMetaList`: 返回所有已安装的自定义插件的元数据列表。
- `installedPluginManifestList`: 返回所有已安装插件的清单列表。
- `installedPluginMetaList`: 返回所有已安装插件的元数据列表。
- `installedPlugins`: 返回所有已安装插件的列表。
- `isPluginHasUI`: 根据插件 ID 确定插件是否有 UI 组件。
- `isPluginInstalled`: 根据插件 ID 检查插件是否已安装。
- `storeAndInstallPluginsIdList`: 返回 store 中和已安装插件的所有 ID 列表。
选择器通过将复杂的状态选择逻辑封装在单独的函数中,使得在应用程序的其他部分调用状态数据时,代码更加简洁和直观。此外,由于使用了 TypeScript,每个函数都可以具有明确的输入和输出类型,这有助于提高代码的可靠性和开发效率。
在组件中,只需引入相应的选择器即可直接获取最终消费的数据:
```tsx | pure
import { useToolStore } from '@/store/tool';
import { pluginSelectors } from '@/store/tool/selectors';
const Render = () => {
const list = useToolStore(pluginSelectors.installedPluginMetaList);
return <> ... </>;
};
```
这样实现的好处在于:
1. **解耦和重用**:通过将选择器独立于组件,我们可以在多个组件之间复用这些选择器而不需要重写取数逻辑。这减少了重复代码,提高了开发效率,并且使得代码库更加干净和易于维护。
2. **性能优化**:选择器可以用来计算派生数据,这样可以避免在每个组件中重复计算相同的数据。当状态发生变化时,只有依赖于这部分状态的选择器才会重新计算,从而减少不必要的渲染和计算。
3. **易于测试**:选择器是纯函数,它们仅依赖于传入的参数。这意味着它们可以在隔离的环境中进行测试,无需模拟整个 store 或组件树。
4. **类型安全**:由于 LobeChat 使用 TypeScript,每个选择器都有明确的输入和输出类型定义。这为开发者提供了自动完成和编译时检查的优势,减少了运行时错误。
5. **可维护性**:选择器集中了状态的读取逻辑,使得跟踪状态的变化和管理更加直观。如果状态结构发生变化,我们只需要更新相应的选择器,而不是搜索和替换整个代码库中的多个位置。
6. **可组合性**:选择器可以组合其他选择器,以创建更复杂的选择逻辑。这种模式允许开发者构建一个选择器层次结构,使得状态选择更加灵活和强大。
7. **简化组件逻辑**:组件不需要知道状态的结构或如何获取和计算需要的数据。组件只需调用选择器即可获取渲染所需的数据,这使得组件逻辑变得更简单和清晰。
通过这样的设计,LobeChat 的开发者可以更专注于构建用户界面和业务逻辑,而不必担心数据的获取和处理细节。这种模式也为未来可能的状态结构变更提供了更好的适应性和扩展性。
+58
View File
@@ -0,0 +1,58 @@
# Upstream Sync
English | [简体中文](https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync.zh-CN)
## `A` Vercel / Zeabur Deployment
If you have deployed your own project following the one-click deployment steps in the README, you might encounter constant prompts indicating "updates available". This is because Vercel defaults to creating a new project instead of forking this one, resulting in an inability to accurately detect updates. We suggest you redeploy using the following steps:
- Remove the original repository;
- Use the <kbd>Fork</kbd> button at the top right corner of the page to fork this project;
- Re-select and deploy on `Vercel`.
## Enabling Automatic Updates
> \[!NOTE]
>
> If you encounter an error executing Upstream Sync, manually Sync Fork once
Once you have forked the project, due to Github restrictions, you will need to manually enable Workflows on the Actions page of your forked project and activate the Upstream Sync Action. Once enabled, you can set up hourly automatic updates.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/266985117-4d48fe7b-0412-4667-8129-b25ebcf2c9de.png)
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/266985177-7677b4ce-c348-4145-9f60-829d448d5be6.png)
## `B` Docker Deployment
Upgrading the Docker deployment version is very simple, just redeploy the latest image of LobeChat. Here are the instructions to perform these steps:
1. Stop and delete the currently running LobeChat container (assuming the name of the LobeChat container is `lobe-chat`):
```fish
docker stop lobe-chat
docker rm lobe-chat
```
2. Pull the latest Docker image of LobeChat:
```fish
docker pull lobehub/lobe-chat
```
3. Redeploy the LobeChat container using the newly pulled image:
```fish
docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e OPENAI_PROXY_URL=https://api-proxy.com/v1 \
-e ACCESS_CODE=lobe66 \
--name lobe-chat \
lobehub/lobe-chat
```
Make sure you have sufficient permissions to stop and delete the container before executing these commands, and Docker has sufficient permissions to pull the new image.
> \[!NOTE]
>
> If I redeploy, will my local chat history be lost?
>
> Don't worry, all of LobeChat's chat history is stored in your local browser. Therefore, when you redeploy LobeChat using Docker, your chat history will not be lost.
+58
View File
@@ -0,0 +1,58 @@
# 自部署保持更新
[English](https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync) | 简体中文
## `A` Vercel / Zeabur 部署
如果你根据 README 中的一键部署步骤部署了自己的项目,你可能会发现总是被提示 “有可用更新”。这是因为 Vercel 默认为你创建新项目而非 fork 本项目,这将导致无法准确检测更新。我们建议按照以下步骤重新部署:
- 删除原有的仓库;
- 使用页面右上角的 <kbd>Fork</kbd> 按钮,Fork 本项目;
-`Vercel` 上重新选择并部署。
### 启动自动更新
> \[!NOTE]
>
> 如果你在执行 `Upstream Sync` 时遇到错误,请手动执再行一次
当你 Fork 了项目后,由于 Github 的限制,你需要手动在你 Fork 的项目的 Actions 页面启用 Workflows,并启动 Upstream Sync Action。启用后,你可以设置每小时进行一次自动更新。
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/266985117-4d48fe7b-0412-4667-8129-b25ebcf2c9de.png)
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/266985177-7677b4ce-c348-4145-9f60-829d448d5be6.png)
## `B` Docker 部署
Docker 部署版本的升级非常简单,只需要重新部署 LobeChat 的最新镜像即可。 以下是执行这些步骤所需的指令:
1. 停止并删除当前运行的 LobeChat 容器(假设 LobeChat 容器的名称是 `lobe-chat`):
```fish
docker stop lobe-chat
docker rm lobe-chat
```
2. 拉取 LobeChat 的最新 Docker 镜像:
```fish
docker pull lobehub/lobe-chat
```
3. 使用新拉取的镜像重新部署 LobeChat 容器:
```fish
docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e OPENAI_PROXY_URL=https://api-proxy.com/v1 \
-e ACCESS_CODE=lobe66 \
--name lobe-chat \
lobehub/lobe-chat
```
确保在执行这些命令之前,您有足够的权限来停止和删除容器,并且 Docker 有足够的权限来拉取新的镜像。
> \[!NOTE]
>
> 重新部署的话,我本地的聊天记录会丢失吗?
>
> 放心,LobeChat 的聊天记录全部都存储在你的本地浏览器中。因此使用 Docker 重新部署 LobeChat 时,你的聊天记录并不会丢失。
+48
View File
@@ -0,0 +1,48 @@
## Lobe Chat Contributing Wiki
#### 🏠 Home
- [TOC](Home.md) | [目录](Home.md)
<!-- DOCS LIST -->
#### 🤯 Basic
- [Architecture Design](https://github.com/lobehub/lobe-chat/wiki/Architecture) | [架构设计](https://github.com/lobehub/lobe-chat/wiki/Architecture.zh-CN)
- [Code Style and Contribution Guidelines](https://github.com/lobehub/lobe-chat/wiki/Contributing-Guidelines) | [代码风格与贡献指南](https://github.com/lobehub/lobe-chat/wiki/Contributing-Guidelines.zh-CN)
- [Complete Guide to LobeChat Feature Development](https://github.com/lobehub/lobe-chat/wiki/Feature-Development) | [LobeChat 功能开发完全指南](https://github.com/lobehub/lobe-chat/wiki/Feature-Development.zh-CN)
- [Conversation API Implementation Logic](https://github.com/lobehub/lobe-chat/wiki/Chat-API) | [会话 API 实现逻辑](https://github.com/lobehub/lobe-chat/wiki/Chat-API.zh-CN)
- [Directory Structure](https://github.com/lobehub/lobe-chat/wiki/Folder-Structure) | [目录架构](https://github.com/lobehub/lobe-chat/wiki/Folder-Structure.zh-CN)
- [Environment Setup Guide](https://github.com/lobehub/lobe-chat/wiki/Setup-Development) | [环境设置指南](https://github.com/lobehub/lobe-chat/wiki/Setup-Development.zh-CN)
- [How to Develop a New Feature](https://github.com/lobehub/lobe-chat/wiki/Feature-Development-Frontend) | [如何开发一个新功能:前端实现](https://github.com/lobehub/lobe-chat/wiki/Feature-Development-Frontend.zh-CN)
- [New Authentication Provider Guide](https://github.com/lobehub/lobe-chat/wiki/Add-New-Authentication-Providers) | [新身份验证方式开发指南](https://github.com/lobehub/lobe-chat/wiki/Add-New-Authentication-Providers.zh-CN)
- [Resources and References](https://github.com/lobehub/lobe-chat/wiki/Resources) | [资源与参考](https://github.com/lobehub/lobe-chat/wiki/Resources.zh-CN)
- [Technical Development Getting Started Guide](https://github.com/lobehub/lobe-chat/wiki/Intro) | [技术开发上手指南](https://github.com/lobehub/lobe-chat/wiki/Intro.zh-CN)
- [Testing Guide](https://github.com/lobehub/lobe-chat/wiki/Test) | [测试指南](https://github.com/lobehub/lobe-chat/wiki/Test.zh-CN)
#### 🌎 Internationalization
- [Internationalization Implementation Guide](https://github.com/lobehub/lobe-chat/wiki/Internationalization-Implementation) | [国际化实现指南](https://github.com/lobehub/lobe-chat/wiki/Internationalization-Implementation.zh-CN)
- [New Locale Guide](https://github.com/lobehub/lobe-chat/wiki/Add-New-Locale) | [新语种添加指南](https://github.com/lobehub/lobe-chat/wiki/Add-New-Locale.zh-CN)
#### ⌨️ State Management
- [Best Practices for State Management](https://github.com/lobehub/lobe-chat/wiki/State-Management-Intro) | [状态管理最佳实践](https://github.com/lobehub/lobe-chat/wiki/State-Management-Intro.zh-CN)
- [Data Store Selector](https://github.com/lobehub/lobe-chat/wiki/State-Management-Selectors) | [数据存储取数模块](https://github.com/lobehub/lobe-chat/wiki/State-Management-Selectors.zh-CN)
#### 🤖 Agents
- [Agent Index and Submit](https://github.com/lobehub/lobe-chat-agents) | [助手索引与提交](https://github.com/lobehub/lobe-chat-agents/blob/main/README.zh-CN.md)
#### 🧩 Plugins
- [Plugin Index and Submit](https://github.com/lobehub/lobe-chat-plugins) | [插件索引与提交](https://github.com/lobehub/lobe-chat-plugins/blob/main/README.zh-CN.md)
- [Plugin SDK Docs](https://chat-plugin-sdk.lobehub.com) | [插件 SDK 文档](https://chat-plugin-sdk.lobehub.com)
#### 📊 Others
- [Lighthouse Reports](https://github.com/lobehub/lobe-chat/wiki/Lighthouse) | [Lighthouse 测试报告](https://github.com/lobehub/lobe-chat/wiki/Lighthouse.zh-CN)
<!-- DOCS LIST -->
<!-- LINK GROUP -->
-19
View File
@@ -1,19 +0,0 @@
# 数据统计
为更好地帮助分析 LobeChat 的用户使用情况,我们在 LobeChat 中集成了若干免费 / 开源的数据统计服务,用于收集用户的使用情况,你可以按需开启。
## Vercel Analytics
[Vercel Analytics](https://vercel.com/analytics) 是 Vercel 推出的一款数据分析服务,它可以帮助你收集网站的访问情况,包括访问量、访问来源、访问设备等等。
由于我们推荐使用 Vercel 一键部署 LobeChat,因此我们在代码中默认集成了 Vercel Analytics,你可以通过自行打开部署项目中 \[Insights] tab,查看你的应用访问情况。
Vercel Analytics 提供了 2500 次 / 月的免费 Web Analytics Events (可以理解为 PV),对于个人部署自用的产品来说基本够用。
如果你需要了解 Vercel Analytics 的详细使用教程,请查阅[Vercel Web Analytics 快速开始](https://vercel.com/docs/analytics/quickstart)
如果你不需要 Vercel Analytics,你可以通过设置环境变量 `NEXT_PUBLIC_ANALYTICS_VERCEL=0` 来关闭它。
## 🚧 Posthog
## 🚧 Mixpanel
-53
View File
@@ -1,53 +0,0 @@
# Deploying with Azure OpenAI
LobeChat supports using [Azure OpenAI][azure-openai-url] as the model service provider for OpenAI. This document will guide you through the configuration of Azure OpenAI.
#### TOC
- [Usage Limitations](#usage-limitations)
- [Configuration in the Interface](#configuration-in-the-interface)
- [Configuration at Deployment](#configuration-at-deployment)
## Usage Limitations
Considering development costs ([#178][rfc]), the current version of LobeChat does not fully conform to Azure OpenAI's implementation model. Instead, it adopts a solution based on `openai` that is compatible with Azure OpenAI. This brings about the following limitations:
- You can only choose one between OpenAI and Azure OpenAI. Once you enable Azure OpenAI, you will not be able to use OpenAI as the model service provider.
- LobeChat requires deployment names to be the same as the model names in order to function properly. For example, the deployment name for the `gpt-35-turbo` model must be `gpt-35-turbo`, otherwise LobeChat will not be able to match the model correctly.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/267082091-d89d53d3-1c8c-40ca-ba15-0a9af2a79264.png)
- Due to the complexity of integrating the Azure OpenAI SDK, it is currently impossible to query the model list of configured resources.
## Configuration in the Interface
Click on "Operation" - "Settings" in the bottom left corner, switch to the "Language Model" tab and enable the "Azure OpenAI" switch to start using Azure OpenAI.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/267083420-422a3714-627e-4bef-9fbc-141a2a8ca916.png)
You can fill in the corresponding configuration items as needed:
- **APIKey**: The API key you applied for on the Azure OpenAI account page, which can be found in the "Keys and Endpoints" section.
- **API Address**: Azure API address, which can be found in the "Keys and Endpoints" section when checking resources from the Azure portal.
- **Azure Api Version**: The API version of Azure, which follows the YYYY-MM-DD format, refer to the [latest version][azure-api-verion-url].
After completing the above field configuration, click on "Check". If the prompt says "Check Passed", it means the configuration was successful.
<br/>
## Configuration at Deployment
If you want the deployed version to be directly configured with Azure OpenAI for end users to use immediately, you need to configure the following environment variables at deployment:
| Environment Variable | Required | Description | Default Value | Example |
| -------------------- | -------- | --------------------------------------------------------------------------------- | ------------------ | ------------------------------------------------------------- |
| `USE_AZURE_OPENAI` | Yes | Set this value to `1` to enable Azure OpenAI configuration | - | `1` |
| `AZURE_API_KEY` | Yes | This is the API key you applied for on the Azure OpenAI account page | - | `c55168be3874490ef0565d9779ecd5a6` |
| `OPENAI_PROXY_URL` | Yes | Azure API address, can be found in the "Keys and Endpoints" section | - | `https://docs-test-001.openai.azure.com` |
| `AZURE_API_VERSION` | No | Azure's API version, follows the YYYY-MM-DD format | 2023-08-01-preview | `2023-05-15`, refer to [latest version][azure-api-verion-url] |
| `ACCESS_CODE` | No | Add a password to access this service, the password should be 6 digits or letters | - | `awCT74` or `e3@09!` |
> **Note**\
> When you enable `USE_AZURE_OPENAI` on the server side, users will not be able to modify and use the OpenAI key in the front-end configuration.
[azure-api-verion-url]: https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions
[azure-openai-url]: https://learn.microsoft.com/zh-cn/azure/ai-services/openai/concepts/models
[rfc]: https://github.com/lobehub/lobe-chat/discussions/178
-53
View File
@@ -1,53 +0,0 @@
# 使用 Azure OpenAI 部署
LobeChat 支持使用 [Azure OpenAI][azure-openai-url] 作为 OpenAI 的模型服务商,本文将介绍如何配置 Azure OpenAI。
#### TOC
- [使用限制](#使用限制)
- [在界面中配置](#在界面中配置)
- [在部署时配置](#在部署时配置)
## 使用限制
从研发成本考虑 ([#178][rfc]),目前阶段的 LobeChat 并没有 100% 完全符合 Azure OpenAI 的实现模型,采用了以 `openai` 为基座,兼容 Azure OpeAI 的解决方案。因此会带来以下局限性:
- OpenAI 与 Azure OpenAI 只能二选一,当你开启使用 Azure OpenAI 后,将无法使用 OpenAI 作为模型服务商;
- LobeChat 约定了与模型同名的部署名才能正常使用,比如 `gpt-35-turbo` 模型的部署名,必须为 `gpt-35-turbo`,否则 LobeChat 将无法正常正确匹配到相应模型
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/267082091-d89d53d3-1c8c-40ca-ba15-0a9af2a79264.png)
- 由于 Azure OpenAI 的 SDK 接入复杂度,当前无法查询配置资源的模型列表;
## 在界面中配置
点击左下角「操作」 -「设置」,切到 「语言模型」 Tab 后通过开启「Azure OpenAI」开关,即可开启使用 Azure OpenAI。
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/267083420-422a3714-627e-4bef-9fbc-141a2a8ca916.png)
你按需填写相应的配置项:
- **APIKey**:你在 Azure OpenAI 账户页面申请的 API 密钥,可在 “密钥和终结点” 部分中找到此值
- **API 地址**Azure API 地址,从 Azure 门户检查资源时,可在 “密钥和终结点” 部分中找到此值
- **Azure Api Version** Azure 的 API 版本,遵循 YYYY-MM-DD 格式,查阅[最新版本][azure-api-verion-url]
完成上述字段配置后,点击「检查」,如果提示「检查通过」,则说明配置成功。
<br/>
## 在部署时配置
如果你希望部署的版本直接配置好 Azure OpenAI,让终端用户直接使用,那么你需要在部署时配置以下环境变量:
| 环境变量 | 类型 | 描述 | 默认值 | 示例 |
| ------------------- | ---- | --------------------------------------------------------------------------- | ------------------ | -------------------------------------------------- |
| `USE_AZURE_OPENAI` | 必选 | 设置改值为 `1` 开启 Azure OpenAI 配置 | - | `1` |
| `AZURE_API_KEY` | 必选 | 这是你在 Azure OpenAI 账户页面申请的 API 密钥 | - | `c55168be3874490ef0565d9779ecd5a6` |
| `OPENAI_PROXY_URL` | 必选 | Azure API 地址,从 Azure 门户检查资源时,可在 “密钥和终结点” 部分中找到此值 | - | `https://docs-test-001.openai.azure.com` |
| `AZURE_API_VERSION` | 可选 | Azure 的 API 版本,遵循 YYYY-MM-DD 格式 | 2023-08-01-preview | `2023-05-15`,查阅[最新版本][azure-api-verion-url] |
| `ACCESS_CODE` | 可选 | 添加访问此服务的密码,密码应为 6 位数字或字母 | - | `awCT74``e3@09!` |
> **Note**\
> 当你在服务端开启 `USE_AZURE_OPENAI` 后,用户将无法在前端配置中修改并使用 OpenAI key。
[azure-api-verion-url]: https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions
[azure-openai-url]: https://learn.microsoft.com/zh-cn/azure/ai-services/openai/concepts/models
[rfc]: https://github.com/lobehub/lobe-chat/discussions/178
-132
View File
@@ -1,132 +0,0 @@
# LobeChat Environment Variables
LobeChat provides additional configuration options during deployment, which can be set using environment variables
#### TOC
- [General Variables](#general-variables)
- [`ACCESS_CODE`](#access_code)
- [OpenAI](#openai)
- [`OPENAI_API_KEY`](#openai_api_key)
- [`OPENAI_PROXY_URL`](#openai_proxy_url)
- [Azure OpenAI](#azure-openai)
- [`USE_AZURE_OPENAI`](#use_azure_openai)
- [`AZURE_API_KEY`](#azure_api_key)
- [`AZURE_API_VERSION`](#azure_api_version)
- [Plugin Service](#plugin-service)
- [`PLUGINS_INDEX_URL`](#plugins_index_url)
- [Agent Service](#agent-service)
- [`AGENTS_INDEX_URL`](#agents_index_url)
- [Data Analytics](#data-analytics)
- [Posthog Analytics](#posthog-analytics)
## General Variables
### `ACCESS_CODE`
- Type: Optional
- Description: Add a password to access the LobeChat service, the password should be 6 digits or letters
- Default: -
- Example: `awCT74` or `e3@09!`
<br/>
## OpenAI
### `OPENAI_API_KEY`
- Type: Required
- Description: This is the API key you apply for on the OpenAI account page, you can go [here][openai-api-page] to view
- Default: -
- Example: `sk-xxxxxx...xxxxxx`
### `OPENAI_PROXY_URL`
- Type: Optional
- Description: If you manually configure the OpenAI interface proxy, you can use this configuration item to override the default OpenAI API request base URL
- Default: `https://api.openai.com`
- Example: `https://api.chatanywhere.cn`
<br/>
## Azure OpenAI
If you need to use Azure OpenAI to provide model services, you can refer to the [Deploy with Azure OpenAI](./Deploy-with-Azure-OpenAI.zh-CN.md) section for detailed steps. Here are the environment variables related to Azure OpenAI.
### `USE_AZURE_OPENAI`
- Type: Optional
- Description: Set this value to `1` to enable Azure OpenAI configuration
- Default: -
- Example: `1`
### `AZURE_API_KEY`
- Type: Optional
- Description: This is the API key you apply for on the Azure OpenAI account page
- Default: -
- Example: `c55168be3874490ef0565d9779ecd5a6`
### `AZURE_API_VERSION`
- Type: Optional
- Description: Azure's API version, following the YYYY-MM-DD format
- Default: `2023-08-01-preview`
- Example: `2023-05-15`, refer to [latest version][azure-api-verion-url]
<br/>
## Plugin Service
### `PLUGINS_INDEX_URL`
- Type: Optional
- Description: The index address of the LobeChat plugin market. If you have deployed the plugin market service yourself, you can use this variable to override the default plugin market address
- Default: `https://chat-plugins.lobehub.com`
<br/>
## Agent Service
### `AGENTS_INDEX_URL`
- Type: Optional
- Description: The index address of the LobeChat role market. If you have deployed the role market service yourself, you can use this variable to override the default plugin market address
- Default: `https://chat-agents.lobehub.com`
<br/>
## Data Analytics
### Posthog Analytics
#### `NEXT_PUBLIC_ANALYTICS_POSTHOG`
- Type: Optional
- Description: Environment variable to enable \[PostHog Analytics]\[posthog-analytics-url]. Set to `1` to enable PostHog Analytics.
- Default: -
- Example: `1`
#### `NEXT_PUBLIC_POSTHOG_KEY`
- Type: Optional
- Description: Set the PostHog project key.
- Default: -
- Example: `phc_xxxxxxxx`
#### `NEXT_PUBLIC_POSTHOG_HOST`
- Type: Optional
- Description: Set the deployment address of the PostHog service. Default is the official SAAS address.
- Default: `https://app.posthog.com`
- Example: `https://example.com`
#### `NEXT_PUBLIC_POSTHOG_DEBUG`
- Type: Optional
- Description: Enable debug mode for PostHog.
- Default: -
- Example: `1`
[azure-api-verion-url]: https://docs.microsoft.com/zh-cn/azure/developer/javascript/api-reference/es-modules/azure-sdk/ai-translation/translationconfiguration?view=azure-node-latest#api-version
[openai-api-page]: https://platform.openai.com/account/api-keys
-174
View File
@@ -1,174 +0,0 @@
# LobeChat 环境变量
LobeChat 在部署时提供了一些额外的配置项,使用环境变量进行设置
#### TOC
- [通用变量](#通用变量)
- [`ACCESS_CODE`](#access_code)
- [OpenAI](#openai)
- [`OPENAI_API_KEY`](#openai_api_key)
- [`OPENAI_PROXY_URL`](#openai_proxy_url)
- [Azure OpenAI](#azure-openai)
- [`USE_AZURE_OPENAI`](#use_azure_openai)
- [`AZURE_API_KEY`](#azure_api_key)
- [`AZURE_API_VERSION`](#azure_api_version)
- [插件服务](#插件服务)
- [`PLUGINS_INDEX_URL`](#plugins_index_url)
- [角色服务](#角色服务)
- [`AGENTS_INDEX_URL`](#agents_index_url)
- [数据统计](#数据统计)
- [Vercel Analytics](#vercel-analytics)
- [Mixpanel Analytics](#mixpanel-analytics)
- [Posthog Analytics](#posthog-analytics)
## 通用变量
### `ACCESS_CODE`
- 类型:可选
- 描述:添加访问 LobeChat 服务的密码,密码应为 6 位数字或字母
- 默认值:-
- 示例:`awCT74``e3@09!`
<br/>
## OpenAI
### `OPENAI_API_KEY`
- 类型:必选
- 描述:这是你在 OpenAI 账户页面申请的 API 密钥,可以前往[这里][openai-api-page]查看
- 默认值:-
- 示例:`sk-xxxxxx...xxxxxx`
### `OPENAI_PROXY_URL`
- 类型:可选
- 描述:如果你手动配置了 OpenAI 接口代理,可以使用此配置项来覆盖默认的 OpenAI API 请求基础 URL
- 默认值:`https://api.openai.com`
- 示例:`https://api.chatanywhere.cn`
<br/>
## Azure OpenAI
如果你需要使用 Azure OpenAI 来提供模型服务,可以查阅 [使用 Azure OpenAI 部署](./Deploy-with-Azure-OpenAI.zh-CN.md) 章节查看详细步骤,这里将列举和 Azure OpenAI 相关的环境变量。
### `USE_AZURE_OPENAI`
- 类型:可选
- 描述:设置该值为 `1` 开启 Azure OpenAI 配置
- 默认值:-
- 示例:`1`
### `AZURE_API_KEY`
- 类型:可选
- 描述:这是你在 Azure OpenAI 账户页面申请的 API 密钥
- 默认值:-
- 示例:`c55168be3874490ef0565d9779ecd5a6`
### `AZURE_API_VERSION`
- 类型:可选
- 描述:Azure 的 API 版本,遵循 YYYY-MM-DD 格式
- 默认值:`2023-08-01-preview`
- 示例:`2023-05-15`,查阅[最新版本][azure-api-verion-url]
<br/>
## 插件服务
### `PLUGINS_INDEX_URL`
- 类型:可选
- 描述:LobeChat 插件市场的索引地址,如果你自行部署了插件市场的服务,可以使用该变量来覆盖默认的插件市场地址
- 默认值:`https://chat-plugins.lobehub.com`
<br/>
## 角色服务
### `AGENTS_INDEX_URL`
- 类型:可选
- 描述:LobeChat 角色市场的索引地址,如果你自行部署了角色市场的服务,可以使用该变量来覆盖默认的插件市场地址
- 默认值:`https://chat-agents.lobehub.com`
## 数据统计
### Vercel Analytics
#### `NEXT_PUBLIC_ANALYTICS_VERCEL`
- 类型:可选
- 描述:用于配置 Vercel Analytics 的环境变量,当设为 `0` 则关闭 Vercel Analytics
- 默认值: -
- 示例:`0`
#### `NEXT_PUBLIC_VERCEL_DEBUG`
- 类型:可选
- 描述:用于开启 Vercel Analytics 的调试模式
- 默认值: -
- 示例:`1`
### Mixpanel Analytics
#### `NEXT_PUBLIC_ANALYTICS_MIXPANEL`
- 类型:可选
- 描述:用于开启 [Mixpanel Analytics][mixpanel-analytics-url] 的环境变量,设为 `1` 时开启 Mixpanel Analytics
- 默认值: -
- 示例:`1`
#### `NEXT_PUBLIC_MIXPANEL_PROJECT_TOKEN`
- 类型:可选
- 描述:设置 Mixpanel 项目的识别 Token,可以在[这里][mixpanel-project-url]找到
- 默认值: -
- 示例:`60db2abae7fdd29961f4e8f91b074b3a`
#### `NEXT_PUBLIC_MIXPANEL_DEBUG`
- 类型:可选
- 描述:开启 Mixpanel 的调试模式
- 默认值: -
- 示例:`1`
### Posthog Analytics
#### `NEXT_PUBLIC_ANALYTICS_POSTHOG`
- 类型:可选
- 描述:用于开启 [PostHog Analytics][posthog-analytics-url] 的环境变量,设为 `1` 时开启 PostHog Analytics
- 默认值: -
- 示例:`1`
#### `NEXT_PUBLIC_POSTHOG_KEY`
- 类型:可选
- 描述:设置 PostHog 项目 Key
- 默认值: -
- 示例:`phc_xxxxxxxx`
#### `NEXT_PUBLIC_POSTHOG_HOST`
- 类型:可选
- 描述:设置 PostHog 服务的部署地址,默认为官方的 SAAS 地址
- 默认值:`https://app.posthog.com`
- 示例:`https://example.com`
#### `NEXT_PUBLIC_POSTHOG_DEBUG`
- 类型:可选
- 描述:开启 PostHog 的调试模式
- 默认值: -
- 示例:`1`
[azure-api-verion-url]: https://docs.microsoft.com/zh-cn/azure/developer/javascript/api-reference/es-modules/azure-sdk/ai-translation/translationconfiguration?view=azure-node-latest#api-version
[mixpanel-analytics-url]: https://mixpanel.com
[mixpanel-project-url]: https://mixpanel.com/settings/project
[openai-api-page]: https://platform.openai.com/account/api-keys
[posthog-analytics-url]: https://posthog.com
-58
View File
@@ -1,58 +0,0 @@
<div align="center">
<img height="120" src="https://registry.npmmirror.com/@lobehub/assets-logo/1.0.0/files/assets/logo-3d.webp">
<img height="120" src="https://gw.alipayobjects.com/zos/kitchen/qJ3l3EPsdW/split.svg">
<img height="120" src="https://registry.npmmirror.com/@lobehub/assets-emoji/1.3.0/files/assets/robot.webp">
<h1>Lobe Chat Wiki</h1>
LobeChat is a open-source, extensible ([Function Calling][fc-url]), high-performance chatbot framework. <br/> It supports one-click free deployment of your private ChatGPT/LLM web application.
</div>
![](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)
### 🤯 LobeChat
- [Environment Variables](Environment-Variable) | [环境变量](Environment-Variable.zh-CN)
- [Maintaining Updates with LobeChat Self-Deployment](Upstream-Sync) | [自部署保持更新](Upstream-Sync.zh-CN)
- [Deploying with Azure OpenAI](Deploy-with-Azure-OpenAI) | [使用 Azure OpenAI 部署](Deploy-with-Azure-OpenAI.zh-CN)
---
### 🤖 Agents
- [Agent Index and Submit][agent-index] | [助手索引与提交][agent-index-cn]
---
### 🧩 Plugins
- [Plugin Index and Submit][plugin-index] | [插件索引与提交][plugin-index-cn]
- [Plugin Development](Plugin-Development) | [插件开发](Plugin-Development.zh-CN)
- [Plugin SDK Docs][plugin-sdk] | [插件 SDK 文档][plugin-skd-cn]
---
<details><summary><h4>📝 License</h4></summary>
[![][fossa-license-shield]][fossa-license-url]
</details>
Copyright © 2023 [LobeHub][profile-url]. <br />
This project is [MIT][license-url] licensed.
<!-- LINK GROUP -->
[agent-index]: https://github.com/lobehub/lobe-chat-agents
[agent-index-cn]: https://github.com/lobehub/lobe-chat-agents/blob/main/README.zh-CN.md
[fc-url]: https://sspai.com/post/81986
[fossa-license-shield]: https://app.fossa.com/api/projects/git%2Bgithub.com%2Flobehub%2Flobe-chat.svg?type=large
[fossa-license-url]: https://app.fossa.com/projects/git%2Bgithub.com%2Flobehub%2Flobe-chat
[license-url]: https://github.com/lobehub/lobe-chat/blob/main/LICENSE
[plugin-index]: https://github.com/lobehub/lobe-chat-plugins
[plugin-index-cn]: https://github.com/lobehub/lobe-chat-plugins/blob/main/README.zh-CN.md
[plugin-sdk]: https://chat-plugin-sdk.lobehub.com
[plugin-skd-cn]: https://chat-plugin-sdk.lobehub.com
[profile-url]: https://github.com/lobehub
-287
View File
@@ -1,287 +0,0 @@
# LobeChat Plugin Development
#### TOC
- [Plugin Composition](#plugin-composition)
- [Custom Plugin Workflow](#custom-plugin-workflow)
- [**`1`** Create and Start a Plugin Project](#1-create-and-start-a-plugin-project)
- [**`2`** Add the Local Plugin in LobeChat Role Settings](#2-add-the-local-plugin-in-lobechat-role-settings)
- [**`3`** Test the Plugin Functionality in a Session](#3-test-the-plugin-functionality-in-a-session)
- [Local Plugin Development](#local-plugin-development)
- [Manifest](#manifest)
- [Project Structure](#project-structure)
- [Server-side](#server-side)
- [Plugin UI Interface](#plugin-ui-interface)
- [Plugin Deployment and Publication](#plugin-deployment-and-publication)
- [Plugin Shield](#plugin-shield)
- [Link](#link)
## Plugin Composition
A LobeChat plugin consists of the following components:
1. **Plugin Index**: Used to display basic information about the plugin, including the plugin name, description, author, version, and a link to the plugin manifest. The official plugin index can be found at [lobe-chat-plugins](https://github.com/lobehub/lobe-chat-plugins). To submit a plugin to the official plugin marketplace, you need to submit a PR to this repository.
2. **Plugin Manifest**: Used to describe the functionality of the plugin, including the server-side description, frontend display information, and version number. For more details about the manifest, please refer to the [manifest][manifest-docs-url].
3. **Plugin Services**: Used to implement the server-side and frontend modules described in the manifest:
- **Server-side**: Implement the API capabilities described in the manifest.
- **Frontend UI** (optional): Implement the interface described in the manifest, which will be displayed in plugin messages to provide richer information display than plain text.
<br/>
## Custom Plugin Workflow
To integrate a plugin into LobeChat, you need to add and use a custom plugin in LobeChat. This section will guide you through the process.
### **`1`** Create and Start a Plugin Project
First, you need to create a plugin project locally. You can use the [lobe-chat-plugin-template][lobe-chat-plugin-template-url] template we have prepared:
```bash
$ git clone https://github.com/lobehub/chat-plugin-template.git
$ cd chat-plugin-template
$ npm i
$ npm run dev
```
When you see `ready started server on 0.0.0.0:3400, url: http://localhost:3400`, it means that the plugin service has been successfully started locally.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/265259526-9ef25272-4312-429b-93bc-a95515727ed3.png)
### **`2`** Add the Local Plugin in LobeChat Role Settings
Next, go to LobeChat, create a new assistant, and go to its session settings page:
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/265259643-1a9cc34a-76f3-4ccf-928b-129654670efd.png)
Click the <kbd>Add</kbd> button on the right side of "Plugin List" to open the custom plugin add dialog:
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/265259748-2ef6a244-39bb-483c-b359-f156ffcbe1a4.png)
Enter `http://localhost:3400/manifest-dev.json` in the `Plugin Manifest URL` field, which is the URL of the locally started plugin manifest.
At this point, you should see that the identifier of the plugin has been automatically recognized as `chat-plugin-template`. Then fill in the remaining form fields (only the title is required) and click the <kbd>Save</kbd> button to complete the custom plugin addition.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/265259964-59f4906d-ae2e-4ec0-8b43-db36871d0869.png)
After adding the plugin, you can see the newly added plugin in the plugin list. If you need to modify the plugin's configuration, you can click the <kbd>Settings</kbd> button to make changes.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/265260093-a0363c74-0b5b-48dd-b103-2db6b4a8262e.png)
### **`3`** Test the Plugin Functionality in a Session
Next, we need to test the functionality of the custom plugin.
Click the <kbd>Back</kbd> button to go back to the session area, and then send a message to the assistant: "What should I wear?" The assistant will try to ask you about your gender and current mood.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/265260291-f0aa0e7c-0ffb-486c-a834-08e73d49896f.png)
After answering, the assistant will make a plugin call to retrieve recommended clothing data based on your gender and mood from the server and push it to you. Finally, it will summarize the information in a text response.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/265260461-c22ae797-2809-464b-96fc-d0c020f4807b.png)
After completing these steps, you have learned the basic process of adding and using a custom plugin in LobeChat.
<br/>
## Local Plugin Development
In the previous workflow, we have learned how to add and use a plugin. Now let's focus on the development process of custom plugins.
### Manifest
The manifest aggregates information about how the plugin's functionality is implemented. The core fields are `api` and `ui`, which describe the server-side API capabilities and the frontend rendering interface address of the plugin, respectively.
Taking the manifest in our template as an example:
```json
{
"api": [
{
"url": "http://localhost:3400/api/clothes",
"name": "recommendClothes",
"description": "Recommend clothes based on the user's mood",
"parameters": {
"properties": {
"mood": {
"description": "The user's current mood, with optional values: happy, sad, anger, fear, surprise, disgust",
"enums": ["happy", "sad", "anger", "fear", "surprise", "disgust"],
"type": "string"
},
"gender": {
"type": "string",
"enum": ["man", "woman"],
"description": "The gender of the user, which needs to be asked before knowing this information"
}
},
"required": ["mood", "gender"],
"type": "object"
}
}
],
"gateway": "http://localhost:3400/api/gateway",
"identifier": "chat-plugin-template",
"ui": {
"url": "http://localhost:3400",
"height": 200
},
"version": "1"
}
```
In this manifest, the following parts are included:
1. `identifier`: This is the unique identifier of the plugin, used to distinguish different plugins. This field needs to be globally unique.
2. `api`: This is an array that contains all the API interface information provided by the plugin. Each interface includes the `url`, `name`, `description`, and `parameters` fields, all of which are required. The `description` and `parameters` fields will be sent to GPT as the `functions` parameter of the [Function Call](https://sspai.com/post/81986). The parameters need to comply with the [JSON Schema](https://json-schema.org/) specification. In this example, the API interface is named `recommendClothes`, which recommends clothes based on the user's mood and gender. The parameters of the interface include the user's mood and gender, both of which are required.
3. `ui`: This field contains information about the plugin's user interface, indicating where LobeChat loads the frontend interface of the plugin from. Since the plugin interface loading in LobeChat is implemented based on `iframe`, you can specify the height and width of the plugin interface as needed.
4. `gateway`: This field specifies the gateway for LobeChat to query API interfaces. The default plugin gateway in LobeChat is a cloud service, but for custom plugins, the requests need to be sent to the local service. Therefore, by specifying the gateway in the manifest, LobeChat will directly request this address and access the local plugin service. The gateway field does not need to be specified for plugins published online.
5. `version`: This is the version number of the plugin, which is currently not used.
In actual development, you can modify the plugin's manifest according to your needs to declare the functionality you want to implement. For a complete introduction to each field in the manifest, please refer to: [manifest][manifest-docs-url].
### Project Structure
The [lobe-chat-plugin-template][lobe-chat-plugin-template-url] template project uses Next.js as the development framework. Its core directory structure is as follows:
```
➜ chat-plugin-template
├── public
│ └── manifest-dev.json # Manifest file
├── src
│ └── pages
│ │ ├── api # Next.js server-side folder
│ │ │ ├── clothes.ts # Implementation of the recommendClothes interface
│ │ │ └── gateway.ts # Local plugin proxy gateway
│ │ └── index.tsx # Frontend display interface
```
Of course, using Next.js as the development framework in the template is just because we are familiar with Next.js and it is convenient for development. You can use any frontend framework and programming language you are familiar with as long as it can implement the functionality described in the manifest.
We also welcome contributions of plugin templates in more frameworks and languages.
### Server-side
The server-side only needs to implement the API interfaces described in the manifest. In the template, we use Vercel's [Edge Runtime](https://nextjs.org/docs/pages/api-reference/edge) as the server, which eliminates the need for operational maintenance.
#### API Implementation
For Edge Runtime, we provide the `createErrorResponse` method in `@lobehub/chat-plugin-sdk` to quickly return error responses. The currently provided error types can be found at: [PluginErrorType][plugin-error-type-url].
Here is an example of the clothes API implementation in the template:
```ts
export default async (req: Request) => {
if (req.method !== 'POST') return createErrorResponse(PluginErrorType.MethodNotAllowed);
const { gender, mood } = (await req.json()) as RequestData;
const clothes = gender === 'man' ? manClothes : womanClothes;
const result: ResponseData = {
clothes: clothes[mood] || [],
mood,
today: Date.now(),
};
return new Response(JSON.stringify(result));
};
```
In this example, `manClothes` and `womanClothes` are hardcoded mock data. In actual scenarios, they can be replaced with database queries.
#### Gateway
Since the default plugin gateway in LobeChat is a cloud service (\</api/plugins>), which sends requests to the API addresses specified in the manifest to solve the cross-origin issue.
For custom plugins, the requests need to be sent to the local service. Therefore, by specifying the gateway in the manifest (<http://localhost:3400/api/gateway>), LobeChat will directly request this address. Then you only need to create a gateway implementation at this address.
```ts
import { createLobeChatPluginGateway } from '@lobehub/chat-plugins-gateway';
export const config = {
runtime: 'edge',
};
export default async createLobeChatPluginGateway();
```
[`@lobehub/chat-plugins-gateway`](https://github.com/lobehub/chat-plugins-gateway) includes the implementation of the plugin gateway in LobeChat, which you can use to create a gateway. This allows LobeChat to access the local plugin service.
### Plugin UI Interface
For a plugin, the UI interface is optional. For example, the [Web Crawler](https://github.com/lobehub/chat-plugin-web-crawler) plugin does not provide a corresponding user interface.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/265263241-0e765fdc-3463-4c36-a398-aef177a30df9.png)
If you want to display richer information in plugin messages or include some rich interactions, you can define a user interface for the plugin. For example, the following image shows the user interface of a search engine plugin.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/265263427-9bdc03d5-aa61-4f62-a2ce-88683f3308d8.png)
#### Plugin UI Interface Implementation
LobeChat uses `iframe` + `postMessage` to load and communicate with plugin UI. Therefore, the implementation of the plugin UI is the same as normal web development. You can use any frontend framework and programming language you are familiar with.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/28616219/265263653-4ea87abc-249a-49f3-a241-7ed93ddb1ddf.png)
In our template, we use React + Next.js + antd as the frontend framework. You can find the implementation of the user interface in `src/pages/index.tsx`.
Regarding plugin communication, we provide related methods in [`@lobehub/chat-plugin-sdk`](https://github.com/lobehub/chat-plugin-sdk) to simplify the communication between the plugin and LobeChat. You can use the `fetchPluginMessage` method to actively retrieve the data of the current message from LobeChat. For a detailed description of this method, please refer to: [fetchPluginMessage][fetch-plugin-message-url].
```tsx
import { fetchPluginMessage } from '@lobehub/chat-plugin-sdk';
import { memo, useEffect, useState } from 'react';
import { ResponseData } from '@/type';
const Render = memo(() => {
const [data, setData] = useState<ResponseData>();
useEffect(() => {
// Retrieve the current plugin message from LobeChat
fetchPluginMessage().then((e: ResponseData) => {
setData(e);
});
}, []);
return <>...</>;
});
export default Render;
```
<br/>
## Plugin Deployment and Publication
After completing the plugin development, you can deploy the plugin using your preferred method. For example, you can use Vercel or package it as a Docker image for publication.
If you want more people to use your plugin, you are welcome to submit it for review in the plugin marketplace.
[![][submit-plugin-shield]][submit-plugin-url]
### Plugin Shield
[![lobe-chat-plugin](https://img.shields.io/badge/%F0%9F%A4%AF_LobeChat-plugin-cyan)](https://github.com/lobehub/lobe-chat-plugins)
```markdown
[![lobe-chat-plugin](https://img.shields.io/badge/%F0%9F%A4%AF_LobeChat-plugin-cyan)](https://github.com/lobehub/lobe-chat-plugins)
```
<br/>
## Link
- **📘 Pluging SDK Docs**: <https://chat-plugin-sdk.lobehub.com>
- **🚀 chat-plugin-template**: <https://github.com/lobehub/chat-plugin-template>
- **🧩 chat-plugin-sdk**: <https://github.com/lobehub/chat-plugin-sdk>
- **🚪 chat-plugin-sdk**: <https://github.com/lobehub/chat-plugin-gateway>
- **🏪 lobe-chat-plugins**: <https://github.com/lobehub/lobe-chat-plugins>
<!-- LINK GROUP -->
[fetch-plugin-message-url]: https://github.com/lobehub/chat-plugin-template
[lobe-chat-plugin-template-url]: https://github.com/lobehub/chat-plugin-template
[manifest-docs-url]: https://chat-plugin-sdk.lobehub.com/guides/plugin-manifest
[plugin-error-type-url]: https://github.com/lobehub/chat-plugin-template
[submit-plugin-shield]: https://img.shields.io/badge/🧩/🏪_submit_plugin-%E2%86%92-50E3C2?style=for-the-badge
[submit-plugin-url]: https://github.com/lobehub/lobe-chat-plugins
-17
View File
@@ -1,17 +0,0 @@
# Maintaining Updates with LobeChat Self-Deployment
If you have deployed your own project following the one-click deployment steps in the README, you might encounter constant prompts indicating "updates available". This is because Vercel defaults to creating a new project instead of forking this one, resulting in an inability to accurately detect updates. We suggest you redeploy using the following steps:
- Remove the original repository;
- Use the <kbd>Fork</kbd> button at the top right corner of the page to fork this project;
- Re-select and deploy on `Vercel`.
## Enabling Automatic Updates
> **Note**\
> If you encounter an error executing Upstream Sync, manually Sync Fork once
Once you have forked the project, due to Github restrictions, you will need to manually enable Workflows on the Actions page of your forked project and activate the Upstream Sync Action. Once enabled, you can set up hourly automatic updates.
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/266985117-4d48fe7b-0412-4667-8129-b25ebcf2c9de.png)
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/266985177-7677b4ce-c348-4145-9f60-829d448d5be6.png)
-17
View File
@@ -1,17 +0,0 @@
# LobeChat 自部署保持更新
如果你根据 README 中的一键部署步骤部署了自己的项目,你可能会发现总是被提示 “有可用更新”。这是因为 Vercel 默认为你创建新项目而非 fork 本项目,这将导致无法准确检测更新。我们建议按照以下步骤重新部署:
- 删除原有的仓库;
- 使用页面右上角的 <kbd>Fork</kbd> 按钮,Fork 本项目;
-`Vercel` 上重新选择并部署。
## 启动自动更新
> **Note**\
> 如果你在执行 `Upstream Sync` 时遇到错误,请手动执再行一次
当你 Fork 了项目后,由于 Github 的限制,你需要手动在你 Fork 的项目的 Actions 页面启用 Workflows,并启动 Upstream Sync Action。启用后,你可以设置每小时进行一次自动更新。
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/266985117-4d48fe7b-0412-4667-8129-b25ebcf2c9de.png)
![](https://github-production-user-asset-6210df.s3.amazonaws.com/17870709/266985177-7677b4ce-c348-4145-9f60-829d448d5be6.png)
-30
View File
@@ -1,30 +0,0 @@
## Lobe Chat Wiki
#### 🏠 Home
- [TOC](Home) | [目录](Home)
#### 🤯 LobeChat
- [Environment Variables](Environment-Variable) | [中文](Environment-Variable.zh-CN)
- [Upstream Sync](Upstream-Sync) | [中文](Upstream-Sync.zh-CN)
- [Deploying with Azure OpenAI](Deploy-with-Azure-OpenAI) | [中文](Deploy-with-Azure-OpenAI.zh-CN)
#### 🤖 Agents
- [Agent Index][agent-index] | [中文][agent-index-cn]
#### 🧩 Plugins
- [Plugin Index][plugin-index] | [中文][plugin-index-cn]
- [Plugin Development](Plugin-Development) | [中文](Plugin-Development.zh-CN)
- [Plugin SDK Docs][plugin-sdk] | [中文][plugin-skd-cn]
<!-- LINK GROUP -->
[agent-index]: https://github.com/lobehub/lobe-chat-agents
[agent-index-cn]: https://github.com/lobehub/lobe-chat-agents/blob/main/README.zh-CN.md
[plugin-index]: https://github.com/lobehub/lobe-chat-plugins
[plugin-index-cn]: https://github.com/lobehub/lobe-chat-plugins/blob/main/README.zh-CN.md
[plugin-sdk]: https://chat-plugin-sdk.lobehub.com
[plugin-skd-cn]: https://chat-plugin-sdk.lobehub.com
+31
View File
@@ -0,0 +1,31 @@
---
title: Integrating Data Analytics Services in LobeChat for User Usage Analysis
description: >-
Learn how to integrate free/open-source data analytics services in LobeChat to
collect user usage data efficiently.
tags:
- LobeChat
- data analytics
- user usage analysis
- Vercel Analytics
- web analytics
---
# Data Analysis
To better help analyze the usage of LobeChat users, we have integrated several free/open-source data analytics services in LobeChat for collecting user usage data, which you can enable as needed.
<Callout type={'warning'}>
Currently, the integrated data analytics platforms only support deployment and usage on
Vercel/Zeit platforms and do not support Docker/Docker Compose deployment.
</Callout>
## Vercel Analytics
[Vercel Analytics](https://vercel.com/analytics) is a data analytics service launched by Vercel, which can help you collect website visit data, including traffic, sources, and devices used for access.
We have integrated Vercel Analytics into the code, and you can enable it by setting the environment variable `ENABLE_VERCEL_ANALYTICS=1`, and then open the Analytics tab in your Vercel deployment project to view your app's visit data.
Vercel Analytics provides 2500 free Web Analytics Events per month (which can be understood as page views), which is generally sufficient for personal deployment and self-use products.
If you need to learn more about using Vercel Analytics, please refer to the [Vercel Web Analytics Quick Start](https://vercel.com/docs/analytics/quickstart).
@@ -0,0 +1,28 @@
---
title: LobeChat 数据分析集成服务介绍
description: 了解如何在 LobeChat 中集成免费/开源的数据统计服务,帮助分析用户使用情况。包括 Vercel Analytics 的设置和使用教程。
tags:
- LobeChat
- 数据分析
- Vercel Analytics
- 数据统计服务
- 用户使用情况
---
# 数据分析
为更好地帮助分析 LobeChat 的用户使用情况,我们在 LobeChat 中集成了若干免费 / 开源的数据统计服务,用于收集用户的使用情况,你可以按需开启。
<Callout type={'warning'}>
目前集成的数据分析平台,均只支持 Vercel / Zeabur 平台部署使用,不支持 Docker/Docker Compose 部署
</Callout>
## Vercel Analytics
[Vercel Analytics](https://vercel.com/analytics) 是 Vercel 推出的一款数据分析服务,它可以帮助你收集网站的访问情况,包括访问量、访问来源、访问设备等等。
我们在代码中集成了 Vercel Analytics,你可以通过设置环境变量 `ENABLE_VERCEL_ANALYTICS=1` 来开启它,并打开 Vercel 部署项目中 Analytics tab 查看你的应用访问情况。
Vercel Analytics 提供了 2500 次 / 月的免费 Web Analytics Events (可以理解为 PV),对于个人部署自用的产品来说基本够用。
如果你需要了解 Vercel Analytics 的详细使用教程,请查阅 [Vercel Web Analytics 快速开始](https://vercel.com/docs/analytics/quickstart)
@@ -0,0 +1,51 @@
---
title: >-
LobeChat Identity Verification Service - Centralized User Authorization
Management
description: >-
Learn about LobeChat's support for configuring external identity verification
services for centralized user authorization within enterprises/organizations.
Explore supported services like Auth0, Microsoft Entra ID, Authentik, Github,
and ZITADEL.
tags:
- Identity Verification Service
- Centralized User Authorization
- SSO Providers
- Auth0
- Microsoft Entra ID
- Authentik
- Github
- ZITADEL
---
# Identity Verification Service
LobeChat supports the configuration of external identity verification services for internal use within enterprises/organizations to centrally manage user authorization.
Currently supported identity verification services include:
- [Auth0](/docs/self-hosting/advanced/sso-providers/auth0)
- [Microsoft Entra ID](/docs/self-hosting/advanced/sso-providers/microsoft-entra-id)
- [Authentik](/docs/self-hosting/advanced/sso-providers/authentik)
- [Github](/docs/self-hosting/advanced/sso-providers/github)
- [ZITADEL](/docs/self-hosting/advanced/sso-providers/zitadel)
Click on the links to view the corresponding platform's configuration documentation.
## Advanced Configuration
To simultaneously enable multiple identity verification sources, please set the `SSO_PROVIDERS` environment variable, separating them with commas, for example, `auth0,azure-ad,authentik`.
The order corresponds to the display order of the SSO providers.
| SSO Provider | Value |
| ------------------ | ----------- |
| Auth0 | `auth0` |
| Microsoft Entra ID | `azure-ad` |
| Authentik | `authentik` |
| Github | `github` |
| ZITADEL | `zitadel` |
## Other SSO Providers
Please refer to the [NextAuth.js](https://next-auth.js.org/providers) documentation and feel free to submit a Pull Request.
@@ -0,0 +1,47 @@
---
title: LobeChat 外部身份验证服务配置指南
description: >-
了解如何配置外部身份验证服务以统一管理用户授权。支持的身份验证服务包括 Auth0, Microsoft Entra ID, Authentik,
Github, 和 ZITADEL。
tags:
- 身份验证服务
- LobeChat
- SSO
- Auth0
- Microsoft Entra ID
- Authentik
- Github
- ZITADEL
---
# 身份验证服务
LobeChat 支持配置外部身份验证服务,供企业 / 组织内部使用,统一管理用户授权。
目前支持的身份验证服务有:
- [Auth0](/docs/self-hosting/advanced/sso-providers/auth0)
- [Microsoft Entra ID](/docs/self-hosting/advanced/sso-providers/microsoft-entra-id)
- [Authentik](/docs/self-hosting/advanced/sso-providers/authentik)
- [Github](/docs/self-hosting/advanced/sso-providers/github)
- [ZITADEL](/docs/self-hosting/advanced/sso-providers/zitadel)
点击链接可以查看对应平台的配置文档。
## 进阶配置
同时启用多个身份验证源请设置 `SSO_PROVIDERS` 环境变量,以逗号 `,` 分割,例如 `auth0,azure-ad,authentik`。
顺序为 SSO 提供商的显示顺序。
| SSO 提供商 | 值 |
| ------------------ | ----------- |
| Auth0 | `auth0` |
| Microsoft Entra ID | `azure-ad` |
| Authentik | `authentik` |
| Github | `github` |
| ZITADEL | `zitadel` |
## 其他 SSO 提供商
请参考 [NextAuth.js](https://next-auth.js.org/providers) 文档,欢迎提交 Pull Request。
+48
View File
@@ -0,0 +1,48 @@
---
title: Customizing Provider Model List in LobeChat for Deployment
description: >-
Learn how to customize the model list in LobeChat for deployment with the
syntax and extension capabilities
tags:
- LobeChat
- model customization
- deployment
- extension capabilities
---
# Model List
LobeChat supports customizing the model list during deployment. You can use `+` to add a model, `-` to hide a model, and use `model name=display name<extension configuration>` to customize the display name of a model, separated by English commas. The basic syntax is as follows:
```shell
id=displayName < maxToken:vision:fc:file > ,model2,model3
```
For example: `+qwen-7b-chat,+glm-6b,-gpt-3.5-turbo,gpt-4-0125-preview=gpt-4-turbo`
In the above example, it adds `qwen-7b-chat` and `glm-6b` to the model list, removes `gpt-3.5-turbo` from the list, and displays the model name of `gpt-4-0125-preview` as `gpt-4-turbo`. If you want to disable all models first and then enable specific models, you can use `-all,+gpt-3.5-turbo`, which means only enabling `gpt-3.5-turbo`.
## Extension Capabilities
Considering the diversity of model capabilities, we started to add extension configuration in version `0.147.8`, with the following rules:
```shell
id=displayName<maxToken:vision:fc:file>
```
The first value in angle brackets is designated as the `maxToken` for this model. The second value and beyond are the model's extension capabilities, separated by colons `:`, and the order is not important.
Examples are as follows:
- `chatglm-6b=ChatGLM 6B<4096>`: ChatGLM 6B, maximum context of 4k, no advanced capabilities;
- `spark-v3.5=讯飞星火 v3.5<8192:fc>`: Xunfei Spark 3.5 model, maximum context of 8k, supports Function Call;
- `gemini-pro-vision=Gemini Pro Vision<16000:vision>`: Google Vision model, maximum context of 16k, supports image recognition;
- `gpt-4-all=ChatGPT Plus<128000:fc:vision:file>`, hacked version of ChatGPT Plus web, context of 128k, supports image recognition, Function Call, file upload.
Currently supported extension capabilities are:
| --- | Description |
| -------- | -------------------------------------------------------- |
| `fc` | Function Calling |
| `vision` | Image Recognition |
| `file` | File Upload (a bit hacky, not recommended for daily use) |
@@ -0,0 +1,46 @@
---
title: LobeChat 自定义模型服务商模型列表及扩展能力配置
description: 了解如何在 LobeChat 中自定义模型列表以及扩展能力配置的基本语法和规则。
tags:
- LobeChat
- 自定义模型列表
- 扩展能力配置
- 模型展示名
- 模型能力
---
# Model List
LobeChat 支持在部署时自定义模型列表,可以使用 `+` 增加一个模型,使用 `-` 来隐藏一个模型,使用 `模型名=展示名<扩展配置>` 来自定义模型的展示名,用英文逗号隔开。通过 `<>` 来添加扩展配置。基本语法如下:
```shell
id=displayName < maxToken:vision:fc:file > ,model2,model3
```
例如: `+qwen-7b-chat,+glm-6b,-gpt-3.5-turbo,gpt-4-0125-preview=gpt-4-turbo`
上面示例表示增加 `qwen-7b-chat` 和 `glm-6b` 到模型列表,而从列表中删除 `gpt-3.5-turbo`,并将 `gpt-4-0125-preview` 模型名字展示为 `gpt-4-turbo`。如果你想先禁用所有模型,再启用指定模型,可以使用 `-all,+gpt-3.5-turbo`,则表示仅启用 `gpt-3.5-turbo`。
## 扩展能力
考虑到模型的能力多样性,我们在 `0.147.8` 版本开始增加扩展性配置,它的规则如下:
```shell
id=displayName<maxToken:vision:fc:file>
```
尖括号第一个值约定为这个模型的 `maxToken` 。第二个及以后作为模型的扩展能力,能力与能力之间用冒号 `:` 作为分隔符,顺序不重要。
举例如下:
- `chatglm-6b=ChatGLM 6B<4096>`ChatGLM 6B,最大上下文 4k,没有高阶能力;
- `spark-v3.5=讯飞星火 v3.5<8192:fc>`:讯飞星火 3.5 模型,最大上下文 8k,支持 Function Call
- `gemini-pro-vision=Gemini Pro Vision<16000:vision>`Google 视觉模型,最大上下文 16k,支持图像识别;
- `gpt-4-all=ChatGPT Plus<128000:fc:vision:file>`hack 的 ChatGPT Plus 网页版,上下 128k ,支持图像识别、Function Call、文件上传
目前支持的扩展能力有:
| --- | 描述 |
| -------- | ------------------------------------ |
| `fc` | 函数调用(function calling |
| `vision` | 视觉识别 |
| `file` | 文件上传(比较hack,不建议日常使用) |
@@ -0,0 +1,100 @@
# Share settings via URL
LobeChat support import settings from external URL to quickly set up LobeChat configuration.
The currently supported settings are:
- `languageModel`: Language model settings
## Import from URL
Use the following URL format to import settings parameters from an external URL:
```plaintext
https://lobehub.com/?settings=<settings object in JSON format>
https://lobehub.com/?settings={"languageModel":{"openai":{"apiKey":"user-key","endpoint":"https://lobehub.com/v1"}}}
```
Example of settings in JSON format:
```json
{
"languageModel": {
"openai": {
"apiKey": "user-key"
}
}
}
```
## Export settings to URL
```ts
// Generate settings to export to URL
const settings = {
languageModel: {
openai: {
apiKey: 'user-key',
endpoint: 'https://lobehub.com/v1'
},
}};
// Convert settings to a JSON formatted string
const url = `/?settings=${JSON.stringify(settings)}`;
console.log(url);
// /?settings={"languageModel":{"openai":{"apiKey":"user-key","endpoint":"https://lobehub.com/v1"}}}
```
<Callout type={'warning'}>
LobeChat does not verify the correctness of the settings parameters in the URL, nor provide encryption or decryption methods. Please use with caution.
</Callout>
## Parameter schema
### languageModel
- Property name and type
| Property name | Type |
|---------------|--------------------------------|
| anthropic | GeneralModelProviderConfig |
| azure | AzureOpenAIConfig |
| bedrock | AWSBedrockConfig |
| google | GeneralModelProviderConfig |
| groq | GeneralModelProviderConfig |
| minimax | GeneralModelProviderConfig |
| mistral | GeneralModelProviderConfig |
| moonshot | GeneralModelProviderConfig |
| ollama | GeneralModelProviderConfig |
| openai | GeneralModelProviderConfig |
| openrouter | GeneralModelProviderConfig |
| perplexity | GeneralModelProviderConfig |
| togetherai | GeneralModelProviderConfig |
| zeroone | GeneralModelProviderConfig |
| zhipu | GeneralModelProviderConfig |
- Type `GeneralModelProviderConfig`
| Property name | Type | Description |
|-----------------------|--------------------------|-----------------------------------------------------------------------------|
| apiKey | string | The API key for the model provider. |
| autoFetchModelLists | boolean | Whether to automatically fetch model lists. |
| enabled | boolean | Whether the model provider is enabled. |
| enabledModels | string[] | null | The IDs of the enabled models. |
| endpoint | string | The endpoint for the model provider. |
| fetchOnClient | boolean | Whether to fetch on the client. |
- Type `AzureOpenAIConfig`
> Inherits the fields from `GeneralModelProviderConfig`
| Property name | Type | Description |
|-----------------------|--------------------------|-----------------------------------------------------------------------------|
| apiVersion | string | The API version for Azure OpenAI. |
- Type `AWSBedrockConfig`
> Inherits all fields from `GeneralModelProviderConfig` except `apiKey, endpoint`
| Property name | Type | Description |
| accessKeyId | string | The access key ID for AWS Bedrock. |
| region | string | The region for AWS Bedrock. |
| secretAccessKey | string | The secret access key for AWS Bedrock. |
@@ -0,0 +1,100 @@
# URL 分享设置参数
LobeChat 支持从外部 URL 导入设置参数,以便于快速设置 LobeChat 的配置。
目前支持的设置项有:
- `languageModel`:语言模型设置
## 从 URL 中导入
使用以下 URL 格式,可以从外部 URL 导入设置参数:
```plaintext
https://lobehub.com/?settings=<JSON格式的设置对象>
https://lobehub.com/?settings={"languageModel":{"openai":{"apiKey":"user-key","endpoint":"https://lobehub.com/v1"}}}
```
JSON格式的设置示例:
```json
{
"languageModel": {
"openai": {
"apiKey": "user-key"
}
}
}
```
## 将设置导出到 URL
```ts
// 生成要导出到 URL 的设置
const settings = {
languageModel: {
openai: {
apiKey: 'user-key',
endpoint: 'https://lobehub.com/v1'
},
}};
// 将设置转为 JSON 格式的字符串
const url = `/?settings=${JSON.stringify(settings)}`;
console.log(url);
// /?settings={"languageModel":{"openai":{"apiKey":"user-key","endpoint":"https://lobehub.com/v1"}}}
```
<Callout type={'warning'}>
LobeChat 不对 URL 中的设置参数进行正确性校验,也不提供加密、解密方法,请谨慎使用。
</Callout>
## 参数格式
### languageModel
- 参数及其类型
| 参数名称 | 类型 |
|---------------|--------------------------------|
| anthropic | GeneralModelProviderConfig |
| azure | AzureOpenAIConfig |
| bedrock | AWSBedrockConfig |
| google | GeneralModelProviderConfig |
| groq | GeneralModelProviderConfig |
| minimax | GeneralModelProviderConfig |
| mistral | GeneralModelProviderConfig |
| moonshot | GeneralModelProviderConfig |
| ollama | GeneralModelProviderConfig |
| openai | GeneralModelProviderConfig |
| openrouter | GeneralModelProviderConfig |
| perplexity | GeneralModelProviderConfig |
| togetherai | GeneralModelProviderConfig |
| zeroone | GeneralModelProviderConfig |
| zhipu | GeneralModelProviderConfig |
- 类型 `GeneralModelProviderConfig`
| 参数 | TS 类型 | 描述 |
|-----------------------|--------------------------|-----------------------------------------------------------------------------|
| apiKey | string | 模型的 API 密钥。 |
| autoFetchModelLists | boolean | 是否自动获取模型列表。 |
| enabled | boolean | 是否启用该模型。 |
| enabledModels | string[] | 启用的模型的 ID。 |
| endpoint | string | 模型API端点。 |
| fetchOnClient | boolean | 是否在客户端发起请求,默认在服务端发起请求。 |
- 类型 `AzureOpenAIConfig`
> 继承 `GeneralModelProviderConfig` 中的字段
| 参数 | TS 类型 | 描述 |
|-----------------------|--------------------------|-----------------------------------------------------------------------------|
| apiVersion | string | Azure OpenAI 的 API 版本。 |
- 类型 `AWSBedrockConfig`
> 继承 `GeneralModelProviderConfig` 中除 `apiKey, endpoint` 外的所有字段
| 参数 | TS 类型 | 描述 |
|-----------------------|--------------------------|-----------------------------------------------------------------------------|
| accessKeyId | string | AWS Bedrock 的访问密钥 ID。 |
| region | string | AWS Bedrock 的区域。 |
| secretAccessKey | string | AWS Bedrock 的访问密钥。 |
@@ -0,0 +1,134 @@
---
title: Configure Auth0 Identity Verification Service for LobeChat
description: >-
Learn how to configure Auth0 Identity Verification Service for LobeChat for
your organization, including creating applications, adding users, and
configuring environment variables.
tags:
- Auth0
- Identity Verification
- Single Sign-On
- Environment Variables
- User Management
- SSO Integrations
- Social Login
---
# Configure Auth0 Identity Verification Service
<Steps>
### Create Auth0 Application
Register and log in to [Auth0][auth0-client-page], click on the "Applications" in the left navigation bar to switch to the application management interface, and click "Create Application" in the upper right corner to create an application.
<Image
alt="Create Auth0 Application S1"
inStep
src="https://github.com/lobehub/lobe-chat/assets/30863298/f068190f-0027-4d3b-8667-d632e43d5a86"
/>
Fill in the application name you want to display to the organization users, choose any application type, and click "Create".
<Image
alt="Create Auth0 Application S2"
inStep
src="https://github.com/lobehub/lobe-chat/assets/30863298/3e0082df-9b6f-46f3-b67f-bdc79e1eb2cc"
/>
After successful creation, click on the corresponding application to enter the application details page, switch to the "Settings" tab, and you can see the corresponding configuration information.
<Image
alt="Create Auth0 Application S3"
inStep
src="https://github.com/lobehub/lobe-chat/assets/30863298/df4cea85-616a-46f5-b2de-42725d9b82a6"
/>
In the application configuration page, you also need to configure Allowed Callback URLs, where you should fill in:
```bash
http(s)://your-domain/api/auth/callback/auth0
```
<Image
alt="Create Auth0 Application S4"
inStep
src="https://github.com/lobehub/lobe-chat/assets/30863298/62fbd09f-a69a-4460-949b-0f6285fa65b9"
/>
<Callout type={'important'}>
You can fill in or modify Allowed Callback URLs after deployment, but make sure the filled URL is
consistent with the deployed URL.
</Callout>
### Add Users
Click on the "Users Management" in the left navigation bar to enter the user management interface, where you can create users for your organization to log in to LobeChat.
<Image
alt="Add Users"
inStep
src="https://github.com/lobehub/lobe-chat/assets/30863298/0beda150-d0b6-43cf-a9f1-fce928b83a96"
/>
### Configure Environment Variables
When deploying LobeChat, you need to configure the following environment variables:
| Environment Variable | Type | Description |
| --- | --- | --- |
| `ENABLE_OAUTH_SSO` | Required | Enable single sign-on (SSO) for LobeChat. Set to `1` to enable single sign-on. |
| `NEXTAUTH_SECRET` | Required | Key used to encrypt Auth.js session tokens. You can generate a key using the following command: `openssl rand -base64 32` |
| `SSO_PROVIDERS` | Optional | Select the single sign-on provider for LoboChat. Use `auth0` for Auth0. |
| `AUTH0_CLIENT_ID` | Required | Client ID of the Auth0 application |
| `AUTH0_CLIENT_SECRET` | Required | Client Secret of the Auth0 application |
| `AUTH0_ISSUER` | Required | Domain of the Auth0 application, `https://example.auth0.com` |
| `ACCESS_CODE` | Required | Add a password to access this service. You can set a sufficiently long random password to "disable" access code authorization. |
| `NEXTAUTH_URL` | Optional | The URL is used to specify the callback address for the execution of OAuth authentication in Auth.js. It needs to be set only when the default address is incorrect. `https://example.com/api/auth` |
<Callout type={'tip'}>
You can refer to the related variable details at [📘Environment Variables](/docs/self-hosting/environment-variable#auth0).
</Callout>
</Steps>
<Callout>
After successful deployment, users will be able to authenticate and use LobeChat using the users
configured in Auth0.
</Callout>
## Advanced Configuration
### Connecting to an Existing Single Sign-On Service
If your enterprise or organization already has a unified identity authentication infrastructure, you can connect to an existing single sign-on service in Applications -> SSO Integrations.
Auth0 supports single sign-on services such as Azure Active Directory, Slack, Google Workspace, Office 365, Zoom, and more. For a detailed list of supported services, please refer to [this link][auth0-sso-integrations].
<Image
alt="Connecting to an Existing Single Sign-On Service"
src="https://github.com/lobehub/lobe-chat/assets/30863298/9891347e-a338-4aa9-8714-f16c8dbcfcec"
/>
### Configuring Social Login
If your enterprise or organization needs to support external user logins, you can configure social login services in Authentication -> Social.
<Image
alt="Configuring Social Login"
src="https://github.com/lobehub/lobe-chat/assets/30863298/880749a6-5ba4-4e20-a968-b583a54de7fa"
/>
<Callout type={'warning'}>
Configuring social login services by default allows anyone to authenticate, which may lead to
LobeChat being abused by external users.
</Callout>
<Callout>
If you need to restrict login users, be sure to configure a **blocking policy**: After enabling
the social login option, refer to [this article][auth0-login-actions-manual] to create an Action
to set up a blocking/allow list.
</Callout>
[auth0-client-page]: https://manage.auth0.com/dashboard
[auth0-login-actions-manual]: https://auth0.com/blog/permit-or-deny-login-requests-using-auth0-actions/
[auth0-sso-integrations]: https://marketplace.auth0.com/features/sso-integrations
@@ -0,0 +1,126 @@
---
title: 在 LobeChat 中配置 Auth0 身份验证服务 - 详细步骤和环境变量设置
description: 学习如何在 LobeChat 中配置 Auth0 身份验证服务,包括创建应用、新增用户、配置环境变量等。了解如何连接现有的单点登录服务和配置社交登录。
tags:
- Auth0
- 身份验证
- 单点登录
- 社交登录
- 环境变量
- 用户管理
---
# 配置 Auth0 身份验证服务
<Steps>
### 创建 Auth0 应用
注册并登录 [Auth0][auth0-client-page],点击左侧导航栏的「Applications」,切换到应用管理界面,点击右上角「Create Application」以创建应用。
<Image
alt="创建 Auth0 应用 S1"
inStep
src="https://github.com/lobehub/lobe-chat/assets/30863298/f068190f-0027-4d3b-8667-d632e43d5a86"
/>
填写你想向组织用户显示的应用名称,可选择任意应用类型,点击「Create」。
<Image
alt="创建 Auth0 应用 S2"
inStep
src="https://github.com/lobehub/lobe-chat/assets/30863298/3e0082df-9b6f-46f3-b67f-bdc79e1eb2cc"
/>
创建成功后,点击相应的应用,进入应用详情页,切换到「Settings」标签页,就可以看到相应的配置信息
<Image
alt="创建 Auth0 应用 S3"
inStep
src="https://github.com/lobehub/lobe-chat/assets/30863298/df4cea85-616a-46f5-b2de-42725d9b82a6"
/>
在应用配置页面中,还需要配置 Allowed Callback URLs,在此处填写:
```bash
http(s)://your-domain/api/auth/callback/auth0
```
<Image
alt="创建 Auth0 应用 S4"
inStep
src="https://github.com/lobehub/lobe-chat/assets/30863298/62fbd09f-a69a-4460-949b-0f6285fa65b9"
/>
<Callout type={'important'}>
可以在部署后再填写或修改 Allowed Callback URLs,但是务必保证填写的 URL 与部署的 URL 一致
</Callout>
### 新增用户
点击左侧导航栏的「Users Management」,进入用户管理界面,可以为你的组织新建用户,用以登录 LobeChat
<Image
alt="新增用户"
inStep
src="https://github.com/lobehub/lobe-chat/assets/30863298/0beda150-d0b6-43cf-a9f1-fce928b83a96"
/>
### 配置环境变量
在部署 LobeChat 时,你需要配置以下环境变量:
| 环境变量 | 类型 | 描述 |
| --- | --- | --- |
| `ENABLE_OAUTH_SSO` | 必选 | 为 LobeChat 启用单点登录 (SSO)。设置为 `1` 以启用单点登录。 |
| `NEXTAUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成秘钥: `openssl rand -base64 32` |
| `SSO_PROVIDERS` | 必选 | 选择 LoboChat 的单点登录提供商。使用 Auth0 请填写 `auth0`。 |
| `AUTH0_CLIENT_ID` | 必选 | Auth0 应用程序的 Client ID |
| `AUTH0_CLIENT_SECRET` | 必选 | Auth0 应用程序的 Client Secret |
| `AUTH0_ISSUER` | 必选 | Auth0 应用程序的 Domain`https://example.auth0.com` |
| `ACCESS_CODE` | 必选 | 添加访问此服务的密码,你可以设置一个足够长的随机密码以 “禁用” 访问码授权 |
| `NEXTAUTH_URL` | 可选 | 该 URL 用于指定 Auth.js 在执行 OAuth 验证时的回调地址,当默认生成的重定向地址发生不正确时才需要设置。`https://example.com/api/auth` |
<Callout type={'tip'}>
前往 [📘 环境变量](/docs/self-hosting/environment-variable#auth0) 可查阅相关变量详情。
</Callout>
</Steps>
<Callout type={'info'}>
部署成功后,用户将可以使用 Auth0 中配置的用户通过身份认证并使用 LobeChat。
</Callout>
## 进阶配置
### 连接现有的单点登录服务
如果你的企业或组织已有现有的统一身份认证设施,可在 Applications -> SSO Integrations 中,连接现有的单点登录服务。
Auth0 支持 Azure Active Directory / Slack / Google Workspace / Office 365 / Zoom 等单点登录服务,详细支持列表可参考 [这里][auth0-sso-integrations]
<Image
alt="Connecting to an Existing Single Sign-On Service"
src="https://github.com/lobehub/lobe-chat/assets/30863298/9891347e-a338-4aa9-8714-f16c8dbcfcec"
/>
### 配置社交登录
如果你的企业或组织需要支持外部人员登录,可以在 Authentication -> Social 中,配置社交登录服务。
<Image
alt="Configuring Social Login"
src="https://github.com/lobehub/lobe-chat/assets/30863298/880749a6-5ba4-4e20-a968-b583a54de7fa"
/>
<Callout type={'warning'}>
配置社交登录服务默认会允许所有人通过认证,这可能会导致 LobeChat 被外部人员滥用。
</Callout>
<Callout>
如果你需要限制登录人员,务必配置 **阻止策略**: 请在打开社交登录选项后,参考
[这篇文章][auth0-login-actions-manual] 创建 Action 来设置阻止 / 允许列表。
</Callout>
[auth0-client-page]: https://manage.auth0.com/dashboard
[auth0-login-actions-manual]: https://auth0.com/blog/permit-or-deny-login-requests-using-auth0-actions/
[auth0-sso-integrations]: https://marketplace.auth0.com/features/sso-integrations
@@ -0,0 +1,75 @@
---
title: Configuring Authentik Authentication Service for LobeChat
description: >-
Learn how to configure Authentik for Single Sign-On (SSO) for LobeChat,
including creating an application provider, setting environment variables, and
deployment instructions.
tags:
- Authentik Configuration
- Single Sign-On (SSO)
- LobeChat Authentication
- Environment Variables
- Deployment Instructions
---
## Configuring Authentik Authentication Service
## Authentik Configuration Flow
<Steps>
### Create an Authentik Application Provider
In your Authentik instance, use the administrator account to go to **Admin Interface** -> **Applications** -> **Providers** and create a new provider.
Select **OAuth2/OpenID Provider** as the provider type. Fill in the provider name, select the authentication flow and authorization flow.
In the `Redirect URL/Origin (regex)` field, fill in:
```bash
https://your-domain/api/auth/callback/authentik
```
<Callout type={'info'}>
- You can fill in or modify the `Redirect URL/Origin (regex)` later, but make sure the filled in
URL matches the deployed URL. - Replace `your-domain` with your own domain name
</Callout>
<Image
alt="Create Authentik Provider"
inStep
src="https://github.com/lobehub/lobe-chat/assets/67304509/4244634e-5f68-48d5-aac0-e5f4b06d1c4b"
/>
Click **Done**
After the creation is successful, click **Applications** on the left -> **Create**, fill in the name and Slug, select the provider created in the previous step, and click **Create**.
After the application provider is created, click the corresponding provider to enter the details page, click **Edit**, and save the `Client ID` and `Client Secret`.
Copy the URL of `OpenID Configuration Issuer` and save it.
### Configure Environment Variables
When deploying LobeChat, you need to configure the following environment variables:
| Environment Variable | Type | Description |
| --- | --- | --- |
| `ENABLE_OAUTH_SSO` | Required | Enable Single Sign-On (SSO) for LobeChat. Set to `1` to enable SSO. |
| `NEXTAUTH_SECRET` | Required | The secret used to encrypt Auth.js session tokens. You can generate a secret using the following command: `openssl rand -base64 32` |
| `SSO_PROVIDERS` | Required | Select the SSO provider for LoboChat. Use `authentik` for Authentik. |
| `AUTHENTIK_CLIENT_ID` | Required | The Client ID from the Authentik application provider details page |
| `AUTHENTIK_CLIENT_SECRET` | Required | The Client Secret from the Authentik application provider details page |
| `AUTHENTIK_ISSUER` | Required | The OpenID Configuration Issuer from the Authentik application provider details page |
| `ACCESS_CODE` | Required | Add a password to access this service, you can set a sufficiently long random password to "disable" access code authorization |
| `NEXTAUTH_URL` | Optional | This URL is used to specify the callback address for Auth.js when performing OAuth authentication. It only needs to be set when the default generated redirect address is incorrect. `https://example.com/api/auth` |
<Callout type={'tip'}>
Go to [📘 Environment Variables](/docs/self-hosting/environment-variable#Authentik) for details about the variables.
</Callout>
</Steps>
<Callout type={'info'}>
After a successful deployment, users will be able to use LobeChat by authenticating with the users
configured in Authentik.
</Callout>
@@ -0,0 +1,69 @@
---
title: 在 LobeChat 中配置 Authentik 身份验证服务
description: 学习如何在 LobeChat 中配置 Authentik 身份验证服务,包括创建提供程序、配置环境变量和部署 LobeChat。详细步骤和必要环境变量设置。
tags:
- Authentik
- 身份验证
- 单点登录
- 环境变量
- LobeChat
---
# 配置 Authentik 身份验证服务
## Authentik 配置流程
<Steps>
### 创建 Authentik 提供应用
在你的 Authentik 实例中使用管理员账号进入 管理员界面 -> 应用程序 -> 提供程序 创建一个新的提供程序。
选择 OAuth2/OpenID Provider 作为提供程序类型。填写提供程序的名称,选择身份流程和授权流程。
在 `重定向 URL/Origin(正则)` 处填写:
```bash
https://your-domain/api/auth/callback/authentik
```
<Callout type={'info'}>
- 可以之后再填写或修改 `重定向 URL/Origin(正则)`,但是务必保证填写的 URL 与部署的 URL 一致。 -
your-domain 请替换为自己的域名
</Callout>
<Image
alt="创建 Authentik 提供程序"
inStep
src="https://github.com/lobehub/lobe-chat/assets/67304509/4244634e-5f68-48d5-aac0-e5f4b06d1c4b"
/>
点击「完成」
创建成功后,点击左侧的「应用程序」-> 创建,填写名称和 Slug ,提供程序选择上一步创建的提供程序,点击「创建」。
提供程序创建成功后,点击相应的提供程序,进入详情页,点击「编辑」,将 `客户端 ID` 和 `客户端 Secret` 保存下来。复制 `OpenID 配置颁发者` 的 URL,保存下来。
### 配置环境变量
在部署 LobeChat 时,你需要配置以下环境变量:
| 环境变量 | 类型 | 描述 |
| --- | --- | --- |
| `ENABLE_OAUTH_SSO` | 必选 | 为 LobeChat 启用单点登录 (SSO)。设置为 `1` 以启用单点登录。 |
| `NEXTAUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成秘钥: `openssl rand -base64 32` |
| `SSO_PROVIDERS` | 必选 | 选择 LoboChat 的单点登录提供商。使用 Authentik 请填写 `authentik`。 |
| `AUTHENTIK_CLIENT_ID` | 必选 | Authentik 提供程序详情页的 客户端 ID |
| `AUTHENTIK_CLIENT_SECRET` | 必选 | Authentik 提供程序详情页的 客户端 Secret |
| `AUTHENTIK_ISSUER` | 必选 | Authentik 提供程序详情页的 OpenID 配置颁发者 |
| `ACCESS_CODE` | 必选 | 添加访问此服务的密码,你可以设置一个足够长的随机密码以 “禁用” 访问码授权 |
| `NEXTAUTH_URL` | 可选 | 该 URL 用于指定 Auth.js 在执行 OAuth 验证时的回调地址,当默认生成的重定向地址发生不正确时才需要设置。`https://example.com/api/auth` |
<Callout type={'tip'}>
前往 [📘 环境变量](/docs/self-hosting/environment-variable#Authentik) 可查阅相关变量详情。
</Callout>
</Steps>
<Callout type={'info'}>
部署成功后,用户将可以使用 Authentik 中配置的用户通过身份认证并使用 LobeChat。
</Callout>
@@ -0,0 +1,103 @@
---
title: Configuring Github Authentication Service for LobeChat
description: >-
Learn how to configure Github authentication service for LobeChat, including
creating a Github provider, setting up environment variables, and deploying
LobeChat.
tags:
- Github authentication
- LobeChat
- Environment variables
- Single Sign-On
- OAuth authentication
---
# Configuring Github Authentication Service
## Github Configuration Process
<Steps>
### Create a Github Provider
Click [here][github-create-app] to create a new Github App.
Fill in the Github App name, Homepage URL, and Callback URL.
<Image
alt="Create a Github Provider"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/2f919f99-2aaa-4fa7-9938-169d3ed09db7"
/>
Set the webhook callback URL according to your needs.
<Image
alt="Fill in other fields"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/d7ef5ad1-b1a3-435e-b1bc-4436d2b6fecd"
/>
Set the permission to read email addresses.
<Image
alt="Set required permissions"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/23131ca1-9e84-4a89-a840-ef79c4bc0251"
/>
<Image
alt="Set permission to read email addresses"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/358bca8d-3d82-4e76-9a5e-90d16a39efde"
/>
Set whether it is accessible publicly or only accessible to yourself.
<Image
alt="Set whether it is accessible publicly or only accessible to yourself"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/995780cb-9096-4a36-ab17-d422703ab970"
/>
Click "Create Github App".
After successful creation, click "Generate a new client secret" to create a client secret.
<Image
alt="Create a new client secret"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/6d69bdca-7d18-4cbc-b3e0-220d8815cd29"
/>
After successful creation, save the `Client ID` and `Client Secret`.
<Image
alt="Create a new client secret"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/c6108133-a918-48b0-ab1a-e3fa607572a4"
/>
### Configure Environment Variables
When deploying LobeChat, you need to configure the following environment variables:
| Environment Variable | Type | Description |
| --- | --- | --- |
| `ENABLE_OAUTH_SSO` | Required | Enable Single Sign-On (SSO) for LobeChat. Set to `1` to enable SSO. |
| `NEXTAUTH_SECRET` | Required | Key used to encrypt Auth.js session tokens. You can generate the key using the command: `openssl rand -base64 32` |
| `SSO_PROVIDERS` | Required | Select the Single Sign-On provider for LobeChat. Use `github` for Github. |
| `GITHUB_CLIENT_ID` | Required | Client ID in the Github App details page. |
| `GITHUB_CLIENT_SECRET` | Required | Client Secret in the Github App details page. |
| `ACCESS_CODE` | Required | Add a password for accessing this service. You can set a long random password to "disable" access code authorization. |
| `NEXTAUTH_URL` | Optional | This URL is used to specify the callback address for Auth.js when performing OAuth authentication. Only set it if the default generated redirect address is incorrect. `https://example.com/api/auth` |
<Callout type={'tip'}>
Go to [📘 Environment Variables](/docs/self-hosting/environment-variable#Github) for detailed
information on these variables.
</Callout>
</Steps>
<Callout type={'info'}>
After successful deployment, users will be able to authenticate with Github and use LobeChat.
</Callout>
[github-create-app]: https://github.com/settings/apps/new
@@ -0,0 +1,95 @@
---
title: 在 LobeChat 中配置 Github 身份验证服务
description: 学习如何在 LobeChat 中配置Github身份验证服务,包括创建新的Github App、设置权限和环境变量。
tags:
- Github 身份验证
- Github App
- 环境变量配置
- 单点登录
- LobeChat
---
# 配置 Github 身份验证服务
## Github 配置流程
<Steps>
### 创建 Github 提供应用
点击[这里](https://github.com/settings/apps/new) 创建一个新的 Github App。
填写Github App name、Homepage URL、Callbak URL
<Image
alt="创建 Github 提供程序"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/2f919f99-2aaa-4fa7-9938-169d3ed09db7"
/>
按照自己所需设置Webhook回调地址
<Image
alt="填写其他字段"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/d7ef5ad1-b1a3-435e-b1bc-4436d2b6fecd"
/>
设置读取邮件地址权限
<Image
alt="设置所需权限"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/23131ca1-9e84-4a89-a840-ef79c4bc0251"
/>
<Image
alt="设置读取邮件地址权限"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/358bca8d-3d82-4e76-9a5e-90d16a39efde"
/>
设置公开访问还是仅自己访问
<Image
alt="设置公开访问还是仅自己访问"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/995780cb-9096-4a36-ab17-d422703ab970"
/>
点击「Create Github App」
创建成功后,点击「Generate a new client secret」创建客户端Secret
<Image
alt="创建新的客户端密钥"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/6d69bdca-7d18-4cbc-b3e0-220d8815cd29"
/>
创建成功后, 将 `客户端 ID` 和 `客户端 Secret` 保存下来。
<Image
alt="创建新的客户端密钥"
inStep
src="https://github.com/lobehub/lobe-chat/assets/64475363/c6108133-a918-48b0-ab1a-e3fa607572a4"
/>
### 配置环境变量
在部署 LobeChat 时,你需要配置以下环境变量:
| 环境变量 | 类型 | 描述 |
| --- | --- | --- |
| `ENABLE_OAUTH_SSO` | 必选 | 为 LobeChat 启用单点登录 (SSO)。设置为 `1` 以启用单点登录。 |
| `NEXTAUTH_SECRET` | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成秘钥: `openssl rand -base64 32` |
| `SSO_PROVIDERS` | 必选 | 选择 LoboChat 的单点登录提供商。使用 Github 请填写 `github`。 |
| `GITHUB_CLIENT_ID` | 必选 | Github App详情页的 客户端 ID |
| `GITHUB_CLIENT_SECRET` | 必选 | Github App详情页的 客户端 Secret |
| `ACCESS_CODE` | 必选 | 添加访问此服务的密码,你可以设置一个足够长的随机密码以 “禁用” 访问码授权 |
| `NEXTAUTH_URL` | 可选 | 该 URL 用于指定 Auth.js 在执行 OAuth 验证时的回调地址,当默认生成的重定向地址发生不正确时才需要设置。`https://example.com/api/auth` |
<Callout type={'tip'}>
前往 [📘 环境变量](/docs/self-hosting/environment-variable#Github) 可查阅相关变量详情。
</Callout>
</Steps>
<Callout type={'info'}>部署成功后,用户将可以通过Github身份认证并使用 LobeChat。</Callout>

Some files were not shown because too many files have changed in this diff Show More