mirror of
https://github.com/lobehub/lobehub
synced 2026-04-21 17:47:27 +00:00
💄 style: update brand and improve docs (#2917)
* 💄 style: update logo style * ♻️ refactor: hide webrtc sync by default * 🔧 chore: improve db migration script * 💄 style: rename to assistant * 💄 style: update brand * 💄 style: update brand * ⚡️ perf: dynamic pwa install * ✅ test: fix tests * 📝 docs: update docs * 📝 docs: update env * 📝 docs: update docs
This commit is contained in:
parent
cd9a143b3d
commit
2b54caeda1
46 changed files with 182 additions and 130 deletions
52
.env.example
52
.env.example
|
|
@ -129,3 +129,55 @@ OPENAI_API_KEY=sk-xxxxxxxxx
|
|||
# set the plugin settings
|
||||
# the format is `plugin-identifier:key1=value1;key2=value2`, multiple settings fields are separated by semicolons `;`, multiple plugin settings are separated by commas `,`.
|
||||
# PLUGIN_SETTINGS=search-engine:SERPAPI_API_KEY=xxxxx
|
||||
|
||||
|
||||
########################################
|
||||
##### S3 Object Storage Service ########
|
||||
########################################
|
||||
|
||||
# S3 keys
|
||||
#S3_ACCESS_KEY_ID=9998d6757e276cf9f1edbd325b7083a6
|
||||
#S3_SECRET_ACCESS_KEY=55af75d8eb6b99f189f6a35f855336ea62cd9c4751a5cf4337c53c1d3f497ac2
|
||||
|
||||
# Bucket name
|
||||
#S3_BUCKET=lobechat
|
||||
|
||||
# Bucket request endpoint
|
||||
#S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
|
||||
|
||||
# Public access domain for the bucket
|
||||
#NEXT_PUBLIC_S3_DOMAIN=https://s3-for-lobechat.your-domain.com
|
||||
|
||||
# Bucket region, such as us-west-1, generally not needed to add
|
||||
# but some service providers may require configuration
|
||||
# S3_REGION=us-west-1
|
||||
|
||||
|
||||
########################################
|
||||
############ Auth Service ##############
|
||||
########################################
|
||||
|
||||
|
||||
# Clerk related configurations
|
||||
|
||||
# Clerk public key and secret key
|
||||
#NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxx
|
||||
#CLERK_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
# you need to config the clerk webhook secret key if you want to use the clerk with database
|
||||
#CLERK_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
|
||||
########################################
|
||||
########## Server Database #############
|
||||
########################################
|
||||
|
||||
# Specify the service mode as server if you want to use the server database
|
||||
#NEXT_PUBLIC_SERVICE_MODE=server
|
||||
|
||||
# Postgres database URL
|
||||
#DATABASE_URL=postgres://username:password@host:port/database
|
||||
|
||||
# use `openssl rand -base64 32` to generate a key for the encryption of the database
|
||||
# we use this key to encrypt the user api key
|
||||
#KEY_VAULTS_SECRET=xxxxx/xxxxxxxxxxxxxx=
|
||||
|
|
|
|||
|
|
@ -27,19 +27,21 @@ All features are controlled by the `FEATURE_FLAGS` variable as the sole configur
|
|||
You can achieve various feature combinations using the above configuration syntax. All feature flags are Boolean values, enabled with `+` and disabled with `-`.
|
||||
|
||||
<Callout type={'tip'}>
|
||||
Attention: Unlike the `OPENAI_MODEL_LIST` variable, the `FEATURE_FLAGS` variable does not support the `all` keyword. You need to manually control all feature flags (otherwise, they will adopt their default values).
|
||||
Attention: Unlike the `OPENAI_MODEL_LIST` variable, the `FEATURE_FLAGS` variable does not support
|
||||
the `all` keyword. You need to manually control all feature flags (otherwise, they will adopt
|
||||
their default values).
|
||||
</Callout>
|
||||
|
||||
| Configuration Item | Description | Default Value |
|
||||
| ------------------------- | --------------------------------- | ------------- |
|
||||
| `webrtc_sync` | Enables WebRTC sync functionality.| Enabled |
|
||||
| `language_model_settings` | Enables language model settings. | Enabled |
|
||||
| `openai_api_key` | Allows users to customize the OpenAI API Key. | Enabled |
|
||||
| Configuration Item | Description | Default Value |
|
||||
| ------------------------- | ----------------------------------------------- | ------------- |
|
||||
| `webrtc_sync` | Enables WebRTC sync functionality. | Disabled |
|
||||
| `language_model_settings` | Enables language model settings. | Enabled |
|
||||
| `openai_api_key` | Allows users to customize the OpenAI API Key. | Enabled |
|
||||
| `openai_proxy_url` | Allows users to customize the OpenAI proxy URL. | Enabled |
|
||||
| `create_session` | Allows users to create sessions. | Enabled |
|
||||
| `edit_agent` | Allows users to edit assistants. | Enabled |
|
||||
| `dalle` | Enables the DALL-E functionality. | Enabled |
|
||||
| `check_updates` | Allows checking for updates. | Enabled |
|
||||
| `welcome_suggest` | Displays welcome suggestions. | Enabled |
|
||||
| `create_session` | Allows users to create sessions. | Enabled |
|
||||
| `edit_agent` | Allows users to edit assistants. | Enabled |
|
||||
| `dalle` | Enables the DALL-E functionality. | Enabled |
|
||||
| `check_updates` | Allows checking for updates. | Enabled |
|
||||
| `welcome_suggest` | Displays welcome suggestions. | Enabled |
|
||||
|
||||
You can always check the [featureFlags](https://github.com/lobehub/lobe-chat/blob/main/src/config/featureFlags/schema.ts) to get the latest list of feature flags.
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ tags:
|
|||
|
||||
| 配置项 | 解释 | 默认值 |
|
||||
| ------------------------- | -------------------------------- | ------ |
|
||||
| `webrtc_sync` | 启用 WebRTC 同步功能。 | 开启 |
|
||||
| `webrtc_sync` | 启用 WebRTC 同步功能。 | 关闭 |
|
||||
| `language_model_settings` | 启用语言模型设置。 | 开启 |
|
||||
| `openai_api_key` | 允许用户自定义 OpenAI API Key。 | 开启 |
|
||||
| `openai_proxy_url` | 允许用户自定义 OpenAI 代理 URL。 | 开启 |
|
||||
|
|
|
|||
|
|
@ -42,8 +42,6 @@ NEXT_PUBLIC_SERVICE_MODE=server
|
|||
|
||||
An example of how to fill in Vercel is shown below:
|
||||
|
||||
{' '}
|
||||
|
||||
<Image
|
||||
alt={'Add Serverless Postgres DATABASE_URL'}
|
||||
src={'https://github.com/lobehub/lobe-chat/assets/28616219/d4a710cd-6404-4196-90d0-cd08ca385074'}
|
||||
|
|
@ -67,8 +65,6 @@ NEXT_PUBLIC_SERVICE_MODE=server
|
|||
|
||||
An example of how to fill in Vercel is shown below:
|
||||
|
||||
{' '}
|
||||
|
||||
<Image
|
||||
alt={'Add Node Postgres DATABASE_URL'}
|
||||
src={'https://github.com/lobehub/lobe-chat/assets/28616219/1c689738-809b-4199-b305-ba5770d39da7'}
|
||||
|
|
@ -96,7 +92,7 @@ A server-side database needs to be paired with an identity authentication servic
|
|||
|
||||
<Callout type={'warning'}>
|
||||
Due to workload constraints, currently only Clerk is supported as an identity authentication
|
||||
service solution. Integration with Next-Auth for server-side database is under development.{' '}
|
||||
service solution. Integration with Next-Auth for server-side database is under development.
|
||||
</Callout>
|
||||
|
||||
<Steps>
|
||||
|
|
@ -143,7 +139,7 @@ We need to add an endpoint in Clerk's Webhooks to inform Clerk to send notificat
|
|||
alt={'Add an endpoint in Clerk Webhooks'}
|
||||
src={'https://github.com/lobehub/lobe-chat/assets/28616219/f50f47fb-5e8e-4930-bf4e-8cf6f5b8afb9'}
|
||||
>
|
||||
{' '}
|
||||
|
||||
</Image>
|
||||
|
||||
Fill in your Vercel project's URL in the endpoint, such as `https://your-project.vercel.app/api/webhooks/clerk`. Then, in the Subscribe to events section, check the three user events (`user.created`, `user.deleted`, `user.updated`), and click create.
|
||||
|
|
@ -185,10 +181,9 @@ You have now successfully configured the Clerk identity authentication service.
|
|||
LobeChat has long supported multimodal AI conversations, involving the function of uploading images to AI. In the client-side database solution, image files are stored as binary data in the browser's indexedDB database. However, this solution is not feasible in the server-side database. We need to configure the S3 storage service to store a large number of image files, and S3 can also serve as a storage solution for file uploads.
|
||||
|
||||
<Callout type={'info'}>
|
||||
{' '}
|
||||
In this article, S3 refers to a compatible S3 storage solution, which supports object storage systems
|
||||
In this article, S3 refers to a compatible S3 storage solution, which supports object storage systems
|
||||
that comply with the Amazon S3 API. Common examples include Cloudflare R2 etc., all of which support
|
||||
S3-compatible APIs.{' '}
|
||||
S3-compatible APIs.
|
||||
</Callout>
|
||||
|
||||
<Steps>
|
||||
|
|
@ -228,7 +223,7 @@ S3_BUCKET=lobechat
|
|||
# Bucket request endpoint
|
||||
S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
|
||||
# Public domain for accessing the bucket
|
||||
NEXT_PUBLIC_S3_DOMAIN=https://s3-dev.your-domain.com
|
||||
NEXT_PUBLIC_S3_DOMAIN=https://s3-for-lobechat.your-domain.com
|
||||
```
|
||||
|
||||
### Obtain S3 Key Environment Variables
|
||||
|
|
@ -282,7 +277,7 @@ S3_BUCKET=lobechat
|
|||
# Bucket request endpoint
|
||||
S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
|
||||
# Public domain for accessing the bucket
|
||||
NEXT_PUBLIC_S3_DOMAIN=https://s3-dev.your-domain.com
|
||||
NEXT_PUBLIC_S3_DOMAIN=https://s3-for-lobechat.your-domain.com
|
||||
|
||||
# Bucket region, such as us-west-1, generally not required to add, but some service providers may need to configure
|
||||
# S3_REGION=us-west-1
|
||||
|
|
@ -386,7 +381,7 @@ S3_BUCKET=lobechat
|
|||
# Bucket request endpoint
|
||||
S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
|
||||
# Public access domain for the bucket
|
||||
NEXT_PUBLIC_S3_DOMAIN=https://s3-dev.your-domain.com
|
||||
NEXT_PUBLIC_S3_DOMAIN=https://s3-for-lobechat.your-domain.com
|
||||
# Bucket region, such as us-west-1, generally not needed to add, but some service providers may require configuration
|
||||
# S3_REGION=us-west-1
|
||||
```
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ S3_BUCKET=lobechat
|
|||
# 存储桶的请求端点
|
||||
S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
|
||||
# 存储桶对外的访问域名
|
||||
NEXT_PUBLIC_S3_DOMAIN=https://s3-dev.your-domain.com
|
||||
NEXT_PUBLIC_S3_DOMAIN=https://s3-for-lobechat.your-domain.com
|
||||
```
|
||||
|
||||
### 获取 S3 密钥环境变量
|
||||
|
|
@ -370,7 +370,7 @@ S3_BUCKET=lobechat
|
|||
# 存储桶的请求端点
|
||||
S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
|
||||
# 存储桶对外的访问域名
|
||||
NEXT_PUBLIC_S3_DOMAIN=https://s3-dev.your-domain.com
|
||||
NEXT_PUBLIC_S3_DOMAIN=https://s3-for-lobechat.your-domain.com
|
||||
# 桶的区域,如 us-west-1,一般来说不需要添加,但某些服务商则需要配置
|
||||
# S3_REGION=us-west-1
|
||||
```
|
||||
|
|
|
|||
|
|
@ -150,4 +150,4 @@ echo "Removed old images."
|
|||
*/5 * * * * /path/to/auto-update-lobe-chat.sh >> /path/to/auto-update-lobe-chat.log 2>&1
|
||||
```
|
||||
|
||||
</Steps>
|
||||
</Steps>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
# Support Multi-User Management
|
||||
|
||||
|
||||
<Image
|
||||
alt={'Identity Verification System'}
|
||||
cover
|
||||
|
|
@ -18,12 +17,13 @@ LobeChat integrates `next-auth`, a flexible and powerful identity verification l
|
|||
- **Social Login**: Support quick login via various social platforms.
|
||||
- **Data Security**: Ensure the security and privacy of user data.
|
||||
|
||||
|
||||
<Callout type={'warning'}>
|
||||
Due to workload constraints, integration of next-auth with a server-side database has not been implemented yet. If you need to use a server-side database, please use Clerk. </Callout>
|
||||
Due to workload constraints, integration of next-auth with a server-side database has not been implemented yet. If you need to use a server-side database, please use Clerk.
|
||||
</Callout>
|
||||
|
||||
<Callout type={'info'}>
|
||||
For information on using Next-Auth, you can refer to [Authentication Services - Next Auth](/en-US/docs/self-hosting/advanced/authentication#next-auth). </Callout>
|
||||
For information on using Next-Auth, you can refer to [Authentication Services - Next Auth](/docs/self-hosting/advanced/authentication#next-auth).
|
||||
</Callout>
|
||||
|
||||
## Clerk: Modern User Management Platform
|
||||
|
||||
|
|
@ -35,10 +35,10 @@ For users requiring advanced user management features, LobeChat also supports [C
|
|||
- **Scalability**: Supports complex user management requirements.
|
||||
|
||||
<Callout type={'info'}>
|
||||
For information on using Clerk, you can refer to [Authentication Services - Clerk](/en-US/docs/self-hosting/advanced/authentication#clerk). </Callout>
|
||||
|
||||
For information on using Clerk, you can refer to [Authentication Services - Clerk](/docs/self-hosting/advanced/authentication#clerk).
|
||||
</Callout>
|
||||
|
||||
<Callout type={'tip'}>
|
||||
If you need to use Clerk in conjunction with a server-side database, you can refer to the "Configuring Authentication Services" section in [Deploying with a Server-Side Database](/en-US/docs/self-hosting/advanced/server-database). </Callout>
|
||||
|
||||
If you need to use Clerk in conjunction with a server-side database, you can refer to the "Configuring Authentication Services" section in [Deploying with a Server-Side Database](/docs/self-hosting/advanced/server-database).
|
||||
</Callout>
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,6 @@ LobeChat 集成了 `next-auth`,一个灵活且强大的身份验证库,支
|
|||
- **登录活动监控**:实时监控用户登录活动,确保账户安全。
|
||||
- **扩展性**:支持复杂的用户管理需求。
|
||||
|
||||
|
||||
<Callout type={'info'}>
|
||||
关于 Clerk 的使用,可以查阅 [身份验证服务 - Clerk](/zh/docs/self-hosting/advanced/authentication#clerk)。
|
||||
</Callout>
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ cover
|
|||
src={'https://github.com/lobehub/lobe-chat/assets/17870709/acf39ea2-74b3-46ae-8eb8-54a51f7f1d36'}
|
||||
/>
|
||||
|
||||
|
||||
In modern application development, the choice of data storage solution is crucial. To meet the needs of different users, LobeChat offers flexible configurations that support both local and server-side databases. Whether you prioritize data privacy and control or seek a convenient user experience, LobeChat can provide excellent solutions for you.
|
||||
|
||||
## Local Database: Data Control and Privacy Protection
|
||||
|
|
@ -26,7 +25,6 @@ For users who prefer more control over their data and value privacy protection,
|
|||
|
||||
Additionally, we have introduced Conflict-Free Replicated Data Type (CRDT) technology to ensure a seamless multi-device synchronization experience. This experimental feature aims to provide users with greater autonomy and data security.
|
||||
|
||||
|
||||
<Callout type={'info'}>LobeChat defaults to the local database solution to reduce the onboarding cost for new users.</Callout>
|
||||
|
||||
Furthermore, we have attempted to introduce CRDT technology to achieve cross-device synchronization based on the local database. This experimental feature aims to provide users with greater autonomy and data security.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "حول",
|
||||
"advanceSettings": "إعدادات متقدمة",
|
||||
"appInitializing": "جاري تهيئة LobeChat، يرجى الانتظار ...",
|
||||
"appInitializing": "جاري تشغيل التطبيق، يرجى الانتظار...",
|
||||
"autoGenerate": "توليد تلقائي",
|
||||
"autoGenerateTooltip": "إكمال تلقائي بناءً على الكلمات المقترحة لوصف المساعد",
|
||||
"autoGenerateTooltipDisabled": "الرجاء إدخال كلمة تلميح قبل تفعيل وظيفة الإكمال التلقائي",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "Относно",
|
||||
"advanceSettings": "Разширени настройки",
|
||||
"appInitializing": "LobeChat се инициализира, моля изчакайте...",
|
||||
"appInitializing": "Приложението се стартира, моля, бъдете търпеливи...",
|
||||
"autoGenerate": "Автоматично генериране",
|
||||
"autoGenerateTooltip": "Автоматично генериране на описание на агент въз основа на подкани",
|
||||
"autoGenerateTooltipDisabled": "Моля, попълнете подсказката, за да използвате функцията за автоматично допълване",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "Über",
|
||||
"advanceSettings": "Erweiterte Einstellungen",
|
||||
"appInitializing": "LobeChat wird initialisiert. Bitte haben Sie einen Moment Geduld...",
|
||||
"appInitializing": "Die App wird gestartet, bitte haben Sie etwas Geduld...",
|
||||
"autoGenerate": "Automatisch generieren",
|
||||
"autoGenerateTooltip": "Assistentenbeschreibung automatisch auf Basis von Vorschlägen vervollständigen",
|
||||
"autoGenerateTooltipDisabled": "Bitte geben Sie einen Hinweis ein, um die automatische Vervollständigung zu aktivieren",
|
||||
|
|
|
|||
|
|
@ -2,17 +2,17 @@
|
|||
"ModelSwitch": {
|
||||
"title": "Model"
|
||||
},
|
||||
"agentDefaultMessage": "Hello, I'm **{{name}}**. You can start chatting with me right away, or go to [Agent Settings](/chat/settings#session={{id}}) to complete my information.",
|
||||
"agentDefaultMessage": "Hello, I'm **{{name}}**. You can start chatting with me right away, or go to [Assistant Settings](/chat/settings#session={{id}}) to complete my information.",
|
||||
"agentDefaultMessageWithSystemRole": "Hello, I'm **{{name}}**, {{systemRole}}. Let's start chatting!",
|
||||
"agentsAndConversations": "Agents and Conversations",
|
||||
"agentsAndConversations": "Assistants and Conversations",
|
||||
"backToBottom": "Back to bottom",
|
||||
"clearCurrentMessages": "Clear current session messages",
|
||||
"confirmClearCurrentMessages": "You are about to clear the current session messages. Once cleared, they cannot be retrieved. Please confirm your action.",
|
||||
"confirmRemoveSessionItemAlert": "You are about to delete this agent. Once deleted, it cannot be retrieved. Please confirm your action.",
|
||||
"confirmRemoveSessionSuccess": "Agent removed successfully",
|
||||
"defaultAgent": "Default Agent",
|
||||
"confirmRemoveSessionItemAlert": "You are about to delete this assistant. Once deleted, it cannot be retrieved. Please confirm your action.",
|
||||
"confirmRemoveSessionSuccess": "Assistant removed successfully",
|
||||
"defaultAgent": "Default Assistant",
|
||||
"defaultList": "Default List",
|
||||
"defaultSession": "Default Agent",
|
||||
"defaultSession": "Default Assistant",
|
||||
"duplicateSession": {
|
||||
"loading": "Copying...",
|
||||
"success": "Copy successful",
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
"emptyAgent": "No assistant available",
|
||||
"historyRange": "History Range",
|
||||
"inbox": {
|
||||
"desc": "Activate the brain cluster and spark creative thinking. Your virtual agent is here to communicate with you about everything.",
|
||||
"desc": "Activate the brain cluster and spark creative thinking. Your virtual assistant is here to communicate with you about everything.",
|
||||
"title": "Just Chat"
|
||||
},
|
||||
"input": {
|
||||
|
|
@ -39,20 +39,20 @@
|
|||
"delAndRegenerate": "Delete and Regenerate",
|
||||
"regenerate": "Regenerate"
|
||||
},
|
||||
"newAgent": "New Agent",
|
||||
"newAgent": "New Assistant",
|
||||
"pin": "Pin",
|
||||
"pinOff": "Unpin",
|
||||
"regenerate": "Regenerate",
|
||||
"roleAndArchive": "Role and Archive",
|
||||
"searchAgentPlaceholder": "Search agents and conversations...",
|
||||
"searchAgentPlaceholder": "Search assistants and conversations...",
|
||||
"sendPlaceholder": "Type your message here...",
|
||||
"sessionGroup": {
|
||||
"config": "Group Management",
|
||||
"confirmRemoveGroupAlert": "This group is about to be deleted. After deletion, the agents in this group will be moved to the default list. Please confirm your operation.",
|
||||
"createAgentSuccess": "Agent created successfully",
|
||||
"confirmRemoveGroupAlert": "This group is about to be deleted. After deletion, the assistants in this group will be moved to the default list. Please confirm your operation.",
|
||||
"createAgentSuccess": "Assistant created successfully",
|
||||
"createGroup": "Add New Group",
|
||||
"createSuccess": "Created successfully",
|
||||
"creatingAgent": "Creating agent...",
|
||||
"creatingAgent": "Creating assistant...",
|
||||
"inputPlaceholder": "Please enter group name...",
|
||||
"moveGroup": "Move to Group",
|
||||
"newGroup": "New Group",
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
"withBackground": "Include Background Image",
|
||||
"withFooter": "Include Footer",
|
||||
"withPluginInfo": "Include Plugin Information",
|
||||
"withSystemRole": "Include Agent Role Setting"
|
||||
"withSystemRole": "Include Assistant Role Setting"
|
||||
},
|
||||
"stt": {
|
||||
"action": "Voice Input",
|
||||
|
|
@ -124,7 +124,7 @@
|
|||
"action": "Text-to-Speech",
|
||||
"clear": "Clear Speech"
|
||||
},
|
||||
"updateAgent": "Update Agent Information",
|
||||
"updateAgent": "Update Assistant Information",
|
||||
"upload": {
|
||||
"actionFiletip": "Update File",
|
||||
"actionTooltip": "Upload Image",
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"about": "About",
|
||||
"advanceSettings": "Advanced Settings",
|
||||
"appInitializing": "LobeChat is initializing, please wait...",
|
||||
"appInitializing": "The application is initializing, please wait patiently...",
|
||||
"autoGenerate": "Auto Generate",
|
||||
"autoGenerateTooltip": "Auto-generate agent description based on prompts",
|
||||
"autoGenerateTooltip": "Auto-generate assistant description based on prompts",
|
||||
"autoGenerateTooltipDisabled": "Please enter a tooltip before using the autocomplete feature",
|
||||
"blog": "Product Blog",
|
||||
"cancel": "Cancel",
|
||||
|
|
@ -15,23 +15,23 @@
|
|||
"copySuccess": "Copied successfully",
|
||||
"dataStatistics": {
|
||||
"messages": "Messages",
|
||||
"sessions": "Agents",
|
||||
"sessions": "Assistants",
|
||||
"today": "Today's New",
|
||||
"topics": "Topics"
|
||||
},
|
||||
"defaultAgent": "Default Agent",
|
||||
"defaultSession": "Default Agent",
|
||||
"defaultAgent": "Default Assistant",
|
||||
"defaultSession": "Default Assistant",
|
||||
"delete": "Delete",
|
||||
"document": "User Manual",
|
||||
"duplicate": "Create Duplicate",
|
||||
"edit": "Edit",
|
||||
"export": "Export Configuration",
|
||||
"exportType": {
|
||||
"agent": "Export Agent Settings",
|
||||
"agentWithMessage": "Export Agent and Messages",
|
||||
"all": "Export Global Settings and All Agent Data",
|
||||
"allAgent": "Export All Agent Settings",
|
||||
"allAgentWithMessage": "Export All Agents and Messages",
|
||||
"agent": "Export Assistant Settings",
|
||||
"agentWithMessage": "Export Assistant and Messages",
|
||||
"all": "Export Global Settings and All Assistant Data",
|
||||
"allAgent": "Export All Assistant Settings",
|
||||
"allAgentWithMessage": "Export All Assistants and Messages",
|
||||
"globalSetting": "Export Global Settings"
|
||||
},
|
||||
"feedback": "Feedback",
|
||||
|
|
@ -76,7 +76,7 @@
|
|||
"errors": "Import errors",
|
||||
"messages": "Messages",
|
||||
"sessionGroups": "Groups",
|
||||
"sessions": "Agents",
|
||||
"sessions": "Assistants",
|
||||
"skips": "Duplicates skipped",
|
||||
"topics": "Topics",
|
||||
"type": "Data Type"
|
||||
|
|
@ -196,7 +196,7 @@
|
|||
},
|
||||
"temp": "Temporary",
|
||||
"terms": "Terms of Service",
|
||||
"updateAgent": "Update Agent Information",
|
||||
"updateAgent": "Update Assistant Information",
|
||||
"upgradeVersion": {
|
||||
"action": "Upgrade",
|
||||
"hasNew": "New update available",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"addAgent": "Add Agent",
|
||||
"addAgentAndConverse": "Add Agent and Converse",
|
||||
"addAgent": "Add Assistant",
|
||||
"addAgentAndConverse": "Add Assistant and Converse",
|
||||
"addAgentSuccess": "Successfully Added",
|
||||
"guide": {
|
||||
"func1": {
|
||||
|
|
@ -17,16 +17,16 @@
|
|||
}
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Search agent name, description or keywords..."
|
||||
"placeholder": "Search assistant name, description or keywords..."
|
||||
},
|
||||
"sidebar": {
|
||||
"comment": "Comments",
|
||||
"prompt": "Prompts",
|
||||
"title": "Agent Details"
|
||||
"title": "Assistant Details"
|
||||
},
|
||||
"submitAgent": "Submit Agent",
|
||||
"submitAgent": "Submit Assistant",
|
||||
"title": {
|
||||
"allAgents": "All Agents",
|
||||
"allAgents": "All Assistants",
|
||||
"recentSubmits": "Recent Submits"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
"title": "LobeChat: Personal LLM Productivity Tool, Give Yourself a Smarter Brain"
|
||||
},
|
||||
"market": {
|
||||
"description": "Content creation, copywriting, Q&A, image generation, video generation, voice generation, smart agents, automation workflows, customize your own AI / GPTs / OLLaMA intelligent agent",
|
||||
"title": "Agent Market"
|
||||
"description": "Content creation, copywriting, Q&A, image generation, video generation, voice generation, smart assistants, automation workflows, customize your own AI / GPTs / OLLaMA intelligent assistant",
|
||||
"title": "Assistant Market"
|
||||
},
|
||||
"plugins": {
|
||||
"description": "Search, chart generation, academic, image generation, video generation, voice generation, automation workflows, customize ChatGPT / OLLaMA exclusive ToolCall plugin capabilities",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
},
|
||||
"agentTab": {
|
||||
"chat": "Chat Preferences",
|
||||
"meta": "Agent Info",
|
||||
"meta": "Assistant Info",
|
||||
"modal": "Model Settings",
|
||||
"plugin": "Plugin Settings",
|
||||
"prompt": "Role Configuration",
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
"clear": {
|
||||
"action": "Clear Now",
|
||||
"confirm": "Confirm to clear all chat data?",
|
||||
"desc": "This will clear all session data, including agent, files, messages, plugins, etc.",
|
||||
"desc": "This will clear all session data, including assistant, files, messages, plugins, etc.",
|
||||
"success": "All session messages have been cleared",
|
||||
"title": "Clear All Session Messages"
|
||||
},
|
||||
|
|
@ -136,11 +136,11 @@
|
|||
"title": "Background Color"
|
||||
},
|
||||
"description": {
|
||||
"placeholder": "Enter agent description",
|
||||
"title": "Agent Description"
|
||||
"placeholder": "Enter assistant description",
|
||||
"title": "Assistant Description"
|
||||
},
|
||||
"name": {
|
||||
"placeholder": "Enter agent name",
|
||||
"placeholder": "Enter assistant name",
|
||||
"title": "Name"
|
||||
},
|
||||
"prompt": {
|
||||
|
|
@ -151,7 +151,7 @@
|
|||
"placeholder": "Enter tag",
|
||||
"title": "Tag"
|
||||
},
|
||||
"title": "Agent Information"
|
||||
"title": "Assistant Information"
|
||||
},
|
||||
"settingChat": {
|
||||
"autoCreateTopicThreshold": {
|
||||
|
|
@ -288,7 +288,7 @@
|
|||
"title": "Text-to-Speech Service"
|
||||
},
|
||||
"voice": {
|
||||
"desc": "Select a voice for the current agent, different TTS services support different voices",
|
||||
"desc": "Select a voice for the current assistant, different TTS services support different voices",
|
||||
"preview": "Voice Preview",
|
||||
"title": "Text-to-Speech Voice"
|
||||
}
|
||||
|
|
@ -325,11 +325,11 @@
|
|||
"title": "Theme Settings"
|
||||
},
|
||||
"submitAgentModal": {
|
||||
"button": "Submit Agent",
|
||||
"identifier": "Agent Identifier",
|
||||
"metaMiss": "Please complete the agent information before submitting. It should include name, description, and tags",
|
||||
"placeholder": "Enter a unique identifier for the agent, e.g. web-development",
|
||||
"tooltips": "Share to the agent marketplace"
|
||||
"button": "Submit Assistant",
|
||||
"identifier": "Assistant Identifier",
|
||||
"metaMiss": "Please complete the assistant information before submitting. It should include name, description, and tags",
|
||||
"placeholder": "Enter a unique identifier for the assistant, e.g. web-development",
|
||||
"tooltips": "Share to the assistant marketplace"
|
||||
},
|
||||
"sync": {
|
||||
"device": {
|
||||
|
|
@ -366,26 +366,26 @@
|
|||
}
|
||||
},
|
||||
"systemAgent": {
|
||||
"title": "System Agents",
|
||||
"title": "System Assistants",
|
||||
"topic": {
|
||||
"label": "Topic Naming Model",
|
||||
"modelDesc": "Model designated for automatic topic renaming",
|
||||
"title": "Automatic Topic Naming"
|
||||
},
|
||||
"translation": {
|
||||
"label": "Translation Agent",
|
||||
"label": "Translation Assistant",
|
||||
"modelDesc": "Specific model for translate message",
|
||||
"title": "Translation Settings"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"about": "About",
|
||||
"agent": "Default Agent",
|
||||
"agent": "Default Assistant",
|
||||
"common": "Common Settings",
|
||||
"experiment": "Experiment",
|
||||
"llm": "Language Model",
|
||||
"sync": "Cloud Sync",
|
||||
"system-agent": "System Agent",
|
||||
"system-agent": "System Assistant",
|
||||
"tts": "Text-to-Speech"
|
||||
},
|
||||
"tools": {
|
||||
|
|
|
|||
|
|
@ -39,11 +39,11 @@
|
|||
}
|
||||
},
|
||||
"header": "Welcome",
|
||||
"pickAgent": "Or choose from the following agent templates",
|
||||
"pickAgent": "Or choose from the following assistant templates",
|
||||
"skip": "Skip Creation",
|
||||
"slogan": {
|
||||
"desc1": "Pioneering the new age of thinking and creating. Built for you, the Super Individual.",
|
||||
"desc2": "Create your first agent and let's get started~",
|
||||
"desc2": "Create your first assistant and let's get started~",
|
||||
"title": "Unlock the superpower of your brain"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "Acerca de",
|
||||
"advanceSettings": "Configuración avanzada",
|
||||
"appInitializing": "LobeChat está inicializando, por favor espere...",
|
||||
"appInitializing": "Iniciando la aplicación, por favor espere...",
|
||||
"autoGenerate": "Generación automática",
|
||||
"autoGenerateTooltip": "Completar automáticamente la descripción del asistente basándose en las sugerencias",
|
||||
"autoGenerateTooltipDisabled": "Por favor, complete la palabra clave antes de usar la función de autocompletar",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "À propos",
|
||||
"advanceSettings": "Paramètres avancés",
|
||||
"appInitializing": "LobeChat est en cours de démarrage, veuillez patienter...",
|
||||
"appInitializing": "L'application est en cours de démarrage, veuillez patienter...",
|
||||
"autoGenerate": "Générer automatiquement",
|
||||
"autoGenerateTooltip": "Générer automatiquement la description de l'agent basée sur les suggestions",
|
||||
"autoGenerateTooltipDisabled": "Veuillez saisir un mot-clé avant d'activer la fonction de complétion automatique",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "Informazioni",
|
||||
"advanceSettings": "Impostazioni avanzate",
|
||||
"appInitializing": "LobeChat inizializzazione in corso, attendere prego...",
|
||||
"appInitializing": "Inizializzazione dell'app in corso, attendere pazientemente...",
|
||||
"autoGenerate": "Generazione automatica",
|
||||
"autoGenerateTooltip": "Completamento automatico basato su suggerimenti",
|
||||
"autoGenerateTooltipDisabled": "Si prega di compilare il campo suggerimento per abilitare la funzione di completamento automatico",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "概要",
|
||||
"advanceSettings": "高度な設定",
|
||||
"appInitializing": "LobeChatを初期化中です。しばらくお待ちください...",
|
||||
"appInitializing": "アプリケーションを初期化しています。しばらくお待ちください...",
|
||||
"autoGenerate": "自動生成",
|
||||
"autoGenerateTooltip": "ヒントに基づいてエージェントの説明を自動生成します",
|
||||
"autoGenerateTooltipDisabled": "ツールチップを入力してから自動生成機能を使用してください",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "소개",
|
||||
"advanceSettings": "고급 설정",
|
||||
"appInitializing": "LobeChat이 초기화 중입니다. 잠시 기다려주세요...",
|
||||
"appInitializing": "앱을 시작하는 중입니다. 잠시 기다려주세요...",
|
||||
"autoGenerate": "자동 생성",
|
||||
"autoGenerateTooltip": "힌트 단어를 기반으로 에이전트 설명을 자동으로 완성합니다",
|
||||
"autoGenerateTooltipDisabled": "자동 완성 기능을 사용하려면 툴팁을 입력하십시오",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "Over",
|
||||
"advanceSettings": "Geavanceerde instellingen",
|
||||
"appInitializing": "LobeChat wordt geïnitialiseerd, even geduld a.u.b...",
|
||||
"appInitializing": "Applicatie wordt gestart, gelieve geduld te hebben...",
|
||||
"autoGenerate": "Automatisch genereren",
|
||||
"autoGenerateTooltip": "Automatisch assistentbeschrijving genereren op basis van suggesties",
|
||||
"autoGenerateTooltipDisabled": "Schakel de automatische aanvulling in nadat u een suggestiewoord heeft ingevoerd",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "O nas",
|
||||
"advanceSettings": "Zaawansowane ustawienia",
|
||||
"appInitializing": "LobeChat inicjuje, proszę czekać...",
|
||||
"appInitializing": "Inicjowanie aplikacji, prosimy o cierpliwość...",
|
||||
"autoGenerate": "Automatyczne generowanie",
|
||||
"autoGenerateTooltip": "Automatyczne uzupełnianie opisu asystenta na podstawie sugestii",
|
||||
"autoGenerateTooltipDisabled": "Proszę wprowadzić słowo kluczowe przed użyciem funkcji automatycznego uzupełniania",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "Sobre",
|
||||
"advanceSettings": "Configurações avançadas",
|
||||
"appInitializing": "LobeChat inicializando, por favor aguarde...",
|
||||
"appInitializing": "Inicializando o aplicativo, por favor, aguarde...",
|
||||
"autoGenerate": "Auto completar",
|
||||
"autoGenerateTooltip": "Auto completar descrição do assistente com base em sugestões",
|
||||
"autoGenerateTooltipDisabled": "Por favor, preencha a dica antes de usar a função de preenchimento automático",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "О нас",
|
||||
"advanceSettings": "Расширенные настройки",
|
||||
"appInitializing": "LobeChat запускается, пожалуйста, подождите…",
|
||||
"appInitializing": "Приложение запускается, пожалуйста, подождите...",
|
||||
"autoGenerate": "Автозаполнение",
|
||||
"autoGenerateTooltip": "Автоматическое дополнение описания агента на основе подсказок",
|
||||
"autoGenerateTooltipDisabled": "Пожалуйста, введите подсказку перед использованием функции автозаполнения",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "Hakkında",
|
||||
"advanceSettings": "Gelişmiş Ayarlar",
|
||||
"appInitializing": "LobeChat başlatılıyor, lütfen bekleyin...",
|
||||
"appInitializing": "Uygulama başlatılıyor, lütfen bekleyin...",
|
||||
"autoGenerate": "Otomatik Oluştur",
|
||||
"autoGenerateTooltip": "Auto-generate agent description based on prompts",
|
||||
"autoGenerateTooltipDisabled": "Otomatik tamamlama işlevini kullanmadan önce ipucu kelimesini girin",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "Giới thiệu",
|
||||
"advanceSettings": "Cài đặt nâng cao",
|
||||
"appInitializing": "LobeChat đang khởi động, vui lòng chờ...",
|
||||
"appInitializing": "Ứng dụng đang khởi động, vui lòng chờ...",
|
||||
"autoGenerate": "Tự động tạo",
|
||||
"autoGenerateTooltip": "Tự động hoàn thành mô tả trợ lý dựa trên từ gợi ý",
|
||||
"autoGenerateTooltipDisabled": "Vui lòng nhập từ gợi ý trước khi sử dụng tính năng tự động hoàn thành",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "关于",
|
||||
"advanceSettings": "高级设置",
|
||||
"appInitializing": "LobeChat 启动中,请耐心等待...",
|
||||
"appInitializing": "应用启动中,请耐心等待...",
|
||||
"autoGenerate": "自动补全",
|
||||
"autoGenerateTooltip": "基于提示词自动补全助手描述",
|
||||
"autoGenerateTooltipDisabled": "请填写提示词后使用自动补全功能",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"about": "關於",
|
||||
"advanceSettings": "進階設定",
|
||||
"appInitializing": "LobeChat 初始化中,請耐心等候...",
|
||||
"appInitializing": "應用程式初始化中,請耐心等候...",
|
||||
"autoGenerate": "自動生成",
|
||||
"autoGenerateTooltip": "基於提示詞自動生成助手描述",
|
||||
"autoGenerateTooltipDisabled": "請填寫提示詞後使用自動補全功能",
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@
|
|||
"@lobehub/chat-plugins-gateway": "^1.9.0",
|
||||
"@lobehub/icons": "^1.23.0",
|
||||
"@lobehub/tts": "^1.24.1",
|
||||
"@lobehub/ui": "^1.142.4",
|
||||
"@lobehub/ui": "^1.143.3",
|
||||
"@microsoft/fetch-event-source": "^2.0.1",
|
||||
"@neondatabase/serverless": "^0.9.3",
|
||||
"@next/third-parties": "^14.2.3",
|
||||
|
|
|
|||
|
|
@ -10,12 +10,9 @@ export const readJSON = (filePath: string) => {
|
|||
return JSON.parse(data);
|
||||
};
|
||||
|
||||
export const replaceAssistantToAgent = (text: string) =>
|
||||
text.replaceAll('assistant', 'agent').replaceAll('Assistant', 'Agent');
|
||||
|
||||
export const writeJSON = (filePath: string, data: any) => {
|
||||
const jsonStr = JSON.stringify(data, null, 2);
|
||||
writeFileSync(filePath, replaceAssistantToAgent(jsonStr), 'utf8');
|
||||
writeFileSync(filePath, jsonStr, 'utf8');
|
||||
};
|
||||
|
||||
export const genResourcesContent = (locales: string[]) => {
|
||||
|
|
|
|||
|
|
@ -27,4 +27,6 @@ if (connectionString) {
|
|||
// eslint-disable-next-line unicorn/no-process-exit
|
||||
process.exit(1);
|
||||
});
|
||||
} else {
|
||||
console.log('🟢 not find database env, migration skipped');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { Avatar, ChatHeaderTitle, Logo, Markdown } from '@lobehub/ui';
|
||||
import { Avatar, ChatHeaderTitle, Markdown } from '@lobehub/ui';
|
||||
import { LobeChat } from '@lobehub/ui/brand';
|
||||
import { memo } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
|
@ -62,7 +63,7 @@ const Preview = memo<FieldType & { title?: string }>(
|
|||
<ChatList />
|
||||
{withFooter ? (
|
||||
<Flexbox align={'center'} className={styles.footer} gap={4}>
|
||||
<Logo extra={'chat'} type={'combine'} />
|
||||
<LobeChat type={'combine'} />
|
||||
<div className={styles.url}>{pkg.homepage}</div>
|
||||
</Flexbox>
|
||||
) : (
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
'use client';
|
||||
|
||||
import { ActionIcon, Logo } from '@lobehub/ui';
|
||||
import { ActionIcon } from '@lobehub/ui';
|
||||
import { LobeChat } from '@lobehub/ui/brand';
|
||||
import { createStyles } from 'antd-style';
|
||||
import { MessageSquarePlus } from 'lucide-react';
|
||||
import { memo } from 'react';
|
||||
|
|
@ -37,7 +38,7 @@ const Header = memo(() => {
|
|||
<Flexbox className={styles.top} gap={16} padding={16}>
|
||||
<Flexbox distribution={'space-between'} horizontal>
|
||||
<Flexbox align={'center'} gap={4} horizontal>
|
||||
<Logo className={styles.logo} size={36} type={'text'} />
|
||||
<LobeChat className={styles.logo} size={36} type={'text'} />
|
||||
{enableWebrtc && <SyncStatusTag />}
|
||||
</Flexbox>
|
||||
{showCreateSession && (
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
'use client';
|
||||
|
||||
import { ActionIcon, Logo, MobileNavBar } from '@lobehub/ui';
|
||||
import { ActionIcon, MobileNavBar } from '@lobehub/ui';
|
||||
import { LobeChat } from '@lobehub/ui/brand';
|
||||
import { MessageSquarePlus } from 'lucide-react';
|
||||
import { useRouter } from 'next/navigation';
|
||||
import { memo } from 'react';
|
||||
|
|
@ -23,7 +24,7 @@ const Header = memo(() => {
|
|||
left={
|
||||
<Flexbox align={'center'} gap={8} horizontal style={{ marginLeft: 8 }}>
|
||||
<UserAvatar onClick={() => router.push('/me')} size={32} />
|
||||
<Logo type={'text'} />
|
||||
<LobeChat type={'text'} />
|
||||
{enableWebrtc && <SyncStatusInspector placement={'bottom'} />}
|
||||
</Flexbox>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
'use client';
|
||||
|
||||
import { ChatHeader, Logo } from '@lobehub/ui';
|
||||
import { ChatHeader } from '@lobehub/ui';
|
||||
import { LobeChat } from '@lobehub/ui/brand';
|
||||
import { createStyles } from 'antd-style';
|
||||
import { memo } from 'react';
|
||||
|
||||
|
|
@ -18,7 +19,7 @@ const Header = memo(() => {
|
|||
|
||||
return (
|
||||
<ChatHeader
|
||||
left={<Logo className={styles.logo} extra={'Discover'} size={36} type={'text'} />}
|
||||
left={<LobeChat className={styles.logo} extra={'Discover'} size={36} type={'text'} />}
|
||||
right={<ShareAgentButton />}
|
||||
/>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ const Hero = memo(() => {
|
|||
const { theme, styles } = useStyles();
|
||||
return (
|
||||
<Center>
|
||||
<h1 className={styles.title}>Find & Use The Best Agents</h1>
|
||||
<h1 className={styles.title}>Find & Use The Best Assistants</h1>
|
||||
<GridBackground animation className={styles.background} colorFront={theme.colorText} random />
|
||||
</Center>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { GridShowcase, Logo } from '@lobehub/ui';
|
||||
import { GridShowcase } from '@lobehub/ui';
|
||||
import { LobeHub } from '@lobehub/ui/brand';
|
||||
import { PropsWithChildren } from 'react';
|
||||
import { Flexbox } from 'react-layout-kit';
|
||||
|
||||
|
|
@ -17,7 +18,7 @@ const DesktopLayout = ({ children }: PropsWithChildren) => {
|
|||
style={{ overflow: 'hidden', position: 'relative' }}
|
||||
width={'100%'}
|
||||
>
|
||||
<Logo size={36} style={{ alignSelf: 'flex-start' }} type={'text'} />
|
||||
<LobeHub size={36} style={{ alignSelf: 'flex-start' }} type={'text'} />
|
||||
<GridShowcase
|
||||
innerProps={{ gap: 24 }}
|
||||
style={{ maxHeight: 'calc(100% - 104px)', maxWidth: 1024 }}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,17 @@
|
|||
import { SpeedInsights } from '@vercel/speed-insights/next';
|
||||
import { ResolvingViewport } from 'next';
|
||||
import dynamic from 'next/dynamic';
|
||||
import { cookies } from 'next/headers';
|
||||
import { ReactNode } from 'react';
|
||||
import { isRtlLang } from 'rtl-detect';
|
||||
|
||||
import Analytics from '@/components/Analytics';
|
||||
import { DEFAULT_LANG, LOBE_LOCALE_COOKIE } from '@/const/locale';
|
||||
import PWAInstall from '@/features/PWAInstall';
|
||||
import AuthProvider from '@/layout/AuthProvider';
|
||||
import GlobalProvider from '@/layout/GlobalProvider';
|
||||
import { isMobileDevice } from '@/utils/responsive';
|
||||
|
||||
const PWAInstall = dynamic(() => import('@/features/PWAInstall'), { ssr: false });
|
||||
const inVercel = process.env.VERCEL === '1';
|
||||
|
||||
type RootLayoutProps = {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
'use client';
|
||||
|
||||
import { Logo } from '@lobehub/ui';
|
||||
import { LobeHub } from '@lobehub/ui/brand';
|
||||
import { createStyles } from 'antd-style';
|
||||
import Link from 'next/link';
|
||||
import { memo } from 'react';
|
||||
|
|
@ -30,7 +30,7 @@ const BrandWatermark = memo<Omit<FlexboxProps, 'children'>>(({ style, ...rest })
|
|||
>
|
||||
<span>Powered by</span>
|
||||
<Link className={styles.logoLink} href={'https://lobehub.com'} target={'_blank'}>
|
||||
<Logo size={20} type={'text'} />
|
||||
<LobeHub size={20} type={'text'} />
|
||||
</Link>
|
||||
</Flexbox>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { Icon, Logo } from '@lobehub/ui';
|
||||
import { Icon } from '@lobehub/ui';
|
||||
import { LobeChat } from '@lobehub/ui/brand';
|
||||
import { Loader2 } from 'lucide-react';
|
||||
import { memo } from 'react';
|
||||
import { Center, Flexbox } from 'react-layout-kit';
|
||||
|
|
@ -7,7 +8,7 @@ const FullscreenLoading = memo<{ title?: string }>(({ title }) => {
|
|||
return (
|
||||
<Flexbox height={'100%'} style={{ userSelect: 'none' }} width={'100%'}>
|
||||
<Center flex={1} gap={12} width={'100%'}>
|
||||
<Logo extra={'Chat'} size={48} type={'combine'} />
|
||||
<LobeChat size={48} type={'combine'} />
|
||||
<Center gap={16} horizontal>
|
||||
<Icon icon={Loader2} spin />
|
||||
{title}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ export const FeatureFlagsSchema = z.object({
|
|||
export type IFeatureFlags = z.infer<typeof FeatureFlagsSchema>;
|
||||
|
||||
export const DEFAULT_FEATURE_FLAGS: IFeatureFlags = {
|
||||
webrtc_sync: true,
|
||||
webrtc_sync: false,
|
||||
|
||||
language_model_settings: true,
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
export default {
|
||||
about: '关于',
|
||||
advanceSettings: '高级设置',
|
||||
appInitializing: 'LobeChat 启动中,请耐心等待...',
|
||||
appInitializing: '应用启动中,请耐心等待...',
|
||||
autoGenerate: '自动补全',
|
||||
autoGenerateTooltip: '基于提示词自动补全助手描述',
|
||||
autoGenerateTooltipDisabled: '请填写提示词后使用自动补全功能',
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ describe('featureFlagsSelectors', () => {
|
|||
const result = featureFlagsSelectors(store.getState());
|
||||
|
||||
expect(result).toEqual({
|
||||
enableWebrtc: true,
|
||||
enableWebrtc: false,
|
||||
isAgentEditable: false,
|
||||
showCreateSession: true,
|
||||
showDalle: true,
|
||||
|
|
|
|||
Loading…
Reference in a new issue