💄 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:
Arvin Xu 2024-06-18 21:00:17 +08:00 committed by GitHub
parent cd9a143b3d
commit 2b54caeda1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
46 changed files with 182 additions and 130 deletions

View file

@ -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=

View file

@ -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.

View file

@ -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。 | 开启 |

View file

@ -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
```

View file

@ -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
```

View file

@ -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>

View file

@ -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>

View file

@ -48,7 +48,6 @@ LobeChat 集成了 `next-auth`,一个灵活且强大的身份验证库,支
- **登录活动监控**:实时监控用户登录活动,确保账户安全。
- **扩展性**:支持复杂的用户管理需求。
<Callout type={'info'}>
关于 Clerk 的使用,可以查阅 [身份验证服务 - Clerk](/zh/docs/self-hosting/advanced/authentication#clerk)。
</Callout>

View file

@ -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.

View file

@ -1,7 +1,7 @@
{
"about": "حول",
"advanceSettings": "إعدادات متقدمة",
"appInitializing": "جاري تهيئة LobeChat، يرجى الانتظار ...",
"appInitializing": "جاري تشغيل التطبيق، يرجى الانتظار...",
"autoGenerate": "توليد تلقائي",
"autoGenerateTooltip": "إكمال تلقائي بناءً على الكلمات المقترحة لوصف المساعد",
"autoGenerateTooltipDisabled": "الرجاء إدخال كلمة تلميح قبل تفعيل وظيفة الإكمال التلقائي",

View file

@ -1,7 +1,7 @@
{
"about": "Относно",
"advanceSettings": "Разширени настройки",
"appInitializing": "LobeChat се инициализира, моля изчакайте...",
"appInitializing": "Приложението се стартира, моля, бъдете търпеливи...",
"autoGenerate": "Автоматично генериране",
"autoGenerateTooltip": "Автоматично генериране на описание на агент въз основа на подкани",
"autoGenerateTooltipDisabled": "Моля, попълнете подсказката, за да използвате функцията за автоматично допълване",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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"
}
}

View file

@ -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",

View file

@ -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": {

View file

@ -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"
}
}

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -1,7 +1,7 @@
{
"about": "概要",
"advanceSettings": "高度な設定",
"appInitializing": "LobeChatを初期化中です。しばらくお待ちください...",
"appInitializing": "アプリケーションを初期化しています。しばらくお待ちください...",
"autoGenerate": "自動生成",
"autoGenerateTooltip": "ヒントに基づいてエージェントの説明を自動生成します",
"autoGenerateTooltipDisabled": "ツールチップを入力してから自動生成機能を使用してください",

View file

@ -1,7 +1,7 @@
{
"about": "소개",
"advanceSettings": "고급 설정",
"appInitializing": "LobeChat이 초기화 중입니다. 잠시 기다려주세요...",
"appInitializing": "앱을 시작하는 중입니다. 잠시 기다려주세요...",
"autoGenerate": "자동 생성",
"autoGenerateTooltip": "힌트 단어를 기반으로 에이전트 설명을 자동으로 완성합니다",
"autoGenerateTooltipDisabled": "자동 완성 기능을 사용하려면 툴팁을 입력하십시오",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -1,7 +1,7 @@
{
"about": "О нас",
"advanceSettings": "Расширенные настройки",
"appInitializing": "LobeChat запускается, пожалуйста, подождите…",
"appInitializing": "Приложение запускается, пожалуйста, подождите...",
"autoGenerate": "Автозаполнение",
"autoGenerateTooltip": "Автоматическое дополнение описания агента на основе подсказок",
"autoGenerateTooltipDisabled": "Пожалуйста, введите подсказку перед использованием функции автозаполнения",

View file

@ -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",

View file

@ -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",

View file

@ -1,7 +1,7 @@
{
"about": "关于",
"advanceSettings": "高级设置",
"appInitializing": "LobeChat 启动中,请耐心等待...",
"appInitializing": "应用启动中,请耐心等待...",
"autoGenerate": "自动补全",
"autoGenerateTooltip": "基于提示词自动补全助手描述",
"autoGenerateTooltipDisabled": "请填写提示词后使用自动补全功能",

View file

@ -1,7 +1,7 @@
{
"about": "關於",
"advanceSettings": "進階設定",
"appInitializing": "LobeChat 初始化中,請耐心等候...",
"appInitializing": "應用程式初始化中,請耐心等候...",
"autoGenerate": "自動生成",
"autoGenerateTooltip": "基於提示詞自動生成助手描述",
"autoGenerateTooltipDisabled": "請填寫提示詞後使用自動補全功能",

View file

@ -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",

View file

@ -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[]) => {

View file

@ -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');
}

View file

@ -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>
) : (

View file

@ -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 && (

View file

@ -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>
}

View file

@ -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 />}
/>
);

View file

@ -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>
);

View file

@ -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 }}

View file

@ -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 = {

View file

@ -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>
);

View file

@ -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}

View file

@ -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,

View file

@ -1,7 +1,7 @@
export default {
about: '关于',
advanceSettings: '高级设置',
appInitializing: 'LobeChat 启动中,请耐心等待...',
appInitializing: '应用启动中,请耐心等待...',
autoGenerate: '自动补全',
autoGenerateTooltip: '基于提示词自动补全助手描述',
autoGenerateTooltipDisabled: '请填写提示词后使用自动补全功能',

View file

@ -17,7 +17,7 @@ describe('featureFlagsSelectors', () => {
const result = featureFlagsSelectors(store.getState());
expect(result).toEqual({
enableWebrtc: true,
enableWebrtc: false,
isAgentEditable: false,
showCreateSession: true,
showDalle: true,