@lobehub/chat 1.60.8 → 1.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/ISSUE_TEMPLATE/1_bug_report.yml +2 -1
- package/.github/ISSUE_TEMPLATE/1_bug_report_cn.yml +1 -0
- package/.github/workflows/docker-pglite.yml +161 -0
- package/CHANGELOG.md +50 -0
- package/Dockerfile.pglite +244 -0
- package/changelog/v1.json +17 -0
- package/locales/ar/error.json +1 -0
- package/locales/ar/modelProvider.json +7 -0
- package/locales/ar/models.json +3 -12
- package/locales/ar/providers.json +3 -0
- package/locales/bg-BG/error.json +1 -0
- package/locales/bg-BG/modelProvider.json +7 -0
- package/locales/bg-BG/models.json +3 -12
- package/locales/bg-BG/providers.json +3 -0
- package/locales/de-DE/error.json +1 -0
- package/locales/de-DE/modelProvider.json +7 -0
- package/locales/de-DE/models.json +3 -12
- package/locales/de-DE/providers.json +3 -0
- package/locales/en-US/error.json +1 -0
- package/locales/en-US/modelProvider.json +7 -0
- package/locales/en-US/models.json +3 -12
- package/locales/en-US/providers.json +3 -0
- package/locales/es-ES/error.json +1 -0
- package/locales/es-ES/modelProvider.json +7 -0
- package/locales/es-ES/models.json +3 -12
- package/locales/es-ES/providers.json +3 -0
- package/locales/fa-IR/error.json +1 -0
- package/locales/fa-IR/modelProvider.json +7 -0
- package/locales/fa-IR/models.json +3 -12
- package/locales/fa-IR/providers.json +3 -0
- package/locales/fr-FR/error.json +1 -0
- package/locales/fr-FR/modelProvider.json +7 -0
- package/locales/fr-FR/models.json +3 -12
- package/locales/fr-FR/providers.json +3 -0
- package/locales/it-IT/error.json +1 -0
- package/locales/it-IT/modelProvider.json +7 -0
- package/locales/it-IT/models.json +3 -12
- package/locales/it-IT/providers.json +3 -0
- package/locales/ja-JP/error.json +1 -0
- package/locales/ja-JP/modelProvider.json +7 -0
- package/locales/ja-JP/models.json +3 -12
- package/locales/ja-JP/providers.json +3 -0
- package/locales/ko-KR/error.json +1 -0
- package/locales/ko-KR/modelProvider.json +7 -0
- package/locales/ko-KR/models.json +3 -12
- package/locales/ko-KR/providers.json +3 -0
- package/locales/nl-NL/error.json +1 -0
- package/locales/nl-NL/modelProvider.json +7 -0
- package/locales/nl-NL/models.json +3 -12
- package/locales/nl-NL/providers.json +3 -0
- package/locales/pl-PL/error.json +1 -0
- package/locales/pl-PL/modelProvider.json +7 -0
- package/locales/pl-PL/models.json +3 -12
- package/locales/pl-PL/providers.json +3 -0
- package/locales/pt-BR/error.json +1 -0
- package/locales/pt-BR/modelProvider.json +7 -0
- package/locales/pt-BR/models.json +3 -12
- package/locales/pt-BR/providers.json +3 -0
- package/locales/ru-RU/error.json +1 -0
- package/locales/ru-RU/modelProvider.json +7 -0
- package/locales/ru-RU/models.json +3 -12
- package/locales/ru-RU/providers.json +3 -0
- package/locales/tr-TR/error.json +1 -0
- package/locales/tr-TR/modelProvider.json +7 -0
- package/locales/tr-TR/models.json +3 -12
- package/locales/tr-TR/providers.json +3 -0
- package/locales/vi-VN/error.json +1 -0
- package/locales/vi-VN/modelProvider.json +7 -0
- package/locales/vi-VN/models.json +3 -12
- package/locales/vi-VN/providers.json +3 -0
- package/locales/zh-CN/error.json +1 -0
- package/locales/zh-CN/modelProvider.json +7 -0
- package/locales/zh-CN/models.json +3 -12
- package/locales/zh-CN/providers.json +3 -0
- package/locales/zh-TW/error.json +1 -0
- package/locales/zh-TW/modelProvider.json +7 -0
- package/locales/zh-TW/models.json +3 -12
- package/locales/zh-TW/providers.json +3 -0
- package/package.json +2 -1
- package/src/app/(backend)/webapi/chat/vertexai/route.ts +35 -0
- package/src/app/[variants]/(main)/settings/provider/(detail)/huggingface/page.tsx +3 -3
- package/src/app/[variants]/(main)/settings/provider/(detail)/vertexai/page.tsx +67 -0
- package/src/config/aiModels/index.ts +3 -0
- package/src/config/aiModels/vertexai.ts +200 -0
- package/src/config/modelProviders/index.ts +3 -0
- package/src/config/modelProviders/vertexai.ts +22 -0
- package/src/database/client/db.ts +2 -1
- package/src/libs/agent-runtime/error.ts +1 -0
- package/src/libs/agent-runtime/google/index.ts +22 -4
- package/src/libs/agent-runtime/types/type.ts +1 -0
- package/src/libs/agent-runtime/utils/streams/vertex-ai.test.ts +236 -0
- package/src/libs/agent-runtime/utils/streams/vertex-ai.ts +75 -0
- package/src/libs/agent-runtime/vertexai/index.ts +23 -0
- package/src/locales/default/error.ts +1 -0
- package/src/locales/default/modelProvider.ts +7 -0
- package/src/types/user/settings/keyVaults.ts +1 -0
- package/src/utils/safeParseJSON.ts +1 -1
@@ -23,6 +23,7 @@ body:
|
|
23
23
|
multiple: true
|
24
24
|
options:
|
25
25
|
- 'client db (lobe-chat image)'
|
26
|
+
- 'client pgelite db (lobe-chat-pglite image)'
|
26
27
|
- 'server db(lobe-chat-database image)'
|
27
28
|
validations:
|
28
29
|
required: true
|
@@ -31,7 +32,7 @@ body:
|
|
31
32
|
label: '📌 Version'
|
32
33
|
validations:
|
33
34
|
required: true
|
34
|
-
|
35
|
+
|
35
36
|
- type: dropdown
|
36
37
|
attributes:
|
37
38
|
label: '💻 Operating System'
|
@@ -0,0 +1,161 @@
|
|
1
|
+
name: Publish Docker Pglite Image
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
release:
|
6
|
+
types: [published]
|
7
|
+
pull_request:
|
8
|
+
types: [synchronize, labeled, unlabeled]
|
9
|
+
|
10
|
+
concurrency:
|
11
|
+
group: ${{ github.ref }}-${{ github.workflow }}
|
12
|
+
cancel-in-progress: true
|
13
|
+
|
14
|
+
env:
|
15
|
+
REGISTRY_IMAGE: lobehub/lobe-chat-pglite
|
16
|
+
PR_TAG_PREFIX: pr-
|
17
|
+
|
18
|
+
jobs:
|
19
|
+
build:
|
20
|
+
# 添加 PR label 触发条件
|
21
|
+
if: |
|
22
|
+
(github.event_name == 'pull_request' &&
|
23
|
+
contains(github.event.pull_request.labels.*.name, 'Build Docker')) ||
|
24
|
+
github.event_name != 'pull_request'
|
25
|
+
|
26
|
+
strategy:
|
27
|
+
matrix:
|
28
|
+
include:
|
29
|
+
- platform: linux/amd64
|
30
|
+
os: ubuntu-latest
|
31
|
+
- platform: linux/arm64
|
32
|
+
os: ubuntu-24.04-arm
|
33
|
+
runs-on: ${{ matrix.os }}
|
34
|
+
name: Build ${{ matrix.platform }} Image
|
35
|
+
steps:
|
36
|
+
- name: Prepare
|
37
|
+
run: |
|
38
|
+
platform=${{ matrix.platform }}
|
39
|
+
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
40
|
+
|
41
|
+
- name: Checkout base
|
42
|
+
uses: actions/checkout@v4
|
43
|
+
with:
|
44
|
+
fetch-depth: 0
|
45
|
+
|
46
|
+
- name: Set up Docker Buildx
|
47
|
+
uses: docker/setup-buildx-action@v3
|
48
|
+
|
49
|
+
# 为 PR 生成特殊的 tag
|
50
|
+
- name: Generate PR metadata
|
51
|
+
if: github.event_name == 'pull_request'
|
52
|
+
id: pr_meta
|
53
|
+
run: |
|
54
|
+
branch_name="${{ github.head_ref }}"
|
55
|
+
sanitized_branch=$(echo "${branch_name}" | sed -E 's/[^a-zA-Z0-9_.-]+/-/g')
|
56
|
+
echo "pr_tag=${sanitized_branch}-$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
57
|
+
|
58
|
+
- name: Docker meta
|
59
|
+
id: meta
|
60
|
+
uses: docker/metadata-action@v5
|
61
|
+
with:
|
62
|
+
images: ${{ env.REGISTRY_IMAGE }}
|
63
|
+
tags: |
|
64
|
+
# PR 构建使用特殊的 tag
|
65
|
+
type=raw,value=${{ env.PR_TAG_PREFIX }}${{ steps.pr_meta.outputs.pr_tag }},enable=${{ github.event_name == 'pull_request' }}
|
66
|
+
# release 构建使用版本号
|
67
|
+
type=semver,pattern={{version}},enable=${{ github.event_name != 'pull_request' }}
|
68
|
+
type=raw,value=latest,enable=${{ github.event_name != 'pull_request' }}
|
69
|
+
|
70
|
+
- name: Docker login
|
71
|
+
uses: docker/login-action@v3
|
72
|
+
with:
|
73
|
+
username: ${{ secrets.DOCKER_REGISTRY_USER }}
|
74
|
+
password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
|
75
|
+
|
76
|
+
- name: Get commit SHA
|
77
|
+
if: github.ref == 'refs/heads/main'
|
78
|
+
id: vars
|
79
|
+
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
80
|
+
|
81
|
+
- name: Build and export
|
82
|
+
id: build
|
83
|
+
uses: docker/build-push-action@v5
|
84
|
+
with:
|
85
|
+
platforms: ${{ matrix.platform }}
|
86
|
+
context: .
|
87
|
+
file: ./Dockerfile.pglite
|
88
|
+
labels: ${{ steps.meta.outputs.labels }}
|
89
|
+
build-args: |
|
90
|
+
SHA=${{ steps.vars.outputs.sha_short }}
|
91
|
+
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
|
92
|
+
|
93
|
+
- name: Export digest
|
94
|
+
run: |
|
95
|
+
rm -rf /tmp/digests
|
96
|
+
mkdir -p /tmp/digests
|
97
|
+
digest="${{ steps.build.outputs.digest }}"
|
98
|
+
touch "/tmp/digests/${digest#sha256:}"
|
99
|
+
|
100
|
+
- name: Upload artifact
|
101
|
+
uses: actions/upload-artifact@v4
|
102
|
+
with:
|
103
|
+
name: digest-${{ env.PLATFORM_PAIR }}
|
104
|
+
path: /tmp/digests/*
|
105
|
+
if-no-files-found: error
|
106
|
+
retention-days: 1
|
107
|
+
|
108
|
+
merge:
|
109
|
+
name: Merge
|
110
|
+
needs: build
|
111
|
+
runs-on: ubuntu-latest
|
112
|
+
steps:
|
113
|
+
- name: Checkout base
|
114
|
+
uses: actions/checkout@v4
|
115
|
+
with:
|
116
|
+
fetch-depth: 0
|
117
|
+
|
118
|
+
- name: Download digests
|
119
|
+
uses: actions/download-artifact@v4
|
120
|
+
with:
|
121
|
+
path: /tmp/digests
|
122
|
+
pattern: digest-*
|
123
|
+
merge-multiple: true
|
124
|
+
|
125
|
+
- name: Set up Docker Buildx
|
126
|
+
uses: docker/setup-buildx-action@v3
|
127
|
+
|
128
|
+
# 为 merge job 添加 PR metadata 生成
|
129
|
+
- name: Generate PR metadata
|
130
|
+
if: github.event_name == 'pull_request'
|
131
|
+
id: pr_meta
|
132
|
+
run: |
|
133
|
+
branch_name="${{ github.head_ref }}"
|
134
|
+
sanitized_branch=$(echo "${branch_name}" | sed -E 's/[^a-zA-Z0-9_.-]+/-/g')
|
135
|
+
echo "pr_tag=${sanitized_branch}-$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
136
|
+
|
137
|
+
- name: Docker meta
|
138
|
+
id: meta
|
139
|
+
uses: docker/metadata-action@v5
|
140
|
+
with:
|
141
|
+
images: ${{ env.REGISTRY_IMAGE }}
|
142
|
+
tags: |
|
143
|
+
type=raw,value=${{ env.PR_TAG_PREFIX }}${{ steps.pr_meta.outputs.pr_tag }},enable=${{ github.event_name == 'pull_request' }}
|
144
|
+
type=semver,pattern={{version}},enable=${{ github.event_name != 'pull_request' }}
|
145
|
+
type=raw,value=latest,enable=${{ github.event_name != 'pull_request' }}
|
146
|
+
|
147
|
+
- name: Docker login
|
148
|
+
uses: docker/login-action@v3
|
149
|
+
with:
|
150
|
+
username: ${{ secrets.DOCKER_REGISTRY_USER }}
|
151
|
+
password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
|
152
|
+
|
153
|
+
- name: Create manifest list and push
|
154
|
+
working-directory: /tmp/digests
|
155
|
+
run: |
|
156
|
+
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
|
157
|
+
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
|
158
|
+
|
159
|
+
- name: Inspect image
|
160
|
+
run: |
|
161
|
+
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
|
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,56 @@
|
|
2
2
|
|
3
3
|
# Changelog
|
4
4
|
|
5
|
+
## [Version 1.61.0](https://github.com/lobehub/lobe-chat/compare/v1.60.9...v1.61.0)
|
6
|
+
|
7
|
+
<sup>Released on **2025-02-18**</sup>
|
8
|
+
|
9
|
+
#### ✨ Features
|
10
|
+
|
11
|
+
- **misc**: Support google vertex ai as a new provider.
|
12
|
+
|
13
|
+
#### 🐛 Bug Fixes
|
14
|
+
|
15
|
+
- **misc**: Try to fix pglite worker.
|
16
|
+
|
17
|
+
<br/>
|
18
|
+
|
19
|
+
<details>
|
20
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
21
|
+
|
22
|
+
#### What's improved
|
23
|
+
|
24
|
+
- **misc**: Support google vertex ai as a new provider, closes [#4487](https://github.com/lobehub/lobe-chat/issues/4487) ([a0a9592](https://github.com/lobehub/lobe-chat/commit/a0a9592))
|
25
|
+
|
26
|
+
#### What's fixed
|
27
|
+
|
28
|
+
- **misc**: Try to fix pglite worker, closes [#6169](https://github.com/lobehub/lobe-chat/issues/6169) ([b3f4f13](https://github.com/lobehub/lobe-chat/commit/b3f4f13))
|
29
|
+
|
30
|
+
</details>
|
31
|
+
|
32
|
+
<div align="right">
|
33
|
+
|
34
|
+
[](#readme-top)
|
35
|
+
|
36
|
+
</div>
|
37
|
+
|
38
|
+
### [Version 1.60.9](https://github.com/lobehub/lobe-chat/compare/v1.60.8...v1.60.9)
|
39
|
+
|
40
|
+
<sup>Released on **2025-02-18**</sup>
|
41
|
+
|
42
|
+
<br/>
|
43
|
+
|
44
|
+
<details>
|
45
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
46
|
+
|
47
|
+
</details>
|
48
|
+
|
49
|
+
<div align="right">
|
50
|
+
|
51
|
+
[](#readme-top)
|
52
|
+
|
53
|
+
</div>
|
54
|
+
|
5
55
|
### [Version 1.60.8](https://github.com/lobehub/lobe-chat/compare/v1.60.7...v1.60.8)
|
6
56
|
|
7
57
|
<sup>Released on **2025-02-18**</sup>
|
@@ -0,0 +1,244 @@
|
|
1
|
+
## Set global build ENV
|
2
|
+
ARG NODEJS_VERSION="22"
|
3
|
+
|
4
|
+
## Base image for all building stages
|
5
|
+
FROM node:${NODEJS_VERSION}-slim AS base
|
6
|
+
|
7
|
+
ARG USE_CN_MIRROR
|
8
|
+
|
9
|
+
ENV DEBIAN_FRONTEND="noninteractive"
|
10
|
+
|
11
|
+
RUN \
|
12
|
+
# If you want to build docker in China, build with --build-arg USE_CN_MIRROR=true
|
13
|
+
if [ "${USE_CN_MIRROR:-false}" = "true" ]; then \
|
14
|
+
sed -i "s/deb.debian.org/mirrors.ustc.edu.cn/g" "/etc/apt/sources.list.d/debian.sources"; \
|
15
|
+
fi \
|
16
|
+
# Add required package
|
17
|
+
&& apt update \
|
18
|
+
&& apt install ca-certificates proxychains-ng -qy \
|
19
|
+
# Prepare required package to distroless
|
20
|
+
&& mkdir -p /distroless/bin /distroless/etc /distroless/etc/ssl/certs /distroless/lib \
|
21
|
+
# Copy proxychains to distroless
|
22
|
+
&& cp /usr/lib/$(arch)-linux-gnu/libproxychains.so.4 /distroless/lib/libproxychains.so.4 \
|
23
|
+
&& cp /usr/lib/$(arch)-linux-gnu/libdl.so.2 /distroless/lib/libdl.so.2 \
|
24
|
+
&& cp /usr/bin/proxychains4 /distroless/bin/proxychains \
|
25
|
+
&& cp /etc/proxychains4.conf /distroless/etc/proxychains4.conf \
|
26
|
+
# Copy node to distroless
|
27
|
+
&& cp /usr/lib/$(arch)-linux-gnu/libstdc++.so.6 /distroless/lib/libstdc++.so.6 \
|
28
|
+
&& cp /usr/lib/$(arch)-linux-gnu/libgcc_s.so.1 /distroless/lib/libgcc_s.so.1 \
|
29
|
+
&& cp /usr/local/bin/node /distroless/bin/node \
|
30
|
+
# Copy CA certificates to distroless
|
31
|
+
&& cp /etc/ssl/certs/ca-certificates.crt /distroless/etc/ssl/certs/ca-certificates.crt \
|
32
|
+
# Cleanup temp files
|
33
|
+
&& rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
|
34
|
+
|
35
|
+
## Builder image, install all the dependencies and build the app
|
36
|
+
FROM base AS builder
|
37
|
+
|
38
|
+
ARG USE_CN_MIRROR
|
39
|
+
ARG NEXT_PUBLIC_BASE_PATH
|
40
|
+
ARG NEXT_PUBLIC_SENTRY_DSN
|
41
|
+
ARG NEXT_PUBLIC_ANALYTICS_POSTHOG
|
42
|
+
ARG NEXT_PUBLIC_POSTHOG_HOST
|
43
|
+
ARG NEXT_PUBLIC_POSTHOG_KEY
|
44
|
+
ARG NEXT_PUBLIC_ANALYTICS_UMAMI
|
45
|
+
ARG NEXT_PUBLIC_UMAMI_SCRIPT_URL
|
46
|
+
ARG NEXT_PUBLIC_UMAMI_WEBSITE_ID
|
47
|
+
|
48
|
+
ENV NEXT_PUBLIC_CLIENT_DB="pglite"
|
49
|
+
ENV NEXT_PUBLIC_BASE_PATH="${NEXT_PUBLIC_BASE_PATH}"
|
50
|
+
|
51
|
+
# Sentry
|
52
|
+
ENV NEXT_PUBLIC_SENTRY_DSN="${NEXT_PUBLIC_SENTRY_DSN}" \
|
53
|
+
SENTRY_ORG="" \
|
54
|
+
SENTRY_PROJECT=""
|
55
|
+
|
56
|
+
# Posthog
|
57
|
+
ENV NEXT_PUBLIC_ANALYTICS_POSTHOG="${NEXT_PUBLIC_ANALYTICS_POSTHOG}" \
|
58
|
+
NEXT_PUBLIC_POSTHOG_HOST="${NEXT_PUBLIC_POSTHOG_HOST}" \
|
59
|
+
NEXT_PUBLIC_POSTHOG_KEY="${NEXT_PUBLIC_POSTHOG_KEY}"
|
60
|
+
|
61
|
+
# Umami
|
62
|
+
ENV NEXT_PUBLIC_ANALYTICS_UMAMI="${NEXT_PUBLIC_ANALYTICS_UMAMI}" \
|
63
|
+
NEXT_PUBLIC_UMAMI_SCRIPT_URL="${NEXT_PUBLIC_UMAMI_SCRIPT_URL}" \
|
64
|
+
NEXT_PUBLIC_UMAMI_WEBSITE_ID="${NEXT_PUBLIC_UMAMI_WEBSITE_ID}"
|
65
|
+
|
66
|
+
# Node
|
67
|
+
ENV NODE_OPTIONS="--max-old-space-size=8192"
|
68
|
+
|
69
|
+
WORKDIR /app
|
70
|
+
|
71
|
+
COPY package.json ./
|
72
|
+
COPY .npmrc ./
|
73
|
+
|
74
|
+
RUN \
|
75
|
+
# If you want to build docker in China, build with --build-arg USE_CN_MIRROR=true
|
76
|
+
if [ "${USE_CN_MIRROR:-false}" = "true" ]; then \
|
77
|
+
export SENTRYCLI_CDNURL="https://npmmirror.com/mirrors/sentry-cli"; \
|
78
|
+
npm config set registry "https://registry.npmmirror.com/"; \
|
79
|
+
echo 'canvas_binary_host_mirror=https://npmmirror.com/mirrors/canvas' >> .npmrc; \
|
80
|
+
fi \
|
81
|
+
# Set the registry for corepack
|
82
|
+
&& export COREPACK_NPM_REGISTRY=$(npm config get registry | sed 's/\/$//') \
|
83
|
+
# Update corepack to latest (nodejs/corepack#612)
|
84
|
+
&& npm i -g corepack@latest \
|
85
|
+
# Enable corepack
|
86
|
+
&& corepack enable \
|
87
|
+
# Use pnpm for corepack
|
88
|
+
&& corepack use $(sed -n 's/.*"packageManager": "\(.*\)".*/\1/p' package.json) \
|
89
|
+
# Install the dependencies
|
90
|
+
&& pnpm i \
|
91
|
+
# Add sharp dependencies
|
92
|
+
&& mkdir -p /deps \
|
93
|
+
&& pnpm add sharp --prefix /deps
|
94
|
+
|
95
|
+
COPY . .
|
96
|
+
|
97
|
+
# run build standalone for docker version
|
98
|
+
RUN npm run build:docker
|
99
|
+
|
100
|
+
## Application image, copy all the files for production
|
101
|
+
FROM busybox:latest AS app
|
102
|
+
|
103
|
+
COPY --from=base /distroless/ /
|
104
|
+
|
105
|
+
COPY --from=builder /app/public /app/public
|
106
|
+
|
107
|
+
# Automatically leverage output traces to reduce image size
|
108
|
+
# https://nextjs.org/docs/advanced-features/output-file-tracing
|
109
|
+
COPY --from=builder /app/.next/standalone /app/
|
110
|
+
COPY --from=builder /app/.next/static /app/.next/static
|
111
|
+
COPY --from=builder /deps/node_modules/.pnpm /app/node_modules/.pnpm
|
112
|
+
|
113
|
+
# Copy server launcher
|
114
|
+
COPY --from=builder /app/scripts/serverLauncher/startServer.js /app/startServer.js
|
115
|
+
|
116
|
+
RUN \
|
117
|
+
# Add nextjs:nodejs to run the app
|
118
|
+
addgroup -S -g 1001 nodejs \
|
119
|
+
&& adduser -D -G nodejs -H -S -h /app -u 1001 nextjs \
|
120
|
+
# Set permission for nextjs:nodejs
|
121
|
+
&& chown -R nextjs:nodejs /app /etc/proxychains4.conf
|
122
|
+
|
123
|
+
## Production image, copy all the files and run next
|
124
|
+
FROM scratch
|
125
|
+
|
126
|
+
# Copy all the files from app, set the correct permission for prerender cache
|
127
|
+
COPY --from=app / /
|
128
|
+
|
129
|
+
ENV NODE_ENV="production" \
|
130
|
+
NODE_OPTIONS="--dns-result-order=ipv4first --use-openssl-ca" \
|
131
|
+
NODE_EXTRA_CA_CERTS="" \
|
132
|
+
NODE_TLS_REJECT_UNAUTHORIZED="" \
|
133
|
+
SSL_CERT_DIR="/etc/ssl/certs/ca-certificates.crt"
|
134
|
+
|
135
|
+
# Make the middleware rewrite through local as default
|
136
|
+
# refs: https://github.com/lobehub/lobe-chat/issues/5876
|
137
|
+
ENV MIDDLEWARE_REWRITE_THROUGH_LOCAL="1"
|
138
|
+
|
139
|
+
# set hostname to localhost
|
140
|
+
ENV HOSTNAME="0.0.0.0" \
|
141
|
+
PORT="3210"
|
142
|
+
|
143
|
+
# General Variables
|
144
|
+
ENV ACCESS_CODE="" \
|
145
|
+
API_KEY_SELECT_MODE="" \
|
146
|
+
DEFAULT_AGENT_CONFIG="" \
|
147
|
+
SYSTEM_AGENT="" \
|
148
|
+
FEATURE_FLAGS="" \
|
149
|
+
PROXY_URL=""
|
150
|
+
|
151
|
+
# Model Variables
|
152
|
+
ENV \
|
153
|
+
# AI21
|
154
|
+
AI21_API_KEY="" AI21_MODEL_LIST="" \
|
155
|
+
# Ai360
|
156
|
+
AI360_API_KEY="" AI360_MODEL_LIST="" \
|
157
|
+
# Anthropic
|
158
|
+
ANTHROPIC_API_KEY="" ANTHROPIC_MODEL_LIST="" ANTHROPIC_PROXY_URL="" \
|
159
|
+
# Amazon Bedrock
|
160
|
+
AWS_ACCESS_KEY_ID="" AWS_SECRET_ACCESS_KEY="" AWS_REGION="" AWS_BEDROCK_MODEL_LIST="" \
|
161
|
+
# Azure OpenAI
|
162
|
+
AZURE_API_KEY="" AZURE_API_VERSION="" AZURE_ENDPOINT="" AZURE_MODEL_LIST="" \
|
163
|
+
# Baichuan
|
164
|
+
BAICHUAN_API_KEY="" BAICHUAN_MODEL_LIST="" \
|
165
|
+
# Cloudflare
|
166
|
+
CLOUDFLARE_API_KEY="" CLOUDFLARE_BASE_URL_OR_ACCOUNT_ID="" CLOUDFLARE_MODEL_LIST="" \
|
167
|
+
# DeepSeek
|
168
|
+
DEEPSEEK_API_KEY="" DEEPSEEK_MODEL_LIST="" \
|
169
|
+
# Fireworks AI
|
170
|
+
FIREWORKSAI_API_KEY="" FIREWORKSAI_MODEL_LIST="" \
|
171
|
+
# Gitee AI
|
172
|
+
GITEE_AI_API_KEY="" GITEE_AI_MODEL_LIST="" \
|
173
|
+
# GitHub
|
174
|
+
GITHUB_TOKEN="" GITHUB_MODEL_LIST="" \
|
175
|
+
# Google
|
176
|
+
GOOGLE_API_KEY="" GOOGLE_MODEL_LIST="" GOOGLE_PROXY_URL="" \
|
177
|
+
# Groq
|
178
|
+
GROQ_API_KEY="" GROQ_MODEL_LIST="" GROQ_PROXY_URL="" \
|
179
|
+
# Higress
|
180
|
+
HIGRESS_API_KEY="" HIGRESS_MODEL_LIST="" HIGRESS_PROXY_URL="" \
|
181
|
+
# HuggingFace
|
182
|
+
HUGGINGFACE_API_KEY="" HUGGINGFACE_MODEL_LIST="" HUGGINGFACE_PROXY_URL="" \
|
183
|
+
# Hunyuan
|
184
|
+
HUNYUAN_API_KEY="" HUNYUAN_MODEL_LIST="" \
|
185
|
+
# InternLM
|
186
|
+
INTERNLM_API_KEY="" INTERNLM_MODEL_LIST="" \
|
187
|
+
# Jina
|
188
|
+
JINA_API_KEY="" JINA_MODEL_LIST="" JINA_PROXY_URL="" \
|
189
|
+
# Minimax
|
190
|
+
MINIMAX_API_KEY="" MINIMAX_MODEL_LIST="" \
|
191
|
+
# Mistral
|
192
|
+
MISTRAL_API_KEY="" MISTRAL_MODEL_LIST="" \
|
193
|
+
# Moonshot
|
194
|
+
MOONSHOT_API_KEY="" MOONSHOT_MODEL_LIST="" MOONSHOT_PROXY_URL="" \
|
195
|
+
# Novita
|
196
|
+
NOVITA_API_KEY="" NOVITA_MODEL_LIST="" \
|
197
|
+
# Nvidia NIM
|
198
|
+
NVIDIA_API_KEY="" NVIDIA_MODEL_LIST="" NVIDIA_PROXY_URL="" \
|
199
|
+
# Ollama
|
200
|
+
ENABLED_OLLAMA="" OLLAMA_MODEL_LIST="" OLLAMA_PROXY_URL="" \
|
201
|
+
# OpenAI
|
202
|
+
OPENAI_API_KEY="" OPENAI_MODEL_LIST="" OPENAI_PROXY_URL="" \
|
203
|
+
# OpenRouter
|
204
|
+
OPENROUTER_API_KEY="" OPENROUTER_MODEL_LIST="" \
|
205
|
+
# Perplexity
|
206
|
+
PERPLEXITY_API_KEY="" PERPLEXITY_MODEL_LIST="" PERPLEXITY_PROXY_URL="" \
|
207
|
+
# Qwen
|
208
|
+
QWEN_API_KEY="" QWEN_MODEL_LIST="" QWEN_PROXY_URL="" \
|
209
|
+
# SambaNova
|
210
|
+
SAMBANOVA_API_KEY="" SAMBANOVA_MODEL_LIST="" \
|
211
|
+
# SenseNova
|
212
|
+
SENSENOVA_API_KEY="" SENSENOVA_MODEL_LIST="" \
|
213
|
+
# SiliconCloud
|
214
|
+
SILICONCLOUD_API_KEY="" SILICONCLOUD_MODEL_LIST="" SILICONCLOUD_PROXY_URL="" \
|
215
|
+
# Spark
|
216
|
+
SPARK_API_KEY="" SPARK_MODEL_LIST="" \
|
217
|
+
# Stepfun
|
218
|
+
STEPFUN_API_KEY="" STEPFUN_MODEL_LIST="" \
|
219
|
+
# Taichu
|
220
|
+
TAICHU_API_KEY="" TAICHU_MODEL_LIST="" \
|
221
|
+
# TogetherAI
|
222
|
+
TOGETHERAI_API_KEY="" TOGETHERAI_MODEL_LIST="" \
|
223
|
+
# Upstage
|
224
|
+
UPSTAGE_API_KEY="" UPSTAGE_MODEL_LIST="" \
|
225
|
+
# vLLM
|
226
|
+
VLLM_API_KEY="" VLLM_MODEL_LIST="" VLLM_PROXY_URL="" \
|
227
|
+
# Wenxin
|
228
|
+
WENXIN_API_KEY="" WENXIN_MODEL_LIST="" \
|
229
|
+
# xAI
|
230
|
+
XAI_API_KEY="" XAI_MODEL_LIST="" XAI_PROXY_URL="" \
|
231
|
+
# 01.AI
|
232
|
+
ZEROONE_API_KEY="" ZEROONE_MODEL_LIST="" \
|
233
|
+
# Zhipu
|
234
|
+
ZHIPU_API_KEY="" ZHIPU_MODEL_LIST="" \
|
235
|
+
# Tencent Cloud
|
236
|
+
TENCENT_CLOUD_API_KEY="" TENCENT_CLOUD_MODEL_LIST=""
|
237
|
+
|
238
|
+
USER nextjs
|
239
|
+
|
240
|
+
EXPOSE 3210/tcp
|
241
|
+
|
242
|
+
ENTRYPOINT ["/bin/node"]
|
243
|
+
|
244
|
+
CMD ["/app/startServer.js"]
|
package/changelog/v1.json
CHANGED
@@ -1,4 +1,21 @@
|
|
1
1
|
[
|
2
|
+
{
|
3
|
+
"children": {
|
4
|
+
"features": [
|
5
|
+
"Support google vertex ai as a new provider."
|
6
|
+
],
|
7
|
+
"fixes": [
|
8
|
+
"Try to fix pglite worker."
|
9
|
+
]
|
10
|
+
},
|
11
|
+
"date": "2025-02-18",
|
12
|
+
"version": "1.61.0"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"children": {},
|
16
|
+
"date": "2025-02-18",
|
17
|
+
"version": "1.60.9"
|
18
|
+
},
|
2
19
|
{
|
3
20
|
"children": {
|
4
21
|
"improvements": [
|
package/locales/ar/error.json
CHANGED
@@ -76,6 +76,7 @@
|
|
76
76
|
"InvalidGithubToken": "رمز وصول شخصية GitHub غير صحيح أو فارغ، يرجى التحقق من رمز وصول GitHub الشخصي والمحاولة مرة أخرى",
|
77
77
|
"InvalidOllamaArgs": "تكوين Ollama غير صحيح، يرجى التحقق من تكوين Ollama وإعادة المحاولة",
|
78
78
|
"InvalidProviderAPIKey": "{{provider}} مفتاح API غير صحيح أو فارغ، يرجى التحقق من مفتاح API {{provider}} الخاص بك وحاول مرة أخرى",
|
79
|
+
"InvalidVertexCredentials": "فشل التحقق من بيانات اعتماد Vertex، يرجى التحقق من بيانات الاعتماد وإعادة المحاولة",
|
79
80
|
"LocationNotSupportError": "عذرًا، لا يدعم موقعك الحالي خدمة هذا النموذج، قد يكون ذلك بسبب قيود المنطقة أو عدم توفر الخدمة. يرجى التحقق مما إذا كان الموقع الحالي يدعم استخدام هذه الخدمة، أو محاولة استخدام معلومات الموقع الأخرى.",
|
80
81
|
"NoOpenAIAPIKey": "مفتاح API الخاص بـ OpenAI فارغ، يرجى إضافة مفتاح API الخاص بـ OpenAI",
|
81
82
|
"OllamaBizError": "خطأ في طلب خدمة Ollama، يرجى التحقق من المعلومات التالية أو إعادة المحاولة",
|
@@ -322,6 +322,13 @@
|
|
322
322
|
"tooltip": "تحديث التكوين الأساسي للمزود",
|
323
323
|
"updateSuccess": "تم التحديث بنجاح"
|
324
324
|
},
|
325
|
+
"vertexai": {
|
326
|
+
"apiKey": {
|
327
|
+
"desc": "أدخل مفاتيح Vertex AI الخاصة بك",
|
328
|
+
"placeholder": "{ \"type\": \"service_account\", \"project_id\": \"xxx\", \"private_key_id\": ... }",
|
329
|
+
"title": "مفاتيح Vertex AI"
|
330
|
+
}
|
331
|
+
},
|
325
332
|
"zeroone": {
|
326
333
|
"title": "01.AI الأشياء الصغرى"
|
327
334
|
},
|
package/locales/ar/models.json
CHANGED
@@ -371,9 +371,6 @@
|
|
371
371
|
"abab6.5t-chat": {
|
372
372
|
"description": "محسن لمشاهد الحوار باللغة الصينية، يوفر قدرة توليد حوار سلس ومتوافق مع عادات التعبير الصينية."
|
373
373
|
},
|
374
|
-
"abab7-chat-preview": {
|
375
|
-
"description": "تحسين كبير في قدرات النموذج مقارنة بسلسلة abab6.5 في النصوص الطويلة، الرياضيات، والكتابة."
|
376
|
-
},
|
377
374
|
"accounts/fireworks/models/deepseek-r1": {
|
378
375
|
"description": "DeepSeek-R1 هو نموذج لغة كبير متقدم، تم تحسينه من خلال التعلم المعزز وبيانات البدء البارد، ويتميز بأداء ممتاز في الاستدلال، والرياضيات، والبرمجة."
|
379
376
|
},
|
@@ -728,6 +725,9 @@
|
|
728
725
|
"gemini-1.0-pro-latest": {
|
729
726
|
"description": "Gemini 1.0 Pro هو نموذج ذكاء اصطناعي عالي الأداء من Google، مصمم للتوسع في مجموعة واسعة من المهام."
|
730
727
|
},
|
728
|
+
"gemini-1.5-flash": {
|
729
|
+
"description": "جمني 1.5 فلاش هو أحدث نموذج ذكاء اصطناعي متعدد الوسائط من جوجل، يتمتع بقدرة معالجة سريعة، ويدعم إدخال النصوص والصور والفيديو، مما يجعله مناسبًا للتوسع الفعال في مجموعة متنوعة من المهام."
|
730
|
+
},
|
731
731
|
"gemini-1.5-flash-001": {
|
732
732
|
"description": "Gemini 1.5 Flash 001 هو نموذج متعدد الوسائط فعال، يدعم التوسع في التطبيقات الواسعة."
|
733
733
|
},
|
@@ -767,24 +767,15 @@
|
|
767
767
|
"gemini-2.0-flash-001": {
|
768
768
|
"description": "Gemini 2.0 Flash يقدم ميزات وتحسينات من الجيل التالي، بما في ذلك سرعة فائقة، واستخدام أدوات أصلية، وتوليد متعدد الوسائط، ونافذة سياق تصل إلى 1M توكن."
|
769
769
|
},
|
770
|
-
"gemini-2.0-flash-exp": {
|
771
|
-
"description": "جيميناي 2.0 فلاش إكسب هو أحدث نموذج ذكاء اصطناعي متعدد الوسائط من جوجل، يتمتع بميزات الجيل القادم، وسرعة فائقة، واستدعاء أدوات أصلية، وتوليد متعدد الوسائط."
|
772
|
-
},
|
773
770
|
"gemini-2.0-flash-lite-preview-02-05": {
|
774
771
|
"description": "نموذج Gemini 2.0 Flash، تم تحسينه لأهداف التكلفة المنخفضة والكمون المنخفض."
|
775
772
|
},
|
776
773
|
"gemini-2.0-flash-thinking-exp-01-21": {
|
777
774
|
"description": "Gemini 2.0 Flash Exp هو أحدث نموذج تجريبي متعدد الوسائط من Google، يتمتع بميزات الجيل التالي، وسرعة فائقة، واستدعاء أدوات أصلية، وتوليد متعدد الوسائط."
|
778
775
|
},
|
779
|
-
"gemini-2.0-flash-thinking-exp-1219": {
|
780
|
-
"description": "Gemini 2.0 Flash Exp هو أحدث نموذج ذكاء اصطناعي متعدد الوسائط التجريبي من Google، يتميز بخصائص الجيل التالي، وسرعة فائقة، واستدعاء أدوات أصلية، وتوليد متعدد الوسائط."
|
781
|
-
},
|
782
776
|
"gemini-2.0-pro-exp-02-05": {
|
783
777
|
"description": "Gemini 2.0 Pro Experimental هو أحدث نموذج ذكاء اصطناعي متعدد الوسائط التجريبي من Google، مع تحسينات ملحوظة في الجودة مقارنة بالإصدارات السابقة، خاصة في المعرفة العالمية، والبرمجة، والسياقات الطويلة."
|
784
778
|
},
|
785
|
-
"gemini-exp-1206": {
|
786
|
-
"description": "جيميني إكسب 1206 هو أحدث نموذج ذكاء اصطناعي متعدد الوسائط من جوجل، مع تحسينات في الجودة مقارنةً بالإصدارات السابقة."
|
787
|
-
},
|
788
779
|
"gemma-7b-it": {
|
789
780
|
"description": "Gemma 7B مناسب لمعالجة المهام المتوسطة والصغيرة، ويجمع بين الكفاءة من حيث التكلفة."
|
790
781
|
},
|
@@ -119,6 +119,9 @@
|
|
119
119
|
"upstage": {
|
120
120
|
"description": "تتخصص Upstage في تطوير نماذج الذكاء الاصطناعي لتلبية احتياجات الأعمال المتنوعة، بما في ذلك Solar LLM وDocument AI، بهدف تحقيق الذكاء الاصطناعي العام (AGI) القائم على العمل. من خلال واجهة Chat API، يمكن إنشاء وكلاء حوار بسيطين، وتدعم استدعاء الوظائف، والترجمة، والتضمين، وتطبيقات المجالات المحددة."
|
121
121
|
},
|
122
|
+
"vertexai": {
|
123
|
+
"description": "سلسلة جيميني من جوجل هي نماذج الذكاء الاصطناعي الأكثر تقدمًا وعمومية، تم تطويرها بواسطة جوجل ديب مايند، مصممة خصيصًا لتكون متعددة الوسائط، تدعم الفهم والمعالجة السلسة للنصوص، الأكواد، الصور، الصوتيات، والفيديو. تناسب مجموعة متنوعة من البيئات، من مراكز البيانات إلى الأجهزة المحمولة، مما يعزز بشكل كبير كفاءة نماذج الذكاء الاصطناعي وتطبيقاتها الواسعة."
|
124
|
+
},
|
122
125
|
"vllm": {
|
123
126
|
"description": "vLLM هو مكتبة سريعة وسهلة الاستخدام لاستدلال LLM والخدمات."
|
124
127
|
},
|
package/locales/bg-BG/error.json
CHANGED
@@ -76,6 +76,7 @@
|
|
76
76
|
"InvalidGithubToken": "GitHub Личният Достъпен Токен е неправилен или е празен. Моля, проверете Личния Достъпен Токен на GitHub и опитайте отново.",
|
77
77
|
"InvalidOllamaArgs": "Невалидна конфигурация на Ollama, моля, проверете конфигурацията на Ollama и опитайте отново",
|
78
78
|
"InvalidProviderAPIKey": "{{provider}} API ключ е невалиден или липсва, моля проверете {{provider}} API ключа и опитайте отново",
|
79
|
+
"InvalidVertexCredentials": "Аутентификация на Vertex не беше успешна, моля проверете удостоверението и опитайте отново",
|
79
80
|
"LocationNotSupportError": "Съжаляваме, вашето текущо местоположение не поддържа тази услуга на модела. Това може да се дължи на регионални ограничения или на недостъпност на услугата. Моля, потвърдете дали текущото местоположение поддържа използването на тази услуга или опитайте да използвате друго местоположение.",
|
80
81
|
"NoOpenAIAPIKey": "API ключът на OpenAI е празен, моля, добавете персонализиран API ключ на OpenAI",
|
81
82
|
"OllamaBizError": "Грешка при заявка към услугата Ollama, моля, отстранете неизправностите или опитайте отново въз основа на следната информация",
|
@@ -322,6 +322,13 @@
|
|
322
322
|
"tooltip": "Актуализиране на основната конфигурация на доставчика",
|
323
323
|
"updateSuccess": "Актуализацията е успешна"
|
324
324
|
},
|
325
|
+
"vertexai": {
|
326
|
+
"apiKey": {
|
327
|
+
"desc": "Въведете вашите ключове за Vertex AI",
|
328
|
+
"placeholder": "{ \"type\": \"service_account\", \"project_id\": \"xxx\", \"private_key_id\": ... }",
|
329
|
+
"title": "Ключове за Vertex AI"
|
330
|
+
}
|
331
|
+
},
|
325
332
|
"zeroone": {
|
326
333
|
"title": "01.AI Зероуан Всичко"
|
327
334
|
},
|
@@ -371,9 +371,6 @@
|
|
371
371
|
"abab6.5t-chat": {
|
372
372
|
"description": "Оптимизирана за диалогови сценарии на китайски, предлагаща плавно и съответстващо на китайските изразни навици генериране на диалози."
|
373
373
|
},
|
374
|
-
"abab7-chat-preview": {
|
375
|
-
"description": "В сравнение с моделите от серията abab6.5, този модел предлага значително подобрение в способностите за работа с дълги текстове, математика и писане."
|
376
|
-
},
|
377
374
|
"accounts/fireworks/models/deepseek-r1": {
|
378
375
|
"description": "DeepSeek-R1 е авангарден голям езиков модел, оптимизиран чрез подсилено обучение и данни за студен старт, с отлични способности в разсъжденията, математиката и програмирането."
|
379
376
|
},
|
@@ -728,6 +725,9 @@
|
|
728
725
|
"gemini-1.0-pro-latest": {
|
729
726
|
"description": "Gemini 1.0 Pro е високопроизводителен AI модел на Google, проектиран за разширяване на широк спектър от задачи."
|
730
727
|
},
|
728
|
+
"gemini-1.5-flash": {
|
729
|
+
"description": "Gemini 1.5 Flash е най-новият мултимодален AI модел на Google, който предлага бърза обработка и поддържа текстови, изображенчески и видео входове, подходящ за ефективно разширяване на различни задачи."
|
730
|
+
},
|
731
731
|
"gemini-1.5-flash-001": {
|
732
732
|
"description": "Gemini 1.5 Flash 001 е ефективен многомодален модел, който поддържа разширяване на широк спектър от приложения."
|
733
733
|
},
|
@@ -767,24 +767,15 @@
|
|
767
767
|
"gemini-2.0-flash-001": {
|
768
768
|
"description": "Gemini 2.0 Flash предлага следващо поколение функции и подобрения, включително изключителна скорост, нативна употреба на инструменти, многомодално генериране и контекстен прозорец от 1M токена."
|
769
769
|
},
|
770
|
-
"gemini-2.0-flash-exp": {
|
771
|
-
"description": "Gemini 2.0 Flash Exp е най-новият експериментален мултимодален AI модел на Google, предлагащ следващо поколение функции, изключителна скорост, нативно извикване на инструменти и мултимодално генериране."
|
772
|
-
},
|
773
770
|
"gemini-2.0-flash-lite-preview-02-05": {
|
774
771
|
"description": "Модел на Gemini 2.0 Flash, оптимизиран за икономичност и ниска латентност."
|
775
772
|
},
|
776
773
|
"gemini-2.0-flash-thinking-exp-01-21": {
|
777
774
|
"description": "Gemini 2.0 Flash Exp е най-новият експериментален многомодален AI модел на Google, с ново поколение функции, изключителна скорост, нативно извикване на инструменти и многомодално генериране."
|
778
775
|
},
|
779
|
-
"gemini-2.0-flash-thinking-exp-1219": {
|
780
|
-
"description": "Gemini 2.0 Flash Exp е най-новият експериментален мултимодален AI модел на Google, с ново поколение функции, изключителна скорост, нативни инструменти за извикване и мултимодално генериране."
|
781
|
-
},
|
782
776
|
"gemini-2.0-pro-exp-02-05": {
|
783
777
|
"description": "Gemini 2.0 Pro Experimental е най-новият експериментален многомодален AI модел на Google, който предлага значително подобрение в качеството в сравнение с предишните версии, особено по отношение на световни знания, код и дълги контексти."
|
784
778
|
},
|
785
|
-
"gemini-exp-1206": {
|
786
|
-
"description": "Gemini Exp 1206 е най-новият експериментален мултимодален AI модел на Google, който предлага значително подобрение в качеството в сравнение с предишни версии."
|
787
|
-
},
|
788
779
|
"gemma-7b-it": {
|
789
780
|
"description": "Gemma 7B е подходяща за обработка на средни и малки задачи, съчетаваща икономичност."
|
790
781
|
},
|