Compare commits
137 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c5dbde3912 | |||
| 786331d3f4 | |||
| 378dceefa4 | |||
| 809a60d90c | |||
| 24f47f83f9 | |||
| c3d386691a | |||
| 139323ffc1 | |||
| c9019f23bf | |||
| 8cf8c418bc | |||
| 51ba55dfb4 | |||
| 0db1f753a0 | |||
| 624ab716e6 | |||
| e148fd9c97 | |||
| b652a8fb0a | |||
| 62dd97b688 | |||
| 6481f0bb7a | |||
| 0e39773557 | |||
| e58affe613 | |||
| 0797fac217 | |||
| adbd822851 | |||
| a31f6167bb | |||
| 6ce07b21be | |||
| 908b4be918 | |||
| 50c7570440 | |||
| a021d0ee0e | |||
| 72925ecd0c | |||
| 0633286211 | |||
| e93d27b14d | |||
| e7c0372191 | |||
| 45eae70926 | |||
| 7cec77ae2c | |||
| f7ef381bbb | |||
| 19edff11d7 | |||
| 7cbea6da8a | |||
| 65259e566c | |||
| 09592304f8 | |||
| 19ab3fef16 | |||
| 4884f26ec5 | |||
| b07803d6a8 | |||
| 3925d15fa2 | |||
| 010280afdd | |||
| f2e79fe809 | |||
| cde421edc7 | |||
| f1ac9bf38c | |||
| 8ae66242b5 | |||
| b9c489a115 | |||
| 62f83a6230 | |||
| abcc820239 | |||
| 17f56df3cf | |||
| 66c6e506dc | |||
| 9ad33bdc6e | |||
| 86bac0654c | |||
| a4281e53ef | |||
| a9ed1a634d | |||
| 16dcf8edcd | |||
| 8aeb49fd2d | |||
| 946cd085ac | |||
| 6ba03bf8c3 | |||
| 9e532232d7 | |||
| e76ade32e3 | |||
| a7b89493e4 | |||
| bcc9c54356 | |||
| e53a8db7c9 | |||
| e2ad515379 | |||
| f542b49955 | |||
| 77259e2245 | |||
| d0385e25f1 | |||
| bd9c6e37fc | |||
| 0df9aff7db | |||
| 8a000ac0d8 | |||
| 77f82a37a0 | |||
| 4ceb2ec3ab | |||
| 554fa612b5 | |||
| f9f994f9ff | |||
| 3fa2cc1ec2 | |||
| 6e83440d68 | |||
| 9f1ae50f71 | |||
| e1c4a934dc | |||
| d8d1cc6ddd | |||
| 05c70c6388 | |||
| 0758d68d74 | |||
| 26d3c3eabd | |||
| ef2e2dd1c0 | |||
| d4b7668823 | |||
| 0adcf550d9 | |||
| 5a5484b145 | |||
| 558eac8c21 | |||
| 1c67cf3e05 | |||
| 8b6fac26d4 | |||
| e1d318f56d | |||
| 632d687b63 | |||
| 7e721ba86d | |||
| a8ffdefcdd | |||
| 58f4e0ed8d | |||
| 3b48bf4551 | |||
| 48d0e01434 | |||
| 7d82bb16b9 | |||
| 9923a38d84 | |||
| 97588e6cf4 | |||
| acfe5ea8b0 | |||
| ef6651e305 | |||
| 059e78ba2c | |||
| 765198e00f | |||
| 2cda3e77bc | |||
| 6d9278a018 | |||
| e118e0fa7f | |||
| 7687b21ff0 | |||
| 387ac1e778 | |||
| 6e444c6e5e | |||
| 3d29f8324a | |||
| 9d04179123 | |||
| d598f68313 | |||
| 1cec875a8d | |||
| 336957ec63 | |||
| e678340e57 | |||
| 8905367222 | |||
| 76f3dddf85 | |||
| 5eac228e01 | |||
| 76d546305b | |||
| da928c78dc | |||
| 52c2fdb6db | |||
| 2dd5a72ccd | |||
| f3ab6b8bd7 | |||
| 5ecf59e7e7 | |||
| d0ea7aa45c | |||
| f8ab18d8da | |||
| 965d2829eb | |||
| 33e9767c16 | |||
| 70e54c98bf | |||
| 49f1b97b67 | |||
| 0ed5a6b5ec | |||
| bec44875f7 | |||
| f849d0e102 | |||
| 15102da85d | |||
| 7eee6d1cb2 | |||
| b0e8c4fbb8 | |||
| f1468b7d5a |
@@ -12,7 +12,8 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
REGISTRY_IMAGE: lobehub/lobe-chat-database
|
||||
REGISTRY_URL: jaworldwide.azurecr.io
|
||||
REGISTRY_IMAGE: jaworldwide.azurecr.io/oneja/ai/bot-database
|
||||
PR_TAG_PREFIX: pr-
|
||||
|
||||
jobs:
|
||||
@@ -70,8 +71,9 @@ jobs:
|
||||
- name: Docker login
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_REGISTRY_USER }}
|
||||
password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
|
||||
registry: ${{ env.REGISTRY_URL }}
|
||||
username: ${{ secrets.CONTAINER_REGISTRY_USER }}
|
||||
password: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
|
||||
|
||||
- name: Get commit SHA
|
||||
if: github.ref == 'refs/heads/main'
|
||||
@@ -147,8 +149,9 @@ jobs:
|
||||
- name: Docker login
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_REGISTRY_USER }}
|
||||
password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
|
||||
registry: ${{ env.REGISTRY_URL }}
|
||||
username: ${{ secrets.CONTAINER_REGISTRY_USER }}
|
||||
password: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
|
||||
|
||||
- name: Create manifest list and push
|
||||
working-directory: /tmp/digests
|
||||
|
||||
@@ -2,7 +2,7 @@ name: Lighthouse Badger
|
||||
|
||||
env:
|
||||
TOKEN_NAME: 'GH_TOKEN'
|
||||
REPO_BRANCH: 'lobehub/lobe-chat lighthouse'
|
||||
REPO_BRANCH: 'jaworldwideorg/OneJA-Bot lighthouse'
|
||||
USER_NAME: 'lobehubbot'
|
||||
USER_EMAIL: 'i@lobehub.com'
|
||||
AUDIT_TYPE: 'both'
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
name: Release CI
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
issues: write
|
||||
actions: write
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
release:
|
||||
|
||||
@@ -9,6 +9,12 @@ on:
|
||||
schedule:
|
||||
- cron: '0 */6 * * *' # every 6 hours
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
ignore_files:
|
||||
description: 'Files to ignore during sync (comma-separated)'
|
||||
required: false
|
||||
default: 'changelog/*,CHANGELOG.md'
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
sync_latest_from_upstream:
|
||||
@@ -17,13 +23,50 @@ jobs:
|
||||
if: ${{ github.event.repository.fork }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Clean issue notice
|
||||
uses: actions-cool/issues-helper@v3
|
||||
with:
|
||||
actions: 'close-issues'
|
||||
labels: '🚨 Sync Fail'
|
||||
labels: '🚨 Sync Failed'
|
||||
|
||||
- name: Extract ignore files
|
||||
id: extract_ignore
|
||||
run: |
|
||||
# Default files to ignore
|
||||
DEFAULT_IGNORE="Changelog.md"
|
||||
|
||||
# Get input files to ignore or use default
|
||||
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
|
||||
IGNORE_FILES="${{ github.event.inputs.ignore_files }}"
|
||||
else
|
||||
IGNORE_FILES="$DEFAULT_IGNORE"
|
||||
fi
|
||||
|
||||
# Convert to array and prepare for output
|
||||
echo "IGNORE_FILES=$IGNORE_FILES" >> $GITHUB_ENV
|
||||
echo "ignore_files=$IGNORE_FILES" >> $GITHUB_OUTPUT
|
||||
|
||||
# Create a backup of files to be preserved
|
||||
mkdir -p .file_backup
|
||||
|
||||
# Process each pattern (comma-separated)
|
||||
for pattern in $(echo $IGNORE_FILES | tr ',' ' '); do
|
||||
# Use find to handle wildcards
|
||||
for file in $(find . -type f -path "./$pattern" 2>/dev/null || echo "$pattern"); do
|
||||
# Skip if the file doesn't exist or if it's the find command returning the pattern
|
||||
if [ -f "$file" ]; then
|
||||
echo "Backing up $file"
|
||||
# Create directory structure in backup
|
||||
mkdir -p ".file_backup/$(dirname "$file")"
|
||||
cp "$file" ".file_backup/$file" || true
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
- name: Sync upstream changes
|
||||
id: sync
|
||||
@@ -32,23 +75,58 @@ jobs:
|
||||
upstream_sync_repo: lobehub/lobe-chat
|
||||
upstream_sync_branch: main
|
||||
target_sync_branch: main
|
||||
target_repo_token: ${{ secrets.GITHUB_TOKEN }} # automatically generated, no need to set
|
||||
target_repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
test_mode: false
|
||||
|
||||
- name: Restore ignored files
|
||||
if: steps.sync.outputs.has_new_commits == 'true'
|
||||
run: |
|
||||
# Process each pattern (comma-separated)
|
||||
for pattern in $(echo $IGNORE_FILES | tr ',' ' '); do
|
||||
# Find all matching files in the backup
|
||||
for file in $(find .file_backup -type f -path ".file_backup/$pattern" 2>/dev/null || find .file_backup -type f -name "$(basename "$pattern")" 2>/dev/null); do
|
||||
# Get the original file path
|
||||
original_file="${file#.file_backup/}"
|
||||
if [ -f "$file" ]; then
|
||||
echo "Restoring $original_file"
|
||||
# Ensure directory exists
|
||||
mkdir -p "$(dirname "$original_file")"
|
||||
cp "$file" "$original_file"
|
||||
git add "$original_file"
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# Commit the restored files if there are changes
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
git commit -m "Restore ignored files after sync: ${{ steps.extract_ignore.outputs.ignore_files }}"
|
||||
git push
|
||||
fi
|
||||
|
||||
- name: Sync check
|
||||
if: failure()
|
||||
uses: actions-cool/issues-helper@v3
|
||||
with:
|
||||
actions: 'create-issue'
|
||||
title: '🚨 同步失败 | Sync Fail'
|
||||
labels: '🚨 Sync Fail'
|
||||
title: '🚨 Sync Failed'
|
||||
labels: '🚨 Sync Failed'
|
||||
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.
|
||||
Due to a change in the workflow file of the upstream repository, GitHub has automatically suspended the scheduled automatic update. You need to manually sync your fork.
|
||||
|
||||
由于 [LobeChat][lobechat] 上游仓库的 workflow 文件变更,导致 GitHub 自动暂停了本次自动更新,你需要手动 Sync Fork 一次,请查看 [详细教程][tutorial-zh-CN]
|
||||
To manually sync your fork:
|
||||
1. Go to your fork's GitHub page
|
||||
2. Click on "Sync fork" button
|
||||
3. Click on "Update branch"
|
||||
|
||||

|
||||
If you encounter any issues, please contact the repository maintainers.
|
||||
|
||||
[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
|
||||
- name: Trigger Release Workflow
|
||||
if: success() && steps.sync.outputs.has_new_commits == 'true'
|
||||
run: |
|
||||
curl -X POST \
|
||||
-H "Authorization: token ${{ secrets.GH_TOKEN }}" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
https://api.github.com/repos/${{ github.repository }}/actions/workflows/release.yml/dispatches \
|
||||
-d '{"ref":"main"}'
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
npm run type-check
|
||||
npx --no-install lint-staged
|
||||
# .husky/post-merge
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
|
||||
npm run type-check || echo "Type check failed, please fix issues!"
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
lockfile=false
|
||||
resolution-mode=highest
|
||||
|
||||
ignore-workspace-root-check=true
|
||||
enable-pre-post-scripts=true
|
||||
|
||||
public-hoist-pattern[]=*@umijs/lint*
|
||||
public-hoist-pattern[]=*changelog*
|
||||
public-hoist-pattern[]=*commitlint*
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
const config = require('@lobehub/lint').semanticRelease;
|
||||
|
||||
// Remove NPM publishing by excluding "@semantic-release/npm" plugin
|
||||
// Keep or add other plugins like GitHub Releases
|
||||
config.plugins = config.plugins.filter((plugin) => plugin !== '@semantic-release/npm');
|
||||
|
||||
// Add GitHub only if required
|
||||
config.plugins.push([
|
||||
'@semantic-release/exec',
|
||||
{
|
||||
@@ -7,4 +12,32 @@ config.plugins.push([
|
||||
},
|
||||
]);
|
||||
|
||||
// Override GitHub repository URL without modifying package.json
|
||||
// Make sure @semantic-release/github is present in the plugins
|
||||
if (!config.plugins.some(plugin => Array.isArray(plugin) ? plugin[0] === '@semantic-release/github' : plugin === '@semantic-release/github')) {
|
||||
config.plugins.push([
|
||||
'@semantic-release/github',
|
||||
{
|
||||
repositoryUrl: 'https://github.com/jaworldwideorg/OneJA-Bot.git'
|
||||
}
|
||||
]);
|
||||
} else {
|
||||
// Find and update the existing GitHub plugin configuration
|
||||
config.plugins = config.plugins.map(plugin => {
|
||||
if (Array.isArray(plugin) && plugin[0] === '@semantic-release/github') {
|
||||
return [
|
||||
'@semantic-release/github',
|
||||
{
|
||||
...(plugin[1] || {}),
|
||||
repositoryUrl: 'https://github.com/jaworldwideorg/OneJA-Bot.git'
|
||||
}
|
||||
];
|
||||
}
|
||||
return plugin;
|
||||
});
|
||||
}
|
||||
|
||||
// Set repository URL in global config
|
||||
config.repositoryUrl = 'https://github.com/jaworldwideorg/OneJA-Bot.git';
|
||||
|
||||
module.exports = config;
|
||||
|
||||
@@ -2,752 +2,331 @@
|
||||
|
||||
# Changelog
|
||||
|
||||
### [Version 1.96.16](https://github.com/lobehub/lobe-chat/compare/v1.96.15...v1.96.16)
|
||||
|
||||
### [Version 1.95.1](https://github.com/jaworldwideorg/OneJA-Bot/compare/v1.95.0...v1.95.1)
|
||||
<sup>Released on **2025-07-03**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Update i18n.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Update i18n, closes [#8322](https://github.com/lobehub/lobe-chat/issues/8322) ([0c6b885](https://github.com/lobehub/lobe-chat/commit/0c6b885))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.15](https://github.com/lobehub/lobe-chat/compare/v1.96.14...v1.96.15)
|
||||
|
||||
<sup>Released on **2025-07-02**</sup>
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **misc**: Wrong Gemini 2.5 Pro thinkbudget.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **misc**: Wrong Gemini 2.5 Pro thinkbudget, closes [#8296](https://github.com/lobehub/lobe-chat/issues/8296) ([18920c5](https://github.com/lobehub/lobe-chat/commit/18920c5))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.14](https://github.com/lobehub/lobe-chat/compare/v1.96.13...v1.96.14)
|
||||
|
||||
<sup>Released on **2025-07-01**</sup>
|
||||
|
||||
#### ♻ Code Refactoring
|
||||
|
||||
- **misc**: Migrate to `@google/genai` SDK for Google Gemini API and Vertex AI.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Code refactoring
|
||||
|
||||
- **misc**: Migrate to `@google/genai` SDK for Google Gemini API and Vertex AI, closes [#7884](https://github.com/lobehub/lobe-chat/issues/7884) ([fef3e5f](https://github.com/lobehub/lobe-chat/commit/fef3e5f))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.13](https://github.com/lobehub/lobe-chat/compare/v1.96.12...v1.96.13)
|
||||
|
||||
<sup>Released on **2025-07-01**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Update i18n.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Update i18n, closes [#8306](https://github.com/lobehub/lobe-chat/issues/8306) ([80aad1d](https://github.com/lobehub/lobe-chat/commit/80aad1d))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.12](https://github.com/lobehub/lobe-chat/compare/v1.96.11...v1.96.12)
|
||||
|
||||
<sup>Released on **2025-06-30**</sup>
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **misc**: Pin `antd@5.26.2` to fix build error.
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Add DeepResearch models from OpenAI.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **misc**: Pin `antd@5.26.2` to fix build error, closes [#8303](https://github.com/lobehub/lobe-chat/issues/8303) ([44b6b01](https://github.com/lobehub/lobe-chat/commit/44b6b01))
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Add DeepResearch models from OpenAI, closes [#8291](https://github.com/lobehub/lobe-chat/issues/8291) ([87a5cbc](https://github.com/lobehub/lobe-chat/commit/87a5cbc))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.11](https://github.com/lobehub/lobe-chat/compare/v1.96.10...v1.96.11)
|
||||
|
||||
<sup>Released on **2025-06-28**</sup>
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **mermaid**: Firefox mermaid show error.
|
||||
- **misc**: Fix desktop chunk issue, pin `antd@5.26.2` to fix build error, Wrong Gemini 2.5 Pro thinkbudget.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **mermaid**: Firefox mermaid show error, closes [#8270](https://github.com/lobehub/lobe-chat/issues/8270) ([d9c5e7b](https://github.com/lobehub/lobe-chat/commit/d9c5e7b))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.10](https://github.com/lobehub/lobe-chat/compare/v1.96.9...v1.96.10)
|
||||
|
||||
<sup>Released on **2025-06-28**</sup>
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **misc**: Fix desktop chunk issue.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **misc**: Fix desktop chunk issue, closes [#8280](https://github.com/lobehub/lobe-chat/issues/8280) ([c193e65](https://github.com/lobehub/lobe-chat/commit/c193e65))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.9](https://github.com/lobehub/lobe-chat/compare/v1.96.8...v1.96.9)
|
||||
|
||||
<sup>Released on **2025-06-23**</sup>
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **misc**: Google Gemini tools declarations.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **misc**: Google Gemini tools declarations, closes [#8256](https://github.com/lobehub/lobe-chat/issues/8256) ([08f5d73](https://github.com/lobehub/lobe-chat/commit/08f5d73))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.8](https://github.com/lobehub/lobe-chat/compare/v1.96.7...v1.96.8)
|
||||
|
||||
<sup>Released on **2025-06-23**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Optimized Gemini thinkingBudget configuration.
|
||||
- **misc**: Add DeepResearch models from OpenAI, update i18n, update i18n.
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Optimized Gemini thinkingBudget configuration, closes [#8224](https://github.com/lobehub/lobe-chat/issues/8224) ([03625e8](https://github.com/lobehub/lobe-chat/commit/03625e8))
|
||||
|
||||
</details>
|
||||
#### Code refactoring
|
||||
|
||||
<div align="right">
|
||||
* **misc**: Migrate to `@google/genai` SDK for Google Gemini API and Vertex AI, closes [#7884](https://github.com/jaworldwideorg/OneJA-Bot/issues/7884) ([fef3e5f](https://github.com/jaworldwideorg/OneJA-Bot/commit/fef3e5f))
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.7](https://github.com/lobehub/lobe-chat/compare/v1.96.6...v1.96.7)
|
||||
|
||||
<sup>Released on **2025-06-23**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Add `blockAds` & `stealth` params for Browserless.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Add `blockAds` & `stealth` params for Browserless, closes [#8255](https://github.com/lobehub/lobe-chat/issues/8255) ([2ff3efa](https://github.com/lobehub/lobe-chat/commit/2ff3efa))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.6](https://github.com/lobehub/lobe-chat/compare/v1.96.5...v1.96.6)
|
||||
|
||||
<sup>Released on **2025-06-23**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Update i18n.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Update i18n, closes [#8253](https://github.com/lobehub/lobe-chat/issues/8253) ([b86dc9b](https://github.com/lobehub/lobe-chat/commit/b86dc9b))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.5](https://github.com/lobehub/lobe-chat/compare/v1.96.4...v1.96.5)
|
||||
|
||||
<sup>Released on **2025-06-22**</sup>
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **misc**: Remove unsupported parameters of Hunyuan.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **misc**: Remove unsupported parameters of Hunyuan, closes [#8247](https://github.com/lobehub/lobe-chat/issues/8247) ([826d724](https://github.com/lobehub/lobe-chat/commit/826d724))
|
||||
* **mermaid**: Firefox mermaid show error, closes [#8270](https://github.com/jaworldwideorg/OneJA-Bot/issues/8270) ([d9c5e7b](https://github.com/jaworldwideorg/OneJA-Bot/commit/d9c5e7b))
|
||||
* **misc**: Fix desktop chunk issue, closes [#8280](https://github.com/jaworldwideorg/OneJA-Bot/issues/8280) ([c193e65](https://github.com/jaworldwideorg/OneJA-Bot/commit/c193e65))
|
||||
* **misc**: Pin `antd@5.26.2` to fix build error, closes [#8303](https://github.com/jaworldwideorg/OneJA-Bot/issues/8303) ([44b6b01](https://github.com/jaworldwideorg/OneJA-Bot/commit/44b6b01))
|
||||
* **misc**: Wrong Gemini 2.5 Pro thinkbudget, closes [#8296](https://github.com/jaworldwideorg/OneJA-Bot/issues/8296) ([18920c5](https://github.com/jaworldwideorg/OneJA-Bot/commit/18920c5))
|
||||
|
||||
|
||||
|
||||
#### Styles
|
||||
|
||||
* **misc**: Add DeepResearch models from OpenAI, closes [#8291](https://github.com/jaworldwideorg/OneJA-Bot/issues/8291) ([87a5cbc](https://github.com/jaworldwideorg/OneJA-Bot/commit/87a5cbc))
|
||||
* **misc**: Update i18n, closes [#8322](https://github.com/jaworldwideorg/OneJA-Bot/issues/8322) ([0c6b885](https://github.com/jaworldwideorg/OneJA-Bot/commit/0c6b885))
|
||||
* **misc**: Update i18n, closes [#8306](https://github.com/jaworldwideorg/OneJA-Bot/issues/8306) ([80aad1d](https://github.com/jaworldwideorg/OneJA-Bot/commit/80aad1d))
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.4](https://github.com/lobehub/lobe-chat/compare/v1.96.3...v1.96.4)
|
||||
## [Version 1.95.0](https://github.com/jaworldwideorg/OneJA-Bot/compare/v1.94.5...v1.95.0)
|
||||
<sup>Released on **2025-06-25**</sup>
|
||||
|
||||
<sup>Released on **2025-06-22**</sup>
|
||||
|
||||
<br/>
|
||||
#### ✨ Features
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
- **misc**: Add Brave & Google PSE & Kagi as build-in Search Provider, add v0 (Vercel) provider support.
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
[](#readme-top)
|
||||
- **misc**: Fix `MiniMax-M1` reasoning tag missing, fix inputTemplate behavior, Google Gemini tools declarations, Remove unsupported parameters of Hunyuan.
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.3](https://github.com/lobehub/lobe-chat/compare/v1.96.2...v1.96.3)
|
||||
|
||||
<sup>Released on **2025-06-22**</sup>
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.2](https://github.com/lobehub/lobe-chat/compare/v1.96.1...v1.96.2)
|
||||
|
||||
<sup>Released on **2025-06-22**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **openrouter**: Add stable versions of Gemini 2.5 models.
|
||||
- **misc**: Update i18n.
|
||||
- **misc**: Add `blockAds` & `stealth` params for Browserless, Optimized Gemini thinkingBudget configuration, update i18n, update i18n.
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **openrouter**: Add stable versions of Gemini 2.5 models, closes [#8239](https://github.com/lobehub/lobe-chat/issues/8239) ([d34ecab](https://github.com/lobehub/lobe-chat/commit/d34ecab))
|
||||
- **misc**: Update i18n, closes [#8242](https://github.com/lobehub/lobe-chat/issues/8242) ([2d1babc](https://github.com/lobehub/lobe-chat/commit/2d1babc))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.96.1](https://github.com/lobehub/lobe-chat/compare/v1.96.0...v1.96.1)
|
||||
|
||||
<sup>Released on **2025-06-21**</sup>
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **misc**: Fix `MiniMax-M1` reasoning tag missing.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **misc**: Fix `MiniMax-M1` reasoning tag missing, closes [#8240](https://github.com/lobehub/lobe-chat/issues/8240) ([ea76c11](https://github.com/lobehub/lobe-chat/commit/ea76c11))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
## [Version 1.96.0](https://github.com/lobehub/lobe-chat/compare/v1.95.0...v1.96.0)
|
||||
|
||||
<sup>Released on **2025-06-20**</sup>
|
||||
|
||||
#### ✨ Features
|
||||
|
||||
- **misc**: Add v0 (Vercel) provider support.
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **misc**: Fix inputTemplate behavior.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### What's improved
|
||||
|
||||
- **misc**: Add v0 (Vercel) provider support, closes [#8235](https://github.com/lobehub/lobe-chat/issues/8235) ([5842a18](https://github.com/lobehub/lobe-chat/commit/5842a18))
|
||||
* **misc**: Add Brave & Google PSE & Kagi as build-in Search Provider, closes [#8172](https://github.com/jaworldwideorg/OneJA-Bot/issues/8172) ([16ae521](https://github.com/jaworldwideorg/OneJA-Bot/commit/16ae521))
|
||||
* **misc**: Add v0 (Vercel) provider support, closes [#8235](https://github.com/jaworldwideorg/OneJA-Bot/issues/8235) ([5842a18](https://github.com/jaworldwideorg/OneJA-Bot/commit/5842a18))
|
||||
|
||||
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **misc**: Fix inputTemplate behavior, closes [#8204](https://github.com/lobehub/lobe-chat/issues/8204) ([61c2c3c](https://github.com/lobehub/lobe-chat/commit/61c2c3c))
|
||||
* **misc**: Fix `MiniMax-M1` reasoning tag missing, closes [#8240](https://github.com/jaworldwideorg/OneJA-Bot/issues/8240) ([ea76c11](https://github.com/jaworldwideorg/OneJA-Bot/commit/ea76c11))
|
||||
* **misc**: Fix inputTemplate behavior, closes [#8204](https://github.com/jaworldwideorg/OneJA-Bot/issues/8204) ([61c2c3c](https://github.com/jaworldwideorg/OneJA-Bot/commit/61c2c3c))
|
||||
* **misc**: Google Gemini tools declarations, closes [#8256](https://github.com/jaworldwideorg/OneJA-Bot/issues/8256) ([08f5d73](https://github.com/jaworldwideorg/OneJA-Bot/commit/08f5d73))
|
||||
* **misc**: Remove unsupported parameters of Hunyuan, closes [#8247](https://github.com/jaworldwideorg/OneJA-Bot/issues/8247) ([826d724](https://github.com/jaworldwideorg/OneJA-Bot/commit/826d724))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
## [Version 1.95.0](https://github.com/lobehub/lobe-chat/compare/v1.94.17...v1.95.0)
|
||||
|
||||
<sup>Released on **2025-06-20**</sup>
|
||||
|
||||
#### ✨ Features
|
||||
|
||||
- **misc**: Add Brave & Google PSE & Kagi as build-in Search Provider.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### What's improved
|
||||
|
||||
- **misc**: Add Brave & Google PSE & Kagi as build-in Search Provider, closes [#8172](https://github.com/lobehub/lobe-chat/issues/8172) ([16ae521](https://github.com/lobehub/lobe-chat/commit/16ae521))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.17](https://github.com/lobehub/lobe-chat/compare/v1.94.16...v1.94.17)
|
||||
|
||||
<sup>Released on **2025-06-20**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Update i18n.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Update i18n, closes [#8233](https://github.com/lobehub/lobe-chat/issues/8233) ([88c4362](https://github.com/lobehub/lobe-chat/commit/88c4362))
|
||||
* **openrouter**: Add stable versions of Gemini 2.5 models, closes [#8239](https://github.com/jaworldwideorg/OneJA-Bot/issues/8239) ([d34ecab](https://github.com/jaworldwideorg/OneJA-Bot/commit/d34ecab))
|
||||
* **misc**: Add `blockAds` & `stealth` params for Browserless, closes [#8255](https://github.com/jaworldwideorg/OneJA-Bot/issues/8255) ([2ff3efa](https://github.com/jaworldwideorg/OneJA-Bot/commit/2ff3efa))
|
||||
* **misc**: Optimized Gemini thinkingBudget configuration, closes [#8224](https://github.com/jaworldwideorg/OneJA-Bot/issues/8224) ([03625e8](https://github.com/jaworldwideorg/OneJA-Bot/commit/03625e8))
|
||||
* **misc**: Update i18n, closes [#8253](https://github.com/jaworldwideorg/OneJA-Bot/issues/8253) ([b86dc9b](https://github.com/jaworldwideorg/OneJA-Bot/commit/b86dc9b))
|
||||
* **misc**: Update i18n, closes [#8242](https://github.com/jaworldwideorg/OneJA-Bot/issues/8242) ([2d1babc](https://github.com/jaworldwideorg/OneJA-Bot/commit/2d1babc))
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.16](https://github.com/lobehub/lobe-chat/compare/v1.94.15...v1.94.16)
|
||||
### [Version 1.94.5](https://github.com/jaworldwideorg/OneJA-Bot/compare/v1.94.4...v1.94.5)
|
||||
<sup>Released on **2025-06-20**</sup>
|
||||
|
||||
<sup>Released on **2025-06-19**</sup>
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **misc**: Correctly pass `reasoning.summary`.
|
||||
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Add MiniMax-M1 model, Update Gemini 2.5 Pro, Flash GA models. Add Gemini 2.5 Flash-Lite Preview model, update i18n, update i18n, update model card for Gemini 2.5 Pro via OpenRouter.
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **misc**: Correctly pass `reasoning.summary`, closes [#8221](https://github.com/lobehub/lobe-chat/issues/8221) ([da79815](https://github.com/lobehub/lobe-chat/commit/da79815))
|
||||
* **misc**: Correctly pass `reasoning.summary`, closes [#8221](https://github.com/jaworldwideorg/OneJA-Bot/issues/8221) ([da79815](https://github.com/jaworldwideorg/OneJA-Bot/commit/da79815))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.15](https://github.com/lobehub/lobe-chat/compare/v1.94.14...v1.94.15)
|
||||
|
||||
<sup>Released on **2025-06-19**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Update model card for Gemini 2.5 Pro via OpenRouter.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Update model card for Gemini 2.5 Pro via OpenRouter, closes [#8129](https://github.com/lobehub/lobe-chat/issues/8129) ([c96d9ef](https://github.com/lobehub/lobe-chat/commit/c96d9ef))
|
||||
* **misc**: Add MiniMax-M1 model, closes [#8209](https://github.com/jaworldwideorg/OneJA-Bot/issues/8209) ([41a0178](https://github.com/jaworldwideorg/OneJA-Bot/commit/41a0178))
|
||||
* **misc**: Update Gemini 2.5 Pro, Flash GA models. Add Gemini 2.5 Flash-Lite Preview model, closes [#8213](https://github.com/jaworldwideorg/OneJA-Bot/issues/8213) ([39ef8be](https://github.com/jaworldwideorg/OneJA-Bot/commit/39ef8be))
|
||||
* **misc**: Update i18n, closes [#8233](https://github.com/jaworldwideorg/OneJA-Bot/issues/8233) ([88c4362](https://github.com/jaworldwideorg/OneJA-Bot/commit/88c4362))
|
||||
* **misc**: Update i18n, closes [#8225](https://github.com/jaworldwideorg/OneJA-Bot/issues/8225) ([53e1784](https://github.com/jaworldwideorg/OneJA-Bot/commit/53e1784))
|
||||
* **misc**: Update model card for Gemini 2.5 Pro via OpenRouter, closes [#8129](https://github.com/jaworldwideorg/OneJA-Bot/issues/8129) ([c96d9ef](https://github.com/jaworldwideorg/OneJA-Bot/commit/c96d9ef))
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.14](https://github.com/lobehub/lobe-chat/compare/v1.94.13...v1.94.14)
|
||||
|
||||
<sup>Released on **2025-06-19**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Update i18n.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Update i18n, closes [#8225](https://github.com/lobehub/lobe-chat/issues/8225) ([53e1784](https://github.com/lobehub/lobe-chat/commit/53e1784))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.13](https://github.com/lobehub/lobe-chat/compare/v1.94.12...v1.94.13)
|
||||
|
||||
### [Version 1.94.4](https://github.com/jaworldwideorg/OneJA-Bot/compare/v1.94.3...v1.94.4)
|
||||
<sup>Released on **2025-06-18**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Update Gemini 2.5 Pro, Flash GA models. Add Gemini 2.5 Flash-Lite Preview model.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Update Gemini 2.5 Pro, Flash GA models. Add Gemini 2.5 Flash-Lite Preview model, closes [#8213](https://github.com/lobehub/lobe-chat/issues/8213) ([39ef8be](https://github.com/lobehub/lobe-chat/commit/39ef8be))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.12](https://github.com/lobehub/lobe-chat/compare/v1.94.11...v1.94.12)
|
||||
|
||||
<sup>Released on **2025-06-18**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Add MiniMax-M1 model.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Add MiniMax-M1 model, closes [#8209](https://github.com/lobehub/lobe-chat/issues/8209) ([41a0178](https://github.com/lobehub/lobe-chat/commit/41a0178))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.11](https://github.com/lobehub/lobe-chat/compare/v1.94.10...v1.94.11)
|
||||
|
||||
<sup>Released on **2025-06-17**</sup>
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **misc**: Enhance the multi-display window opening experience.
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **misc**: Enhance the multi-display window opening experience, closes [#8176](https://github.com/lobehub/lobe-chat/issues/8176) ([b132e66](https://github.com/lobehub/lobe-chat/commit/b132e66))
|
||||
* **misc**: Enhance the multi-display window opening experience, closes [#8176](https://github.com/jaworldwideorg/OneJA-Bot/issues/8176) ([b132e66](https://github.com/jaworldwideorg/OneJA-Bot/commit/b132e66))
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.10](https://github.com/lobehub/lobe-chat/compare/v1.94.9...v1.94.10)
|
||||
### [Version 1.94.3](https://github.com/jaworldwideorg/OneJA-Bot/compare/v1.94.2...v1.94.3)
|
||||
<sup>Released on **2025-06-16**</sup>
|
||||
|
||||
<sup>Released on **2025-06-15**</sup>
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **misc**: Improve chat selectors and enhance topic handling logic.
|
||||
- **misc**: Correctly handle `reasoning_effort`, improve chat selectors and enhance topic handling logic.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **misc**: Improve chat selectors and enhance topic handling logic, closes [#8133](https://github.com/lobehub/lobe-chat/issues/8133) [#8117](https://github.com/lobehub/lobe-chat/issues/8117) ([15b24f1](https://github.com/lobehub/lobe-chat/commit/15b24f1))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.9](https://github.com/lobehub/lobe-chat/compare/v1.94.8...v1.94.9)
|
||||
|
||||
<sup>Released on **2025-06-15**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Add `kimi-thinking-preview` model from Moonshot.
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Add `kimi-thinking-preview` model from Moonshot, closes [#8171](https://github.com/lobehub/lobe-chat/issues/8171) ([93d677c](https://github.com/lobehub/lobe-chat/commit/93d677c))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.8](https://github.com/lobehub/lobe-chat/compare/v1.94.7...v1.94.8)
|
||||
|
||||
<sup>Released on **2025-06-15**</sup>
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **misc**: Correctly handle `reasoning_effort`.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **misc**: Correctly handle `reasoning_effort`, closes [#8180](https://github.com/lobehub/lobe-chat/issues/8180) ([1c04736](https://github.com/lobehub/lobe-chat/commit/1c04736))
|
||||
* **misc**: Correctly handle `reasoning_effort`, closes [#8180](https://github.com/jaworldwideorg/OneJA-Bot/issues/8180) ([1c04736](https://github.com/jaworldwideorg/OneJA-Bot/commit/1c04736))
|
||||
* **misc**: Improve chat selectors and enhance topic handling logic, closes [#8133](https://github.com/jaworldwideorg/OneJA-Bot/issues/8133) [#8117](https://github.com/jaworldwideorg/OneJA-Bot/issues/8117) ([15b24f1](https://github.com/jaworldwideorg/OneJA-Bot/commit/15b24f1))
|
||||
|
||||
</details>
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.7](https://github.com/lobehub/lobe-chat/compare/v1.94.6...v1.94.7)
|
||||
|
||||
<sup>Released on **2025-06-12**</sup>
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Add Doubao Seed 1.6 model.
|
||||
|
||||
<br/>
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
#### Styles
|
||||
|
||||
- **misc**: Add Doubao Seed 1.6 model, closes [#8167](https://github.com/lobehub/lobe-chat/issues/8167) ([bdfa44b](https://github.com/lobehub/lobe-chat/commit/bdfa44b))
|
||||
* **misc**: Add `kimi-thinking-preview` model from Moonshot, closes [#8171](https://github.com/jaworldwideorg/OneJA-Bot/issues/8171) ([93d677c](https://github.com/jaworldwideorg/OneJA-Bot/commit/93d677c))
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.6](https://github.com/lobehub/lobe-chat/compare/v1.94.5...v1.94.6)
|
||||
### [Version 1.94.2](https://github.com/jaworldwideorg/OneJA-Bot/compare/v1.94.1...v1.94.2)
|
||||
<sup>Released on **2025-06-13**</sup>
|
||||
|
||||
<sup>Released on **2025-06-12**</sup>
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **misc**: Abort the Gemini request correctly & Add openai o3-pro.
|
||||
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **misc**: Add Doubao Seed 1.6 model.
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
|
||||
|
||||
#### What's fixed
|
||||
|
||||
- **misc**: Abort the Gemini request correctly & Add openai o3-pro, closes [#8135](https://github.com/lobehub/lobe-chat/issues/8135) ([c79f1b9](https://github.com/lobehub/lobe-chat/commit/c79f1b9))
|
||||
* **misc**: Abort the Gemini request correctly & Add openai o3-pro, closes [#8135](https://github.com/jaworldwideorg/OneJA-Bot/issues/8135) ([c79f1b9](https://github.com/jaworldwideorg/OneJA-Bot/commit/c79f1b9))
|
||||
|
||||
|
||||
|
||||
#### Styles
|
||||
|
||||
* **misc**: Add Doubao Seed 1.6 model, closes [#8167](https://github.com/jaworldwideorg/OneJA-Bot/issues/8167) ([bdfa44b](https://github.com/jaworldwideorg/OneJA-Bot/commit/bdfa44b))
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
</div>
|
||||
|
||||
### [Version 1.94.1](https://github.com/jaworldwideorg/OneJA-Bot/compare/v1.94.0...v1.94.1)
|
||||
<sup>Released on **2025-06-12**</sup>
|
||||
|
||||
|
||||
#### 🐛 Bug Fixes
|
||||
|
||||
- **chat**: Improve response animation merging logic.
|
||||
- **misc**: Update Gemini range of thinkingBudget.
|
||||
|
||||
|
||||
#### 💄 Styles
|
||||
|
||||
- **ModelSelect**: Improve mobile layout and text overflow handling.
|
||||
- **misc**: Support `web_search_preview` & fix some bug form OpenAI Response API, Transition animation switch, update pplx abilities tags, support `vision`.
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
<summary><kbd>Improvements and Fixes</kbd></summary>
|
||||
|
||||
|
||||
|
||||
#### What's fixed
|
||||
|
||||
* **chat**: Improve response animation merging logic, closes [#8160](https://github.com/jaworldwideorg/OneJA-Bot/issues/8160) ([9d81cdc](https://github.com/jaworldwideorg/OneJA-Bot/commit/9d81cdc))
|
||||
* **misc**: Update Gemini range of thinkingBudget, closes [#8122](https://github.com/jaworldwideorg/OneJA-Bot/issues/8122) ([7331e8a](https://github.com/jaworldwideorg/OneJA-Bot/commit/7331e8a))
|
||||
|
||||
|
||||
|
||||
#### Styles
|
||||
|
||||
* **ModelSelect**: Improve mobile layout and text overflow handling, closes [#8118](https://github.com/jaworldwideorg/OneJA-Bot/issues/8118) ([d97aa49](https://github.com/jaworldwideorg/OneJA-Bot/commit/d97aa49))
|
||||
* **misc**: Support `web_search_preview` & fix some bug form OpenAI Response API, closes [#8131](https://github.com/jaworldwideorg/OneJA-Bot/issues/8131) ([b2983f0](https://github.com/jaworldwideorg/OneJA-Bot/commit/b2983f0))
|
||||
* **misc**: Transition animation switch, closes [#7981](https://github.com/jaworldwideorg/OneJA-Bot/issues/7981) ([dd4ab3f](https://github.com/jaworldwideorg/OneJA-Bot/commit/dd4ab3f))
|
||||
* **misc**: Update pplx abilities tags, support `vision`, closes [#8119](https://github.com/jaworldwideorg/OneJA-Bot/issues/8119) ([5c2e5f7](https://github.com/jaworldwideorg/OneJA-Bot/commit/5c2e5f7))
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<div align="right">
|
||||
|
||||
[](#readme-top)
|
||||
|
||||
@@ -183,7 +183,7 @@ In this way, LobeChat can more flexibly adapt to the needs of different users, w
|
||||
|
||||
We have implemented support for the following model service providers:
|
||||
|
||||
<!-- PROVIDER LIST -->
|
||||
<!-- PROVIDER LIST -->
|
||||
|
||||
- **[OpenAI](https://lobechat.com/discover/provider/openai)**: OpenAI is a global leader in artificial intelligence research, with models like the GPT series pushing the frontiers of natural language processing. OpenAI is committed to transforming multiple industries through innovative and efficient AI solutions. Their products demonstrate significant performance and cost-effectiveness, widely used in research, business, and innovative applications.
|
||||
- **[Ollama](https://lobechat.com/discover/provider/ollama)**: Ollama provides models that cover a wide range of fields, including code generation, mathematical operations, multilingual processing, and conversational interaction, catering to diverse enterprise-level and localized deployment needs.
|
||||
@@ -224,7 +224,7 @@ We have implemented support for the following model service providers:
|
||||
- **[InternLM](https://lobechat.com/discover/provider/internlm)**: An open-source organization dedicated to the research and development of large model toolchains. It provides an efficient and user-friendly open-source platform for all AI developers, making cutting-edge large models and algorithm technologies easily accessible.
|
||||
- **[Higress](https://lobechat.com/discover/provider/higress)**: Higress is a cloud-native API gateway that was developed internally at Alibaba to address the issues of Tengine reload affecting long-lived connections and the insufficient load balancing capabilities for gRPC/Dubbo.
|
||||
- **[Gitee AI](https://lobechat.com/discover/provider/giteeai)**: Gitee AI's Serverless API provides AI developers with an out of the box large model inference API service.
|
||||
- **[Taichu](https://lobechat.com/discover/provider/taichu)**: The Institute of Automation, Chinese Academy of Sciences, and Wuhan Artificial Intelligence Research Institute have launched a new generation of multimodal large models, supporting comprehensive question-answering tasks such as multi-turn Q\&A, text creation, image generation, 3D understanding, and signal analysis, with stronger cognitive, understanding, and creative abilities, providing a new interactive experience.
|
||||
- **[Taichu](https://lobechat.com/discover/provider/taichu)**: The Institute of Automation, Chinese Academy of Sciences, and Wuhan Artificial Intelligence Research Institute have launched a new generation of multimodal large models, supporting comprehensive question-answering tasks such as multi-turn Q&A, text creation, image generation, 3D understanding, and signal analysis, with stronger cognitive, understanding, and creative abilities, providing a new interactive experience.
|
||||
- **[360 AI](https://lobechat.com/discover/provider/ai360)**: 360 AI is an AI model and service platform launched by 360 Company, offering various advanced natural language processing models, including 360GPT2 Pro, 360GPT Pro, 360GPT Turbo, and 360GPT Turbo Responsibility 8K. These models combine large-scale parameters and multimodal capabilities, widely applied in text generation, semantic understanding, dialogue systems, and code generation. With flexible pricing strategies, 360 AI meets diverse user needs, supports developer integration, and promotes the innovation and development of intelligent applications.
|
||||
- **[Search1API](https://lobechat.com/discover/provider/search1api)**: Search1API provides access to the DeepSeek series of models that can connect to the internet as needed, including standard and fast versions, supporting a variety of model sizes.
|
||||
- **[InfiniAI](https://lobechat.com/discover/provider/infiniai)**: Provides high-performance, easy-to-use, and secure large model services for application developers, covering the entire process from large model development to service deployment.
|
||||
@@ -325,7 +325,7 @@ In addition, these plugins are not limited to news aggregation, but can also ext
|
||||
>
|
||||
> Learn more about [📘 Plugin Usage][docs-usage-plugin] by checking it out.
|
||||
|
||||
<!-- PLUGIN LIST -->
|
||||
<!-- PLUGIN LIST -->
|
||||
|
||||
| Recent Submits | Description |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
|
||||
@@ -364,7 +364,7 @@ Our marketplace is not just a showcase platform but also a collaborative space.
|
||||
> 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 -->
|
||||
<!-- AGENT LIST -->
|
||||
|
||||
| Recent Submits | Description |
|
||||
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
|
||||
@@ -183,18 +183,18 @@ LobeChat 支持文件上传与知识库功能,你可以上传文件、图片
|
||||
|
||||
我们已经实现了对以下模型服务商的支持:
|
||||
|
||||
<!-- PROVIDER LIST -->
|
||||
<!-- PROVIDER LIST -->
|
||||
|
||||
- **[OpenAI](https://lobechat.com/discover/provider/openai)**: OpenAI 是全球领先的人工智能研究机构,其开发的模型如 GPT 系列推动了自然语言处理的前沿。OpenAI 致力于通过创新和高效的 AI 解决方案改变多个行业。他们的产品具有显著的性能和经济性,广泛用于研究、商业和创新应用。
|
||||
- **[OpenAI](https://lobechat.com/discover/provider/openai)**: OpenAI 是全球领先的人工智能研究机构,其开发的模型如GPT系列推动了自然语言处理的前沿。OpenAI 致力于通过创新和高效的AI解决方案改变多个行业。他们的产品具有显著的性能和经济性,广泛用于研究、商业和创新应用。
|
||||
- **[Ollama](https://lobechat.com/discover/provider/ollama)**: Ollama 提供的模型广泛涵盖代码生成、数学运算、多语种处理和对话互动等领域,支持企业级和本地化部署的多样化需求。
|
||||
- **[Anthropic](https://lobechat.com/discover/provider/anthropic)**: Anthropic 是一家专注于人工智能研究和开发的公司,提供了一系列先进的语言模型,如 Claude 3.5 Sonnet、Claude 3 Sonnet、Claude 3 Opus 和 Claude 3 Haiku。这些模型在智能、速度和成本之间取得了理想的平衡,适用于从企业级工作负载到快速响应的各种应用场景。Claude 3.5 Sonnet 作为其最新模型,在多项评估中表现优异,同时保持了较高的性价比。
|
||||
- **[Bedrock](https://lobechat.com/discover/provider/bedrock)**: Bedrock 是亚马逊 AWS 提供的一项服务,专注于为企业提供先进的 AI 语言模型和视觉模型。其模型家族包括 Anthropic 的 Claude 系列、Meta 的 Llama 3.1 系列等,涵盖从轻量级到高性能的多种选择,支持文本生成、对话、图像处理等多种任务,适用于不同规模和需求的企业应用。
|
||||
- **[Google](https://lobechat.com/discover/provider/google)**: Google 的 Gemini 系列是其最先进、通用的 AI 模型,由 Google DeepMind 打造,专为多模态设计,支持文本、代码、图像、音频和视频的无缝理解与处理。适用于从数据中心到移动设备的多种环境,极大提升了 AI 模型的效率与应用广泛性。
|
||||
- **[Google](https://lobechat.com/discover/provider/google)**: Google 的 Gemini 系列是其最先进、通用的 AI模型,由 Google DeepMind 打造,专为多模态设计,支持文本、代码、图像、音频和视频的无缝理解与处理。适用于从数据中心到移动设备的多种环境,极大提升了AI模型的效率与应用广泛性。
|
||||
- **[DeepSeek](https://lobechat.com/discover/provider/deepseek)**: DeepSeek 是一家专注于人工智能技术研究和应用的公司,其最新模型 DeepSeek-V3 多项评测成绩超越 Qwen2.5-72B 和 Llama-3.1-405B 等开源模型,性能对齐领军闭源模型 GPT-4o 与 Claude-3.5-Sonnet。
|
||||
- **[HuggingFace](https://lobechat.com/discover/provider/huggingface)**: HuggingFace Inference API 提供了一种快速且免费的方式,让您可以探索成千上万种模型,适用于各种任务。无论您是在为新应用程序进行原型设计,还是在尝试机器学习的功能,这个 API 都能让您即时访问多个领域的高性能模型。
|
||||
- **[OpenRouter](https://lobechat.com/discover/provider/openrouter)**: OpenRouter 是一个提供多种前沿大模型接口的服务平台,支持 OpenAI、Anthropic、LLaMA 及更多,适合多样化的开发和应用需求。用户可根据自身需求灵活选择最优的模型和价格,助力 AI 体验的提升。
|
||||
- **[OpenRouter](https://lobechat.com/discover/provider/openrouter)**: OpenRouter 是一个提供多种前沿大模型接口的服务平台,支持 OpenAI、Anthropic、LLaMA 及更多,适合多样化的开发和应用需求。用户可根据自身需求灵活选择最优的模型和价格,助力AI体验的提升。
|
||||
- **[Cloudflare Workers AI](https://lobechat.com/discover/provider/cloudflare)**: 在 Cloudflare 的全球网络上运行由无服务器 GPU 驱动的机器学习模型。
|
||||
- **[GitHub](https://lobechat.com/discover/provider/github)**: 通过 GitHub 模型,开发人员可以成为 AI 工程师,并使用行业领先的 AI 模型进行构建。
|
||||
- **[GitHub](https://lobechat.com/discover/provider/github)**: 通过GitHub模型,开发人员可以成为AI工程师,并使用行业领先的AI模型进行构建。
|
||||
|
||||
<details><summary><kbd>See more providers (+31)</kbd></summary>
|
||||
|
||||
@@ -203,18 +203,18 @@ LobeChat 支持文件上传与知识库功能,你可以上传文件、图片
|
||||
- **[Together AI](https://lobechat.com/discover/provider/togetherai)**: Together AI 致力于通过创新的 AI 模型实现领先的性能,提供广泛的自定义能力,包括快速扩展支持和直观的部署流程,满足企业的各种需求。
|
||||
- **[Fireworks AI](https://lobechat.com/discover/provider/fireworksai)**: Fireworks AI 是一家领先的高级语言模型服务商,专注于功能调用和多模态处理。其最新模型 Firefunction V2 基于 Llama-3,优化用于函数调用、对话及指令跟随。视觉语言模型 FireLLaVA-13B 支持图像和文本混合输入。其他 notable 模型包括 Llama 系列和 Mixtral 系列,提供高效的多语言指令跟随与生成支持。
|
||||
- **[Groq](https://lobechat.com/discover/provider/groq)**: Groq 的 LPU 推理引擎在最新的独立大语言模型(LLM)基准测试中表现卓越,以其惊人的速度和效率重新定义了 AI 解决方案的标准。Groq 是一种即时推理速度的代表,在基于云的部署中展现了良好的性能。
|
||||
- **[Perplexity](https://lobechat.com/discover/provider/perplexity)**: Perplexity 是一家领先的对话生成模型提供商,提供多种先进的 Llama 3.1 模型,支持在线和离线应用,特别适用于复杂的自然语言处理任务。
|
||||
- **[Perplexity](https://lobechat.com/discover/provider/perplexity)**: Perplexity 是一家领先的对话生成模型提供商,提供多种先进的Llama 3.1模型,支持在线和离线应用,特别适用于复杂的自然语言处理任务。
|
||||
- **[Mistral](https://lobechat.com/discover/provider/mistral)**: Mistral 提供先进的通用、专业和研究型模型,广泛应用于复杂推理、多语言任务、代码生成等领域,通过功能调用接口,用户可以集成自定义功能,实现特定应用。
|
||||
- **[ModelScope](https://lobechat.com/discover/provider/modelscope)**: ModelScope 是阿里云推出的模型即服务平台,提供丰富的 AI 模型和推理服务。
|
||||
- **[ModelScope](https://lobechat.com/discover/provider/modelscope)**: ModelScope是阿里云推出的模型即服务平台,提供丰富的AI模型和推理服务。
|
||||
- **[Ai21Labs](https://lobechat.com/discover/provider/ai21)**: AI21 Labs 为企业构建基础模型和人工智能系统,加速生成性人工智能在生产中的应用。
|
||||
- **[Upstage](https://lobechat.com/discover/provider/upstage)**: Upstage 专注于为各种商业需求开发 AI 模型,包括 Solar LLM 和文档 AI,旨在实现工作的人造通用智能(AGI)。通过 Chat API 创建简单的对话代理,并支持功能调用、翻译、嵌入以及特定领域应用。
|
||||
- **[Upstage](https://lobechat.com/discover/provider/upstage)**: Upstage 专注于为各种商业需求开发AI模型,包括 Solar LLM 和文档 AI,旨在实现工作的人造通用智能(AGI)。通过 Chat API 创建简单的对话代理,并支持功能调用、翻译、嵌入以及特定领域应用。
|
||||
- **[xAI (Grok)](https://lobechat.com/discover/provider/xai)**: xAI 是一家致力于构建人工智能以加速人类科学发现的公司。我们的使命是推动我们对宇宙的共同理解。
|
||||
- **[Aliyun Bailian](https://lobechat.com/discover/provider/qwen)**: 通义千问是阿里云自主研发的超大规模语言模型,具有强大的自然语言理解和生成能力。它可以回答各种问题、创作文字内容、表达观点看法、撰写代码等,在多个领域发挥作用。
|
||||
- **[Wenxin](https://lobechat.com/discover/provider/wenxin)**: 企业级一站式大模型与 AI 原生应用开发及服务平台,提供最全面易用的生成式人工智能模型开发、应用开发全流程工具链
|
||||
- **[Wenxin](https://lobechat.com/discover/provider/wenxin)**: 企业级一站式大模型与AI原生应用开发及服务平台,提供最全面易用的生成式人工智能模型开发、应用开发全流程工具链
|
||||
- **[Hunyuan](https://lobechat.com/discover/provider/hunyuan)**: 由腾讯研发的大语言模型,具备强大的中文创作能力,复杂语境下的逻辑推理能力,以及可靠的任务执行能力
|
||||
- **[ZhiPu](https://lobechat.com/discover/provider/zhipu)**: 智谱 AI 提供多模态与语言模型的开放平台,支持广泛的 AI 应用场景,包括文本处理、图像理解与编程辅助等。
|
||||
- **[ZhiPu](https://lobechat.com/discover/provider/zhipu)**: 智谱 AI 提供多模态与语言模型的开放平台,支持广泛的AI应用场景,包括文本处理、图像理解与编程辅助等。
|
||||
- **[SiliconCloud](https://lobechat.com/discover/provider/siliconcloud)**: SiliconCloud,基于优秀开源基础模型的高性价比 GenAI 云服务
|
||||
- **[01.AI](https://lobechat.com/discover/provider/zeroone)**: 零一万物致力于推动以人为本的 AI 2.0 技术革命,旨在通过大语言模型创造巨大的经济和社会价值,并开创新的 AI 生态与商业模式。
|
||||
- **[01.AI](https://lobechat.com/discover/provider/zeroone)**: 零一万物致力于推动以人为本的AI 2.0技术革命,旨在通过大语言模型创造巨大的经济和社会价值,并开创新的AI生态与商业模式。
|
||||
- **[Spark](https://lobechat.com/discover/provider/spark)**: 科大讯飞星火大模型提供多领域、多语言的强大 AI 能力,利用先进的自然语言处理技术,构建适用于智能硬件、智慧医疗、智慧金融等多种垂直场景的创新应用。
|
||||
- **[SenseNova](https://lobechat.com/discover/provider/sensenova)**: 商汤日日新,依托商汤大装置的强大的基础支撑,提供高效易用的全栈大模型服务。
|
||||
- **[Stepfun](https://lobechat.com/discover/provider/stepfun)**: 阶级星辰大模型具备行业领先的多模态及复杂推理能力,支持超长文本理解和强大的自主调度搜索引擎功能。
|
||||
@@ -224,7 +224,7 @@ LobeChat 支持文件上传与知识库功能,你可以上传文件、图片
|
||||
- **[InternLM](https://lobechat.com/discover/provider/internlm)**: 致力于大模型研究与开发工具链的开源组织。为所有 AI 开发者提供高效、易用的开源平台,让最前沿的大模型与算法技术触手可及
|
||||
- **[Higress](https://lobechat.com/discover/provider/higress)**: Higress 是一款云原生 API 网关,在阿里内部为解决 Tengine reload 对长连接业务有损,以及 gRPC/Dubbo 负载均衡能力不足而诞生。
|
||||
- **[Gitee AI](https://lobechat.com/discover/provider/giteeai)**: Gitee AI 的 Serverless API 为 AI 开发者提供开箱即用的大模型推理 API 服务。
|
||||
- **[Taichu](https://lobechat.com/discover/provider/taichu)**: 中科院自动化研究所和武汉人工智能研究院推出新一代多模态大模型,支持多轮问答、文本创作、图像生成、3D 理解、信号分析等全面问答任务,拥有更强的认知、理解、创作能力,带来全新互动体验。
|
||||
- **[Taichu](https://lobechat.com/discover/provider/taichu)**: 中科院自动化研究所和武汉人工智能研究院推出新一代多模态大模型,支持多轮问答、文本创作、图像生成、3D理解、信号分析等全面问答任务,拥有更强的认知、理解、创作能力,带来全新互动体验。
|
||||
- **[360 AI](https://lobechat.com/discover/provider/ai360)**: 360 AI 是 360 公司推出的 AI 模型和服务平台,提供多种先进的自然语言处理模型,包括 360GPT2 Pro、360GPT Pro、360GPT Turbo 和 360GPT Turbo Responsibility 8K。这些模型结合了大规模参数和多模态能力,广泛应用于文本生成、语义理解、对话系统与代码生成等领域。通过灵活的定价策略,360 AI 满足多样化用户需求,支持开发者集成,推动智能化应用的革新和发展。
|
||||
- **[Search1API](https://lobechat.com/discover/provider/search1api)**: Search1API 提供可根据需要自行联网的 DeepSeek 系列模型的访问,包括标准版和快速版本,支持多种参数规模的模型选择。
|
||||
- **[InfiniAI](https://lobechat.com/discover/provider/infiniai)**: 为应用开发者提供高性能、易上手、安全可靠的大模型服务,覆盖从大模型开发到大模型服务化部署的全流程。
|
||||
@@ -318,14 +318,14 @@ LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地
|
||||
|
||||
> 通过文档了解更多 [📘 插件使用][docs-usage-plugin]
|
||||
|
||||
<!-- PLUGIN LIST -->
|
||||
<!-- PLUGIN LIST -->
|
||||
|
||||
| 最近新增 | 描述 |
|
||||
| -------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| [PortfolioMeta](https://lobechat.com/discover/plugin/StockData)<br/><sup>By **portfoliometa** on **2025-05-27**</sup> | 分析股票并获取全面的实时投资数据和分析。<br/>`股票` |
|
||||
| [网页](https://lobechat.com/discover/plugin/web)<br/><sup>By **Proghit** on **2025-01-24**</sup> | 智能网页搜索,读取和分析页面,以提供来自 Google 结果的全面答案。<br/>`网页` `搜索` |
|
||||
| [必应网页搜索](https://lobechat.com/discover/plugin/Bingsearch-identifier)<br/><sup>By **FineHow** on **2024-12-22**</sup> | 通过 BingApi 搜索互联网上的信息<br/>`bingsearch` |
|
||||
| [谷歌自定义搜索引擎](https://lobechat.com/discover/plugin/google-cse)<br/><sup>By **vsnthdev** on **2024-12-02**</sup> | 通过他们的官方自定义搜索引擎 API 搜索谷歌。<br/>`网络` `搜索` |
|
||||
| 最近新增 | 描述 |
|
||||
| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
|
||||
| [PortfolioMeta](https://lobechat.com/discover/plugin/StockData)<br/><sup>By **portfoliometa** on **2025-05-27**</sup> | 分析股票并获取全面的实时投资数据和分析。<br/>`股票` |
|
||||
| [网页](https://lobechat.com/discover/plugin/web)<br/><sup>By **Proghit** on **2025-01-24**</sup> | 智能网页搜索,读取和分析页面,以提供来自Google结果的全面答案。<br/>`网页` `搜索` |
|
||||
| [必应网页搜索](https://lobechat.com/discover/plugin/Bingsearch-identifier)<br/><sup>By **FineHow** on **2024-12-22**</sup> | 通过BingApi搜索互联网上的信息<br/>`bingsearch` |
|
||||
| [谷歌自定义搜索引擎](https://lobechat.com/discover/plugin/google-cse)<br/><sup>By **vsnthdev** on **2024-12-02**</sup> | 通过他们的官方自定义搜索引擎API搜索谷歌。<br/>`网络` `搜索` |
|
||||
|
||||
> 📊 Total plugins: [<kbd>**42**</kbd>](https://lobechat.com/discover/plugins)
|
||||
|
||||
@@ -353,14 +353,14 @@ LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地
|
||||
>
|
||||
> 我欢迎所有用户加入这个不断成长的生态系统,共同参与到助手的迭代与优化中来。共同创造出更多有趣、实用且具有创新性的助手,进一步丰富助手的多样性和实用性。
|
||||
|
||||
<!-- AGENT LIST -->
|
||||
<!-- AGENT LIST -->
|
||||
|
||||
| 最近新增 | 描述 |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| 最近新增 | 描述 |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| [海龟汤主持人](https://lobechat.com/discover/assistant/lateral-thinking-puzzle)<br/><sup>By **[CSY2022](https://github.com/CSY2022)** on **2025-06-19**</sup> | 一个海龟汤主持人,需要自己提供汤面,汤底与关键点(猜中的判定条件)。<br/>`海龟汤` `推理` `互动` `谜题` `角色扮演` |
|
||||
| [美食评论员🍟](https://lobechat.com/discover/assistant/food-reviewer)<br/><sup>By **[renhai-lab](https://github.com/renhai-lab)** on **2025-06-17**</sup> | 美食评价专家<br/>`美食` `评价` `写作` |
|
||||
| [学术写作助手](https://lobechat.com/discover/assistant/academic-writing-assistant)<br/><sup>By **[swarfte](https://github.com/swarfte)** on **2025-06-17**</sup> | 专业的学术研究论文写作和正式文档编写专家<br/>`学术写作` `研究` `正式风格` |
|
||||
| [Minecraft 资深开发者](https://lobechat.com/discover/assistant/java-development)<br/><sup>By **[iamyuuk](https://github.com/iamyuuk)** on **2025-06-17**</sup> | 擅长高级 Java 开发及 Minecraft 开发<br/>`开发` `编程` `minecraft` `java` |
|
||||
| [美食评论员🍟](https://lobechat.com/discover/assistant/food-reviewer)<br/><sup>By **[renhai-lab](https://github.com/renhai-lab)** on **2025-06-17**</sup> | 美食评价专家<br/>`美食` `评价` `写作` |
|
||||
| [学术写作助手](https://lobechat.com/discover/assistant/academic-writing-assistant)<br/><sup>By **[swarfte](https://github.com/swarfte)** on **2025-06-17**</sup> | 专业的学术研究论文写作和正式文档编写专家<br/>`学术写作` `研究` `正式风格` |
|
||||
| [Minecraft资深开发者](https://lobechat.com/discover/assistant/java-development)<br/><sup>By **[iamyuuk](https://github.com/iamyuuk)** on **2025-06-17**</sup> | 擅长高级 Java 开发及 Minecraft 开发<br/>`开发` `编程` `minecraft` `java` |
|
||||
|
||||
> 📊 Total agents: [<kbd>**505**</kbd> ](https://lobechat.com/discover/assistants)
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# Proxy, if you need it
|
||||
# HTTP_PROXY=http://localhost:7890
|
||||
# HTTPS_PROXY=http://localhost:7890
|
||||
|
||||
|
||||
# Other environment variables, as needed. You can refer to the environment variables configuration for the client version, making sure not to have ACCESS_CODE.
|
||||
# OPENAI_API_KEY=sk-xxxx
|
||||
# OPENAI_PROXY_URL=https://api.openai.com/v1
|
||||
# OPENAI_MODEL_LIST=...
|
||||
|
||||
|
||||
# ===========================
|
||||
# ====== Preset config ======
|
||||
# ===========================
|
||||
# if no special requirements, no need to change
|
||||
LOBE_PORT=3210
|
||||
CASDOOR_PORT=8000
|
||||
MINIO_PORT=9000
|
||||
APP_URL=http://localhost:3210
|
||||
AUTH_URL=http://localhost:3210/api/auth
|
||||
|
||||
# Postgres related, which are the necessary environment variables for DB
|
||||
LOBE_DB_NAME=lobechat
|
||||
POSTGRES_PASSWORD=uWNZugjBqixf8dxC
|
||||
|
||||
# MinIO S3 configuration
|
||||
MINIO_ROOT_USER=admin
|
||||
MINIO_ROOT_PASSWORD=YOUR_MINIO_PASSWORD
|
||||
|
||||
# Configure the bucket information of MinIO
|
||||
S3_PUBLIC_DOMAIN=http://localhost:9000
|
||||
S3_ENDPOINT=http://localhost:9000
|
||||
MINIO_LOBE_BUCKET=lobe
|
||||
|
||||
#Configure OIDC
|
||||
NEXT_AUTH_SSO_PROVIDERS=okta
|
||||
NEXTAUTH_URL=http://localhost:3210/api/auth
|
||||
AUTH_OKTA_ID=ndfvkndfk3489349
|
||||
AUTH_OKTA_SECRET=-98494-8d093498d_njkefiuJKSAK-KJ9843JNDSiud78932-JKDSU929
|
||||
AUTH_OKTA_ISSUER=https://dev1234.okta.com
|
||||
|
||||
@@ -0,0 +1,222 @@
|
||||
## Set global build ENV
|
||||
ARG NODEJS_VERSION="22"
|
||||
|
||||
## Base image for all stages
|
||||
FROM node:${NODEJS_VERSION}-slim AS base
|
||||
|
||||
ARG USE_CN_MIRROR
|
||||
ARG NEXT_PUBLIC_BASE_PATH
|
||||
ARG NEXT_PUBLIC_SERVICE_MODE
|
||||
ARG NEXT_PUBLIC_ENABLE_NEXT_AUTH
|
||||
ARG NEXT_PUBLIC_SENTRY_DSN
|
||||
ARG NEXT_PUBLIC_ANALYTICS_POSTHOG
|
||||
ARG NEXT_PUBLIC_POSTHOG_HOST
|
||||
ARG NEXT_PUBLIC_POSTHOG_KEY
|
||||
ARG NEXT_PUBLIC_ANALYTICS_UMAMI
|
||||
ARG NEXT_PUBLIC_UMAMI_SCRIPT_URL
|
||||
ARG NEXT_PUBLIC_UMAMI_WEBSITE_ID
|
||||
|
||||
ENV DEBIAN_FRONTEND="noninteractive"
|
||||
|
||||
ENV NEXT_PUBLIC_BASE_PATH="${NEXT_PUBLIC_BASE_PATH}"
|
||||
|
||||
ENV NEXT_PUBLIC_SERVICE_MODE="${NEXT_PUBLIC_SERVICE_MODE:-server}" \
|
||||
NEXT_PUBLIC_ENABLE_NEXT_AUTH="${NEXT_PUBLIC_ENABLE_NEXT_AUTH:-1}" \
|
||||
APP_URL="http://app.com" \
|
||||
DATABASE_DRIVER="node" \
|
||||
DATABASE_URL="postgres://postgres:password@localhost:5432/postgres" \
|
||||
KEY_VAULTS_SECRET="use-for-build"
|
||||
|
||||
# Sentry
|
||||
ENV NEXT_PUBLIC_SENTRY_DSN="${NEXT_PUBLIC_SENTRY_DSN}" \
|
||||
SENTRY_ORG="" \
|
||||
SENTRY_PROJECT=""
|
||||
|
||||
# Posthog
|
||||
ENV NEXT_PUBLIC_ANALYTICS_POSTHOG="${NEXT_PUBLIC_ANALYTICS_POSTHOG}" \
|
||||
NEXT_PUBLIC_POSTHOG_HOST="${NEXT_PUBLIC_POSTHOG_HOST}" \
|
||||
NEXT_PUBLIC_POSTHOG_KEY="${NEXT_PUBLIC_POSTHOG_KEY}"
|
||||
|
||||
# Umami
|
||||
ENV NEXT_PUBLIC_ANALYTICS_UMAMI="${NEXT_PUBLIC_ANALYTICS_UMAMI}" \
|
||||
NEXT_PUBLIC_UMAMI_SCRIPT_URL="${NEXT_PUBLIC_UMAMI_SCRIPT_URL}" \
|
||||
NEXT_PUBLIC_UMAMI_WEBSITE_ID="${NEXT_PUBLIC_UMAMI_WEBSITE_ID}"
|
||||
|
||||
# Node
|
||||
ENV NODE_OPTIONS="--max-old-space-size=8192"
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package.json pnpm-workspace.yaml ./
|
||||
COPY .npmrc ./
|
||||
COPY packages ./packages
|
||||
|
||||
RUN \
|
||||
# If you want to build docker in China, build with --build-arg USE_CN_MIRROR=true
|
||||
if [ "${USE_CN_MIRROR:-false}" = "true" ]; then \
|
||||
sed -i "s/deb.debian.org/mirrors.ustc.edu.cn/g" "/etc/apt/sources.list.d/debian.sources"; \
|
||||
fi \
|
||||
# Add required package
|
||||
&& apt update \
|
||||
&& apt install ca-certificates proxychains-ng -qy
|
||||
|
||||
RUN \
|
||||
# If you want to build docker in China, build with --build-arg USE_CN_MIRROR=true
|
||||
if [ "${USE_CN_MIRROR:-false}" = "true" ]; then \
|
||||
export SENTRYCLI_CDNURL="https://npmmirror.com/mirrors/sentry-cli"; \
|
||||
npm config set registry "https://registry.npmmirror.com/"; \
|
||||
echo 'canvas_binary_host_mirror=https://npmmirror.com/mirrors/canvas' >> .npmrc; \
|
||||
fi \
|
||||
# Set the registry for corepack
|
||||
&& export COREPACK_NPM_REGISTRY=$(npm config get registry | sed 's/\/$//') \
|
||||
# Update corepack to latest (nodejs/corepack#612)
|
||||
&& npm i -g corepack@latest \
|
||||
# Enable corepack
|
||||
&& corepack enable \
|
||||
# Use pnpm for corepack
|
||||
&& corepack use $(sed -n 's/.*"packageManager": "\(.*\)".*/\1/p' package.json) \
|
||||
# Install the dependencies
|
||||
&& pnpm i \
|
||||
# Add db migration dependencies
|
||||
&& mkdir -p /deps \
|
||||
&& cd /deps \
|
||||
&& pnpm init \
|
||||
&& pnpm add pg drizzle-orm
|
||||
|
||||
COPY . .
|
||||
|
||||
ENV NODE_ENV="development" \
|
||||
NODE_OPTIONS="--dns-result-order=ipv4first --use-openssl-ca" \
|
||||
NODE_EXTRA_CA_CERTS="" \
|
||||
NODE_TLS_REJECT_UNAUTHORIZED="" \
|
||||
SSL_CERT_DIR="/etc/ssl/certs/ca-certificates.crt"
|
||||
|
||||
# Make the middleware rewrite through local as default
|
||||
# refs: https://github.com/lobehub/lobe-chat/issues/5876
|
||||
ENV MIDDLEWARE_REWRITE_THROUGH_LOCAL="1"
|
||||
|
||||
# set hostname to localhost
|
||||
ENV HOSTNAME="0.0.0.0" \
|
||||
PORT="3210"
|
||||
|
||||
# General Variables
|
||||
ENV ACCESS_CODE="" \
|
||||
APP_URL="" \
|
||||
API_KEY_SELECT_MODE="" \
|
||||
DEFAULT_AGENT_CONFIG="" \
|
||||
SYSTEM_AGENT="" \
|
||||
FEATURE_FLAGS="" \
|
||||
PROXY_URL=""
|
||||
|
||||
# Database
|
||||
ENV KEY_VAULTS_SECRET="" \
|
||||
DATABASE_DRIVER="node" \
|
||||
DATABASE_URL=""
|
||||
|
||||
# Next Auth
|
||||
ENV NEXT_AUTH_SECRET="" \
|
||||
NEXT_AUTH_SSO_PROVIDERS="" \
|
||||
NEXTAUTH_URL=""
|
||||
|
||||
# S3
|
||||
ENV NEXT_PUBLIC_S3_DOMAIN="" \
|
||||
S3_PUBLIC_DOMAIN="" \
|
||||
S3_ACCESS_KEY_ID="" \
|
||||
S3_BUCKET="" \
|
||||
S3_ENDPOINT="" \
|
||||
S3_SECRET_ACCESS_KEY=""
|
||||
|
||||
# Model Variables
|
||||
ENV \
|
||||
# AI21
|
||||
AI21_API_KEY="" AI21_MODEL_LIST="" \
|
||||
# Ai360
|
||||
AI360_API_KEY="" AI360_MODEL_LIST="" \
|
||||
# Anthropic
|
||||
ANTHROPIC_API_KEY="" ANTHROPIC_MODEL_LIST="" ANTHROPIC_PROXY_URL="" \
|
||||
# Amazon Bedrock
|
||||
AWS_ACCESS_KEY_ID="" AWS_SECRET_ACCESS_KEY="" AWS_REGION="" AWS_BEDROCK_MODEL_LIST="" \
|
||||
# Azure OpenAI
|
||||
AZURE_API_KEY="" AZURE_API_VERSION="" AZURE_ENDPOINT="" AZURE_MODEL_LIST="" \
|
||||
# Baichuan
|
||||
BAICHUAN_API_KEY="" BAICHUAN_MODEL_LIST="" \
|
||||
# Cloudflare
|
||||
CLOUDFLARE_API_KEY="" CLOUDFLARE_BASE_URL_OR_ACCOUNT_ID="" CLOUDFLARE_MODEL_LIST="" \
|
||||
# Cohere
|
||||
COHERE_API_KEY="" COHERE_MODEL_LIST="" COHERE_PROXY_URL="" \
|
||||
# DeepSeek
|
||||
DEEPSEEK_API_KEY="" DEEPSEEK_MODEL_LIST="" \
|
||||
# Fireworks AI
|
||||
FIREWORKSAI_API_KEY="" FIREWORKSAI_MODEL_LIST="" \
|
||||
# Gitee AI
|
||||
GITEE_AI_API_KEY="" GITEE_AI_MODEL_LIST="" \
|
||||
# GitHub
|
||||
GITHUB_TOKEN="" GITHUB_MODEL_LIST="" \
|
||||
# Google
|
||||
GOOGLE_API_KEY="" GOOGLE_MODEL_LIST="" GOOGLE_PROXY_URL="" \
|
||||
# Groq
|
||||
GROQ_API_KEY="" GROQ_MODEL_LIST="" GROQ_PROXY_URL="" \
|
||||
# Higress
|
||||
HIGRESS_API_KEY="" HIGRESS_MODEL_LIST="" HIGRESS_PROXY_URL="" \
|
||||
# HuggingFace
|
||||
HUGGINGFACE_API_KEY="" HUGGINGFACE_MODEL_LIST="" HUGGINGFACE_PROXY_URL="" \
|
||||
# Hunyuan
|
||||
HUNYUAN_API_KEY="" HUNYUAN_MODEL_LIST="" \
|
||||
# InternLM
|
||||
INTERNLM_API_KEY="" INTERNLM_MODEL_LIST="" \
|
||||
# Jina
|
||||
JINA_API_KEY="" JINA_MODEL_LIST="" JINA_PROXY_URL="" \
|
||||
# Minimax
|
||||
MINIMAX_API_KEY="" MINIMAX_MODEL_LIST="" \
|
||||
# Mistral
|
||||
MISTRAL_API_KEY="" MISTRAL_MODEL_LIST="" \
|
||||
# Moonshot
|
||||
MOONSHOT_API_KEY="" MOONSHOT_MODEL_LIST="" MOONSHOT_PROXY_URL="" \
|
||||
# Novita
|
||||
NOVITA_API_KEY="" NOVITA_MODEL_LIST="" \
|
||||
# Nvidia NIM
|
||||
NVIDIA_API_KEY="" NVIDIA_MODEL_LIST="" NVIDIA_PROXY_URL="" \
|
||||
# Ollama
|
||||
ENABLED_OLLAMA="" OLLAMA_MODEL_LIST="" OLLAMA_PROXY_URL="" \
|
||||
# OpenAI
|
||||
OPENAI_API_KEY="" OPENAI_MODEL_LIST="" OPENAI_PROXY_URL="" \
|
||||
# OpenRouter
|
||||
OPENROUTER_API_KEY="" OPENROUTER_MODEL_LIST="" \
|
||||
# Perplexity
|
||||
PERPLEXITY_API_KEY="" PERPLEXITY_MODEL_LIST="" PERPLEXITY_PROXY_URL="" \
|
||||
# PPIO
|
||||
PPIO_API_KEY="" PPIO_MODEL_LIST="" \
|
||||
# Qwen
|
||||
QWEN_API_KEY="" QWEN_MODEL_LIST="" QWEN_PROXY_URL="" \
|
||||
# SambaNova
|
||||
SAMBANOVA_API_KEY="" SAMBANOVA_MODEL_LIST="" \
|
||||
# SenseNova
|
||||
SENSENOVA_API_KEY="" SENSENOVA_MODEL_LIST="" \
|
||||
# SiliconCloud
|
||||
SILICONCLOUD_API_KEY="" SILICONCLOUD_MODEL_LIST="" SILICONCLOUD_PROXY_URL="" \
|
||||
# Spark
|
||||
SPARK_API_KEY="" SPARK_MODEL_LIST="" \
|
||||
# Stepfun
|
||||
STEPFUN_API_KEY="" STEPFUN_MODEL_LIST="" \
|
||||
# Taichu
|
||||
TAICHU_API_KEY="" TAICHU_MODEL_LIST="" \
|
||||
# TogetherAI
|
||||
TOGETHERAI_API_KEY="" TOGETHERAI_MODEL_LIST="" \
|
||||
# Upstage
|
||||
UPSTAGE_API_KEY="" UPSTAGE_MODEL_LIST="" \
|
||||
# vLLM
|
||||
VLLM_API_KEY="" VLLM_MODEL_LIST="" VLLM_PROXY_URL="" \
|
||||
# Wenxin
|
||||
WENXIN_API_KEY="" WENXIN_MODEL_LIST="" \
|
||||
# xAI
|
||||
XAI_API_KEY="" XAI_MODEL_LIST="" XAI_PROXY_URL="" \
|
||||
# 01.AI
|
||||
ZEROONE_API_KEY="" ZEROONE_MODEL_LIST="" \
|
||||
# Zhipu
|
||||
ZHIPU_API_KEY="" ZHIPU_MODEL_LIST="" \
|
||||
# Tencent Cloud
|
||||
TENCENT_CLOUD_API_KEY="" TENCENT_CLOUD_MODEL_LIST=""
|
||||
|
||||
EXPOSE 3210/tcp
|
||||
|
||||
ENTRYPOINT ["sh", "-c", "npm run db:migrate && npm run dev -- --turbopack -p 3210"]
|
||||
@@ -0,0 +1,117 @@
|
||||
name: LobeChat-Database-Barebones
|
||||
services:
|
||||
network-service:
|
||||
image: alpine
|
||||
container_name: lobe-network
|
||||
restart: always
|
||||
ports:
|
||||
- '${MINIO_PORT}:${MINIO_PORT}' # MinIO API
|
||||
- '9001:9001' # MinIO Console
|
||||
- '${CASDOOR_PORT}:${CASDOOR_PORT}' # Casdoor
|
||||
- '${LOBE_PORT}:3210' # LobeChat
|
||||
command: tail -f /dev/null
|
||||
networks:
|
||||
- lobe-network
|
||||
|
||||
postgresql:
|
||||
image: pgvector/pgvector:pg17
|
||||
container_name: lobe-postgres
|
||||
ports:
|
||||
- '5432:5432'
|
||||
volumes:
|
||||
- './data:/var/lib/postgresql/data'
|
||||
environment:
|
||||
- 'POSTGRES_DB=${LOBE_DB_NAME}'
|
||||
- 'POSTGRES_PASSWORD=${POSTGRES_PASSWORD}'
|
||||
healthcheck:
|
||||
test: ['CMD-SHELL', 'pg_isready -U postgres']
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
restart: always
|
||||
networks:
|
||||
- lobe-network
|
||||
|
||||
minio:
|
||||
image: minio/minio
|
||||
container_name: lobe-minio
|
||||
network_mode: 'service:network-service'
|
||||
volumes:
|
||||
- './s3_data:/etc/minio/data'
|
||||
environment:
|
||||
- 'MINIO_API_CORS_ALLOW_ORIGIN=*'
|
||||
env_file:
|
||||
- .env
|
||||
restart: always
|
||||
entrypoint: >
|
||||
/bin/sh -c "
|
||||
minio server /etc/minio/data --address ':${MINIO_PORT}' --console-address ':9001' &
|
||||
MINIO_PID=\$!
|
||||
while ! curl -s http://localhost:${MINIO_PORT}/minio/health/live; do
|
||||
echo 'Waiting for MinIO to start...'
|
||||
sleep 1
|
||||
done
|
||||
sleep 5
|
||||
mc alias set myminio http://localhost:${MINIO_PORT} ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD}
|
||||
echo 'Creating bucket ${MINIO_LOBE_BUCKET}'
|
||||
mc mb myminio/${MINIO_LOBE_BUCKET}
|
||||
wait \$MINIO_PID
|
||||
"
|
||||
|
||||
searxng:
|
||||
image: searxng/searxng
|
||||
container_name: lobe-searxng
|
||||
volumes:
|
||||
- './searxng-settings.yml:/etc/searxng/settings.yml'
|
||||
environment:
|
||||
- 'SEARXNG_SETTINGS_FILE=/etc/searxng/settings.yml'
|
||||
restart: always
|
||||
networks:
|
||||
- lobe-network
|
||||
env_file:
|
||||
- .env
|
||||
|
||||
lobe:
|
||||
build:
|
||||
context: ../../
|
||||
dockerfile: docker-compose/development/Dockerfile.dev.database
|
||||
container_name: lobe-chat
|
||||
network_mode: 'service:network-service'
|
||||
depends_on:
|
||||
postgresql:
|
||||
condition: service_healthy
|
||||
network-service:
|
||||
condition: service_started
|
||||
minio:
|
||||
condition: service_started
|
||||
|
||||
volumes:
|
||||
- ../../:/app
|
||||
- /app/node_modules
|
||||
|
||||
environment:
|
||||
- 'NEXT_PUBLIC_ENABLE_NEXT_AUTH=1'
|
||||
- 'KEY_VAULTS_SECRET=Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ='
|
||||
- 'NEXT_AUTH_SECRET=NX2kaPE923dt6BL2U8e9oSre5RfoT7hg'
|
||||
- 'DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgresql:5432/${LOBE_DB_NAME}'
|
||||
- 'S3_BUCKET=${MINIO_LOBE_BUCKET}'
|
||||
- 'S3_ENABLE_PATH_STYLE=1'
|
||||
- 'S3_ACCESS_KEY=${MINIO_ROOT_USER}'
|
||||
- 'S3_ACCESS_KEY_ID=${MINIO_ROOT_USER}'
|
||||
- 'S3_SECRET_ACCESS_KEY=${MINIO_ROOT_PASSWORD}'
|
||||
- 'LLM_VISION_IMAGE_USE_BASE64=1'
|
||||
- 'S3_SET_ACL=0'
|
||||
- 'SEARXNG_URL=http://searxng:8080'
|
||||
env_file:
|
||||
- .env
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
data:
|
||||
driver: local
|
||||
s3_data:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
lobe-network:
|
||||
driver: bridge
|
||||
@@ -38,9 +38,9 @@ LobeChat provides a complete authentication service capability when deployed. Th
|
||||
#### `NEXT_AUTH_SSO_PROVIDERS`
|
||||
|
||||
- Type: Optional
|
||||
- Description: Select the single sign-on provider for LoboChat. For multiple SSO Providers separating them with commas, for example, `auth0,microsoft-entra-id,authentik`.
|
||||
- Description: Select the single sign-on provider for LobeChat. For multiple SSO Providers separating them with commas, for example, `auth0,microsoft-entra-id,authentik`.
|
||||
- Default: `auth0`
|
||||
- Example: `auth0,microsoft-entra-id,authentik`
|
||||
- Example: `auth0,microsoft-entra-id,authentik,okta`
|
||||
|
||||
#### `NEXTAUTH_URL`
|
||||
|
||||
@@ -249,6 +249,29 @@ LobeChat provides a complete authentication service capability when deployed. Th
|
||||
- Default: `-`
|
||||
- Example: `https://your-instance-abc123.zitadel.cloud`
|
||||
|
||||
### OKTA
|
||||
|
||||
#### `AUTH_OKTA_ID`
|
||||
|
||||
- Type: Required
|
||||
- Description: Client ID of the OKTA application. This can be found under your application in the OKTA console.
|
||||
- Default: `-`
|
||||
- Example: `evCnOJP1UX8FMnXR9Xkj5t0NyFn5p70P`
|
||||
|
||||
#### `AUTH_OKTA_SECRET`
|
||||
|
||||
- Type: Required
|
||||
- Description: Client Secret of the OKTA application.
|
||||
- Default: `-`
|
||||
- Example: `wnX7UbZg85ZUzF6ioxPLnJVEQa1Elbs7aqBUSF16xleBS5AdkVfASS49-fQIC8Rm`
|
||||
|
||||
#### `AUTH_OKTA_ISSUER`
|
||||
|
||||
- Type: Required
|
||||
- Description: Issuer/domain of the OKTA application.
|
||||
- Default: `-`
|
||||
- Example: `https://dev1234.okta.com`
|
||||
|
||||
### Generic OIDC
|
||||
|
||||
#### `AUTH_GENERIC_OIDC_ID`
|
||||
|
||||
@@ -352,7 +352,7 @@
|
||||
"unist-util-visit": "^5.0.0",
|
||||
"vite": "^5.4.19",
|
||||
"vitest": "^3.2.0",
|
||||
"vitest-canvas-mock": "^0.3.3"
|
||||
"vi-canvas-mock": "^1.0.0"
|
||||
},
|
||||
"packageManager": "pnpm@10.10.0",
|
||||
"publishConfig": {
|
||||
|
||||
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 35 KiB |
@@ -196,5 +196,24 @@ describe('getAuthConfig', () => {
|
||||
);
|
||||
});
|
||||
});
|
||||
it('should warn about Okta deprecated environment variables', () => {
|
||||
// Set all deprecated environment variables
|
||||
process.env.OKTA_CLIENT_ID = 'okta_client_id';
|
||||
process.env.OKTA_CLIENT_SECRET = 'okta_client_secret';
|
||||
process.env.OKTA_ISSUER = 'okta_issuer';
|
||||
// Call the function
|
||||
getAuthConfig();
|
||||
|
||||
// Check that the spyConsoleWarn function was called for each deprecated environment variable
|
||||
expect(spyConsoleWarn).toHaveBeenCalledWith(
|
||||
expect.stringMatching(/OKTA_CLIENT_ID.*AUTH_OKTA_ID/),
|
||||
);
|
||||
expect(spyConsoleWarn).toHaveBeenCalledWith(
|
||||
expect.stringMatching(/OKTA_CLIENT_SECRET.*AUTH_OKTA_SECRET/),
|
||||
);
|
||||
expect(spyConsoleWarn).toHaveBeenCalledWith(
|
||||
expect.stringMatching(/OKTA_ISSUER.*AUTH_OKTA_ISSUER/),
|
||||
);
|
||||
});
|
||||
// Remove end
|
||||
});
|
||||
|
||||
@@ -40,6 +40,11 @@ declare global {
|
||||
ZITADEL_CLIENT_ID?: string;
|
||||
ZITADEL_CLIENT_SECRET?: string;
|
||||
ZITADEL_ISSUER?: string;
|
||||
|
||||
//Okta
|
||||
OKTA_CLIENT_ID?: string;
|
||||
OKTA_CLIENT_SECRET?: string;
|
||||
OKTA_ISSUER?: string;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -138,6 +143,15 @@ export const getAuthConfig = () => {
|
||||
if (process.env.ZITADEL_ISSUER) {
|
||||
console.warn(removeTipsTemplate('ZITADEL_ISSUER', 'AUTH_ZITADEL_ISSUER'));
|
||||
}
|
||||
if (process.env.OKTA_CLIENT_ID) {
|
||||
console.warn(removeTipsTemplate('OKTA_CLIENT_ID', 'AUTH_OKTA_ID'));
|
||||
}
|
||||
if (process.env.OKTA_CLIENT_SECRET) {
|
||||
console.warn(removeTipsTemplate('OKTA_CLIENT_SECRET', 'AUTH_OKTA_SECRET'));
|
||||
}
|
||||
if (process.env.OKTA_ISSUER) {
|
||||
console.warn(removeTipsTemplate('OKTA_ISSUER', 'AUTH_OKTA_ISSUER'));
|
||||
}
|
||||
// End
|
||||
|
||||
return createEnv({
|
||||
@@ -199,6 +213,11 @@ export const getAuthConfig = () => {
|
||||
ZITADEL_CLIENT_SECRET: z.string().optional(),
|
||||
ZITADEL_ISSUER: z.string().optional(),
|
||||
|
||||
// Okta
|
||||
OKTA_CLIENT_ID: z.string().optional(),
|
||||
OKTA_CLIENT_SECRET: z.string().optional(),
|
||||
OKTA_ISSUER: z.string().optional(),
|
||||
|
||||
// LOGTO
|
||||
LOGTO_CLIENT_ID: z.string().optional(),
|
||||
LOGTO_CLIENT_SECRET: z.string().optional(),
|
||||
@@ -261,6 +280,11 @@ export const getAuthConfig = () => {
|
||||
ZITADEL_CLIENT_SECRET: process.env.ZITADEL_CLIENT_SECRET,
|
||||
ZITADEL_ISSUER: process.env.ZITADEL_ISSUER,
|
||||
|
||||
// Okta
|
||||
OKTA_CLIENT_ID: process.env.OKTA_CLIENT_ID,
|
||||
OKTA_CLIENT_SECRET: process.env.OKTA_CLIENT_SECRET,
|
||||
OKTA_ISSUER: process.env.OKTA_ISSUER,
|
||||
|
||||
// LOGTO
|
||||
LOGTO_CLIENT_ID: process.env.LOGTO_CLIENT_ID,
|
||||
LOGTO_CLIENT_SECRET: process.env.LOGTO_CLIENT_SECRET,
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
// if you want to use it in the commercial usage
|
||||
// please contact us for more information: hello@lobehub.com
|
||||
|
||||
export const LOBE_CHAT_CLOUD = 'LobeChat Cloud';
|
||||
export const LOBE_CHAT_CLOUD = 'OneJA AI';
|
||||
|
||||
export const BRANDING_NAME = 'LobeChat';
|
||||
export const BRANDING_LOGO_URL = '';
|
||||
export const BRANDING_NAME = 'OneJA AI';
|
||||
export const BRANDING_LOGO_URL = '/icons/icon-512x512.png';
|
||||
|
||||
export const ORG_NAME = 'LobeHub';
|
||||
export const ORG_NAME = 'JA Worldwide';
|
||||
|
||||
export const BRANDING_URL = {
|
||||
help: undefined,
|
||||
privacy: undefined,
|
||||
terms: undefined,
|
||||
help: 'mailto:support@jaworldwide.org',
|
||||
privacy: 'https://www.jaworldwide.org/terms',
|
||||
terms: 'https://www.jaworldwide.org/terms',
|
||||
};
|
||||
|
||||
export const SOCIAL_URL = {
|
||||
discord: 'https://discord.gg/AYFPHvv2jT',
|
||||
github: 'https://github.com/lobehub',
|
||||
medium: 'https://medium.com/@lobehub',
|
||||
x: 'https://x.com/lobehub',
|
||||
youtube: 'https://www.youtube.com/@lobehub',
|
||||
discord: 'https://discord.gg/',
|
||||
github: 'https://github.com/jaworldwideorg',
|
||||
medium: 'https://medium.com/',
|
||||
x: 'https://x.com/jaworldwide',
|
||||
youtube: 'https://www.youtube.com/@jaworldwide',
|
||||
};
|
||||
|
||||
export const BRANDING_EMAIL = {
|
||||
business: 'hello@lobehub.com',
|
||||
support: 'support@lobehub.com',
|
||||
business: 'contact@jaworldwide.org',
|
||||
support: 'support@jaworldwide.org',
|
||||
};
|
||||
|
||||
@@ -102,8 +102,10 @@ describe('AiProviderModel', () => {
|
||||
|
||||
const userGroups = await aiProviderModel.query();
|
||||
expect(userGroups).toHaveLength(2);
|
||||
expect(userGroups[0].id).toBe('aihubmix-2');
|
||||
expect(userGroups[1].id).toBe('aihubmix');
|
||||
|
||||
expect(userGroups.map((group) => group.id)).toEqual(
|
||||
expect.arrayContaining(['aihubmix', 'aihubmix-2']),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -99,8 +99,10 @@ describe('KnowledgeBaseModel', () => {
|
||||
|
||||
const userGroups = await knowledgeBaseModel.query();
|
||||
expect(userGroups).toHaveLength(2);
|
||||
expect(userGroups[0].name).toBe('Test Group 2');
|
||||
expect(userGroups[1].name).toBe('Test Group 1');
|
||||
|
||||
expect(userGroups.map((group) => group.name)).toEqual(
|
||||
expect.arrayContaining(['Test Group 1', 'Test Group 2']),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { act, render, screen } from '@testing-library/react';
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import { BRANDING_NAME } from '@/const/branding';
|
||||
import { DEFAULT_USER_AVATAR_URL } from '@/const/meta';
|
||||
import { useUserStore } from '@/store/user';
|
||||
|
||||
@@ -63,8 +64,8 @@ describe('UserAvatar', () => {
|
||||
});
|
||||
|
||||
render(<UserAvatar />);
|
||||
expect(screen.getByAltText('LobeChat')).toBeInTheDocument();
|
||||
expect(screen.getByAltText('LobeChat')).toHaveAttribute('src', DEFAULT_USER_AVATAR_URL);
|
||||
expect(screen.getByAltText(BRANDING_NAME)).toBeInTheDocument();
|
||||
expect(screen.getByAltText(BRANDING_NAME)).toHaveAttribute('src', DEFAULT_USER_AVATAR_URL);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -76,8 +77,8 @@ describe('UserAvatar', () => {
|
||||
});
|
||||
|
||||
render(<UserAvatar />);
|
||||
expect(screen.getByAltText('LobeChat')).toBeInTheDocument();
|
||||
expect(screen.getByAltText('LobeChat')).toHaveAttribute('src', DEFAULT_USER_AVATAR_URL);
|
||||
expect(screen.getByAltText(BRANDING_NAME)).toBeInTheDocument();
|
||||
expect(screen.getByAltText(BRANDING_NAME)).toHaveAttribute('src', DEFAULT_USER_AVATAR_URL);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,8 +3,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import { debugStream } from './debugStream';
|
||||
|
||||
describe('debugStream', () => {
|
||||
let consoleLogSpy: ReturnType<typeof vi.spyOn>;
|
||||
let consoleErrorSpy: ReturnType<typeof vi.spyOn>;
|
||||
let consoleLogSpy: ReturnType<any>;
|
||||
let consoleErrorSpy: ReturnType<any>;
|
||||
|
||||
beforeEach(() => {
|
||||
consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => {});
|
||||
|
||||
@@ -12,6 +12,7 @@ import Logto from './logto';
|
||||
import MicrosoftEntraID from './microsoft-entra-id';
|
||||
import WeChat from './wechat';
|
||||
import Zitadel from './zitadel';
|
||||
import Okta from './okta';
|
||||
|
||||
export const ssoProviders = [
|
||||
Auth0,
|
||||
@@ -28,4 +29,5 @@ export const ssoProviders = [
|
||||
WeChat,
|
||||
Keycloak,
|
||||
Google,
|
||||
Okta
|
||||
];
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import Okta from 'next-auth/providers/okta';
|
||||
|
||||
import { authEnv } from '@/config/auth';
|
||||
|
||||
import { CommonProviderConfig } from './sso.config';
|
||||
|
||||
const provider = {
|
||||
id: 'okta',
|
||||
provider: Okta({
|
||||
...CommonProviderConfig,
|
||||
authorization: { params: { scope: 'openid email profile' } },
|
||||
clientId: authEnv.OKTA_CLIENT_ID ?? process.env.AUTH_OKTA_ID,
|
||||
clientSecret: authEnv.OKTA_CLIENT_SECRET ?? process.env.AUTH_OKTA_SECRET,
|
||||
issuer: authEnv.OKTA_ISSUER ?? process.env.AUTH_OKTA_ISSUER,
|
||||
// Remove End
|
||||
profile(profile) {
|
||||
return {
|
||||
email: profile.email,
|
||||
id: profile.sub,
|
||||
image: profile.picture,
|
||||
name: profile.name ?? profile.preferred_username,
|
||||
providerAccountId: profile.sub,
|
||||
};
|
||||
},
|
||||
}),
|
||||
};
|
||||
|
||||
export default provider;
|
||||
@@ -1,6 +1,7 @@
|
||||
// @vitest-environment node
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { BRANDING_NAME } from '@/const/branding';
|
||||
import { DEFAULT_LANG } from '@/const/locale';
|
||||
|
||||
import { AUTHOR_LIST, Ld } from './ld';
|
||||
@@ -57,7 +58,7 @@ describe('Ld', () => {
|
||||
});
|
||||
|
||||
expect(webpage['@type']).toBe('WebPage');
|
||||
expect(webpage.name).toBe('Test Page · LobeChat');
|
||||
expect(webpage.name).toBe(`Test Page · ${BRANDING_NAME}`);
|
||||
expect(webpage.description).toBe('Test Description');
|
||||
});
|
||||
});
|
||||
@@ -79,7 +80,7 @@ describe('Ld', () => {
|
||||
const website = ld.genWebSite();
|
||||
|
||||
expect(website['@type']).toBe('WebSite');
|
||||
expect(website.name).toBe('LobeChat');
|
||||
expect(website.name).toBe(BRANDING_NAME);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -95,7 +96,7 @@ describe('Ld', () => {
|
||||
});
|
||||
|
||||
expect(article['@type']).toBe('Article');
|
||||
expect(article.headline).toBe('Test Article · LobeChat');
|
||||
expect(article.headline).toBe(`Test Article · ${BRANDING_NAME}`);
|
||||
expect(article.author['@type']).toBe('Person');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -91,7 +91,7 @@ const mockedChats = [
|
||||
content: 'Function Message',
|
||||
role: 'tool',
|
||||
meta: {
|
||||
avatar: '🤯',
|
||||
avatar: '/icons/icon-512x512.png',
|
||||
backgroundColor: 'rgba(0,0,0,0)',
|
||||
description: 'inbox.desc',
|
||||
title: 'inbox.title',
|
||||
@@ -234,7 +234,7 @@ describe('chatSelectors', () => {
|
||||
content: 'Function Message',
|
||||
role: 'tool',
|
||||
meta: {
|
||||
avatar: '🤯',
|
||||
avatar: '/icons/icon-512x512.png',
|
||||
backgroundColor: 'rgba(0,0,0,0)',
|
||||
description: 'inbox.desc',
|
||||
title: 'inbox.title',
|
||||
|
||||
@@ -67,7 +67,7 @@ describe('ChatPluginAction', () => {
|
||||
{
|
||||
...toolMessage,
|
||||
meta: {
|
||||
avatar: '🤯',
|
||||
avatar: '/icons/icon-512x512.png',
|
||||
backgroundColor: 'rgba(0,0,0,0)',
|
||||
description: undefined,
|
||||
title: undefined,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { t } from 'i18next';
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import { BRANDING_NAME } from '@/const/branding';
|
||||
import { UserStore } from '@/store/user';
|
||||
|
||||
import { authSelectors, userProfileSelectors } from './selectors';
|
||||
@@ -44,7 +45,7 @@ describe('userProfileSelectors', () => {
|
||||
enableAuth: () => false,
|
||||
} as unknown as UserStore;
|
||||
|
||||
expect(userProfileSelectors.displayUserName(store)).toBe('LobeChat');
|
||||
expect(userProfileSelectors.displayUserName(store)).toBe(BRANDING_NAME);
|
||||
});
|
||||
|
||||
it('should return user username when auth is disabled and is desktop', () => {
|
||||
@@ -202,7 +203,7 @@ describe('userProfileSelectors', () => {
|
||||
enableAuth: () => false,
|
||||
} as unknown as UserStore;
|
||||
|
||||
expect(userProfileSelectors.username(store)).toBe('LobeChat');
|
||||
expect(userProfileSelectors.username(store)).toBe(BRANDING_NAME);
|
||||
});
|
||||
|
||||
it('should return user username when auth is disabled and is desktop', () => {
|
||||
|
||||
@@ -14,7 +14,7 @@ if (
|
||||
typeof (globalThis as any).EdgeRuntime !== 'string'
|
||||
) {
|
||||
// test with canvas
|
||||
await import('vitest-canvas-mock');
|
||||
await import('vi-canvas-mock');
|
||||
}
|
||||
|
||||
// node runtime
|
||||
|
||||
@@ -39,7 +39,7 @@ export default defineConfig({
|
||||
globals: true,
|
||||
server: {
|
||||
deps: {
|
||||
inline: ['vitest-canvas-mock'],
|
||||
inline: ['vi-canvas-mock'],
|
||||
},
|
||||
},
|
||||
setupFiles: join(__dirname, './tests/setup.ts'),
|
||||
|
||||