diff --git a/DigitalHumanWeb/.bunfig.toml b/DigitalHumanWeb/.bunfig.toml
new file mode 100644
index 0000000..d6bb75b
--- /dev/null
+++ b/DigitalHumanWeb/.bunfig.toml
@@ -0,0 +1,3 @@
+[install.lockfile]
+
+save = false
diff --git a/DigitalHumanWeb/.changelogrc.js b/DigitalHumanWeb/.changelogrc.js
new file mode 100644
index 0000000..9a2f5f9
--- /dev/null
+++ b/DigitalHumanWeb/.changelogrc.js
@@ -0,0 +1 @@
+module.exports = require('@lobehub/lint').changelog;
diff --git a/DigitalHumanWeb/.commitlintrc.js b/DigitalHumanWeb/.commitlintrc.js
new file mode 100644
index 0000000..9b8c6ac
--- /dev/null
+++ b/DigitalHumanWeb/.commitlintrc.js
@@ -0,0 +1 @@
+module.exports = require('@lobehub/lint').commitlint;
diff --git a/DigitalHumanWeb/.dockerignore b/DigitalHumanWeb/.dockerignore
new file mode 100644
index 0000000..fc4c2e7
--- /dev/null
+++ b/DigitalHumanWeb/.dockerignore
@@ -0,0 +1,9 @@
+Dockerfile
+.dockerignore
+node_modules
+npm-debug.log
+.next
+.git
+.github
+*.md
+.env.example
diff --git a/DigitalHumanWeb/.editorconfig b/DigitalHumanWeb/.editorconfig
new file mode 100644
index 0000000..7e3649a
--- /dev/null
+++ b/DigitalHumanWeb/.editorconfig
@@ -0,0 +1,16 @@
+# http://editorconfig.org
+root = true
+
+[*]
+indent_style = space
+indent_size = 2
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.md]
+trim_trailing_whitespace = false
+
+[Makefile]
+indent_style = tab
diff --git a/DigitalHumanWeb/.env.example b/DigitalHumanWeb/.env.example
new file mode 100644
index 0000000..cc8b4a5
--- /dev/null
+++ b/DigitalHumanWeb/.env.example
@@ -0,0 +1,195 @@
+# add a access code to lock your lobe-chat application, you can set a long password to avoid leaking. If this value contains a comma, it is a password array.
+# ACCESS_CODE=lobe66
+
+# Specify your API Key selection method, currently supporting `random` and `turn`.
+# API_KEY_SELECT_MODE=random
+
+
+########################################
+######## Model Provider Service ########
+########################################
+
+### OpenAI ###
+
+# you openai api key
+OPENAI_API_KEY=sk-xxxxxxxxx
+
+# use a proxy to connect to the OpenAI API
+# OPENAI_PROXY_URL=https://api.openai.com/v1
+
+# add your custom model name, multi model separate by comma. for example gpt-3.5-1106,gpt-4-1106
+# OPENAI_MODEL_LIST=gpt-3.5-turbo
+
+
+### Azure OpenAI ###
+
+# you can learn azure OpenAI Service on https://learn.microsoft.com/en-us/azure/ai-services/openai/overview
+# use Azure OpenAI Service by uncomment the following line
+
+# The API key you applied for on the Azure OpenAI account page, which can be found in the "Keys and Endpoints" section.
+# AZURE_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+# The endpoint you applied for on the Azure OpenAI account page, which can be found in the "Keys and Endpoints" section.
+# AZURE_ENDPOINT=https://docs-test-001.openai.azure.com
+
+# Azure's API version, follows the YYYY-MM-DD format
+# AZURE_API_VERSION=2024-06-01
+
+
+### Anthropic Service ####
+
+# ANTHROPIC_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+# use a proxy to connect to the Anthropic API
+# ANTHROPIC_PROXY_URL=https://api.anthropic.com
+
+
+### Google AI ####
+
+# GOOGLE_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+
+### AWS Bedrock ###
+
+# AWS_REGION=us-east-1
+# AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxxxxxx
+# AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+
+### Ollama AI ####
+
+# You can use ollama to get and run LLM locally, learn more about it via https://github.com/ollama/ollama
+
+# The local/remote ollama service url
+# OLLAMA_PROXY_URL=http://127.0.0.1:11434
+
+# OLLAMA_MODEL_LIST=your_ollama_model_names
+
+
+### OpenRouter Service ###
+
+# OPENROUTER_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+# OPENROUTER_MODEL_LIST=model1,model2,model3
+
+
+### Mistral AI ###
+
+# MISTRAL_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+### Perplexity Service ###
+
+# PERPLEXITY_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+### Groq Service ####
+
+# GROQ_API_KEY=gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+#### 01.AI Service ####
+
+# ZEROONE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+### TogetherAI Service ###
+
+# TOGETHERAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+### ZhiPu AI ###
+
+# ZHIPU_API_KEY=xxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxx
+
+### Moonshot AI ####
+
+# MOONSHOT_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+### Minimax AI ####
+
+# MINIMAX_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+### DeepSeek AI ####
+
+# DEEPSEEK_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+### Qwen AI ####
+
+# QWEN_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+### SiliconCloud AI ####
+
+# SILICONCLOUD_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+########################################
+############ Market Service ############
+########################################
+
+# The LobeChat agents market index url
+# AGENTS_INDEX_URL=https://chat-agents.lobehub.com
+
+########################################
+############ Plugin Service ############
+########################################
+
+# The LobeChat plugins store index url
+# PLUGINS_INDEX_URL=https://chat-plugins.lobehub.com
+
+# set the plugin settings
+# the format is `plugin-identifier:key1=value1;key2=value2`, multiple settings fields are separated by semicolons `;`, multiple plugin settings are separated by commas `,`.
+# PLUGIN_SETTINGS=search-engine:SERPAPI_API_KEY=xxxxx
+
+
+########################################
+##### 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
+#S3_PUBLIC_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
+
+
+# NextAuth related configurations
+# NEXT_AUTH_SECRET=
+
+# Auth0 configurations
+# AUTH0_CLIENT_ID=
+# AUTH0_CLIENT_SECRET=
+# AUTH0_ISSUER=https://your-domain.auth0.com
+
+########################################
+########## 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=
diff --git a/DigitalHumanWeb/.eslintignore b/DigitalHumanWeb/.eslintignore
new file mode 100644
index 0000000..a0afbcb
--- /dev/null
+++ b/DigitalHumanWeb/.eslintignore
@@ -0,0 +1,31 @@
+# Eslintignore for LobeHub
+################################################################
+
+# dependencies
+node_modules
+
+# ci
+coverage
+.coverage
+
+# test
+jest*
+*.test.ts
+*.test.tsx
+
+# umi
+.umi
+.umi-production
+.umi-test
+.dumi/tmp*
+!.dumirc.ts
+
+# production
+dist
+es
+lib
+logs
+
+# misc
+# add other ignore file below
+.next
\ No newline at end of file
diff --git a/DigitalHumanWeb/.eslintrc.js b/DigitalHumanWeb/.eslintrc.js
new file mode 100644
index 0000000..827b016
--- /dev/null
+++ b/DigitalHumanWeb/.eslintrc.js
@@ -0,0 +1,37 @@
+const config = require('@lobehub/lint').eslint;
+
+config.extends.push('plugin:@next/next/recommended');
+
+config.rules['unicorn/no-negated-condition'] = 0;
+config.rules['unicorn/prefer-type-error'] = 0;
+config.rules['unicorn/prefer-logical-operator-over-ternary'] = 0;
+config.rules['unicorn/no-null'] = 0;
+config.rules['unicorn/no-typeof-undefined'] = 0;
+config.rules['unicorn/explicit-length-check'] = 0;
+config.rules['unicorn/prefer-code-point'] = 0;
+config.rules['no-extra-boolean-cast'] = 0;
+config.rules['unicorn/no-useless-undefined'] = 0;
+config.rules['react/no-unknown-property'] = 0;
+config.rules['unicorn/prefer-ternary'] = 0;
+config.rules['unicorn/prefer-spread'] = 0;
+config.rules['unicorn/catch-error-name'] = 0;
+config.rules['unicorn/no-array-for-each'] = 0;
+config.rules['unicorn/prefer-number-properties'] = 0;
+
+config.overrides = [
+ {
+ extends: ['plugin:mdx/recommended'],
+ files: ['*.mdx'],
+ rules: {
+ '@typescript-eslint/no-unused-vars': 1,
+ 'no-undef': 0,
+ 'react/jsx-no-undef': 0,
+ 'react/no-unescaped-entities': 0,
+ },
+ settings: {
+ 'mdx/code-blocks': false,
+ },
+ },
+];
+
+module.exports = config;
diff --git a/DigitalHumanWeb/.gitignore b/DigitalHumanWeb/.gitignore
new file mode 100644
index 0000000..9893f27
--- /dev/null
+++ b/DigitalHumanWeb/.gitignore
@@ -0,0 +1,69 @@
+# Gitignore for LobeHub
+################################################################
+
+# general
+.DS_Store
+.idea
+.vscode
+.history
+.temp
+.env.local
+venv
+temp
+tmp
+
+# dependencies
+node_modules
+*.log
+*.lock
+package-lock.json
+
+# ci
+coverage
+.coverage
+.eslintcache
+.stylelintcache
+
+# production
+dist
+es
+lib
+logs
+test-output
+
+# umi
+.umi
+.umi-production
+.umi-test
+.dumi/tmp*
+
+# husky
+.husky/prepare-commit-msg
+
+# misc
+# add other ignore file below
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
+.next
+.env
+public/*.js
+public/sitemap.xml
+public/sitemap-index.xml
+bun.lockb
+sitemap*.xml
+robots.txt
+
+# Serwist
+public/sw*
+public/swe-worker*
+
+*.patch
+*.pdf
diff --git a/DigitalHumanWeb/.husky/pre-commit b/DigitalHumanWeb/.husky/pre-commit
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/DigitalHumanWeb/.husky/pre-commit
@@ -0,0 +1 @@
+
diff --git a/DigitalHumanWeb/.i18nrc.js b/DigitalHumanWeb/.i18nrc.js
new file mode 100644
index 0000000..767573e
--- /dev/null
+++ b/DigitalHumanWeb/.i18nrc.js
@@ -0,0 +1,46 @@
+const { defineConfig } = require('@lobehub/i18n-cli');
+
+module.exports = defineConfig({
+ entry: 'locales/zh-CN',
+ entryLocale: 'zh-CN',
+ output: 'locales',
+ outputLocales: [
+ 'ar',
+ 'bg-BG',
+ 'zh-TW',
+ 'en-US',
+ 'ru-RU',
+ 'ja-JP',
+ 'ko-KR',
+ 'fr-FR',
+ 'tr-TR',
+ 'es-ES',
+ 'pt-BR',
+ 'de-DE',
+ 'it-IT',
+ 'nl-NL',
+ 'pl-PL',
+ 'vi-VN',
+ ],
+ temperature: 0,
+ modelName: 'gpt-4o-mini',
+ experimental: {
+ jsonMode: true,
+ },
+ markdown: {
+ // reference: '你需要保持 mdx 的组件格式,输出文本不需要在最外层包裹任何代码块语法',
+ entry: ['./README.zh-CN.md', './contributing/**/*.zh-CN.md', './docs/**/*.zh-CN.mdx'],
+ entryLocale: 'zh-CN',
+ outputLocales: ['en-US'],
+ exclude: ['./contributing/_Sidebar.md', './contributing/_Footer.md', './contributing/Home.md'],
+ outputExtensions: (locale, { filePath }) => {
+ if (filePath.includes('.mdx')) {
+ if (locale === 'en-US') return '.mdx';
+ return `.${locale}.mdx`;
+ } else {
+ if (locale === 'en-US') return '.md';
+ return `.${locale}.md`;
+ }
+ },
+ },
+});
diff --git a/DigitalHumanWeb/.npmrc b/DigitalHumanWeb/.npmrc
new file mode 100644
index 0000000..5d733a8
--- /dev/null
+++ b/DigitalHumanWeb/.npmrc
@@ -0,0 +1,19 @@
+lockfile=false
+resolution-mode=highest
+
+enable-pre-post-scripts=true
+
+public-hoist-pattern[]=*@umijs/lint*
+public-hoist-pattern[]=*changelog*
+public-hoist-pattern[]=*commitlint*
+public-hoist-pattern[]=*eslint*
+public-hoist-pattern[]=*postcss*
+public-hoist-pattern[]=*prettier*
+public-hoist-pattern[]=*remark*
+public-hoist-pattern[]=*semantic-release*
+public-hoist-pattern[]=*stylelint*
+
+public-hoist-pattern[]=@auth/core
+public-hoist-pattern[]=@clerk/backend
+public-hoist-pattern[]=@clerk/types
+public-hoist-pattern[]=pdfjs-dist
diff --git a/DigitalHumanWeb/.nvmrc b/DigitalHumanWeb/.nvmrc
new file mode 100644
index 0000000..9de2256
--- /dev/null
+++ b/DigitalHumanWeb/.nvmrc
@@ -0,0 +1 @@
+lts/iron
diff --git a/DigitalHumanWeb/.prettierignore b/DigitalHumanWeb/.prettierignore
new file mode 100644
index 0000000..3e459cb
--- /dev/null
+++ b/DigitalHumanWeb/.prettierignore
@@ -0,0 +1,63 @@
+# Prettierignore for LobeHub
+################################################################
+
+# general
+.DS_Store
+.editorconfig
+.idea
+.vscode
+.history
+.temp
+.env.local
+.husky
+.npmrc
+.gitkeep
+venv
+temp
+tmp
+LICENSE
+
+# dependencies
+node_modules
+*.log
+*.lock
+package-lock.json
+
+# ci
+coverage
+.coverage
+.eslintcache
+.stylelintcache
+test-output
+__snapshots__
+*.snap
+
+# production
+dist
+es
+lib
+logs
+
+# umi
+.umi
+.umi-production
+.umi-test
+.dumi/tmp*
+
+# ignore files
+.*ignore
+
+# docker
+docker
+Dockerfile*
+
+# image
+*.webp
+*.gif
+*.png
+*.jpg
+*.svg
+
+# misc
+# add other ignore file below
+.next
\ No newline at end of file
diff --git a/DigitalHumanWeb/.prettierrc.js b/DigitalHumanWeb/.prettierrc.js
new file mode 100644
index 0000000..f0355a9
--- /dev/null
+++ b/DigitalHumanWeb/.prettierrc.js
@@ -0,0 +1 @@
+module.exports = require('@lobehub/lint').prettier;
diff --git a/DigitalHumanWeb/.releaserc.js b/DigitalHumanWeb/.releaserc.js
new file mode 100644
index 0000000..3793001
--- /dev/null
+++ b/DigitalHumanWeb/.releaserc.js
@@ -0,0 +1 @@
+module.exports = require('@lobehub/lint').semanticRelease;
diff --git a/DigitalHumanWeb/.remarkrc.js b/DigitalHumanWeb/.remarkrc.js
new file mode 100644
index 0000000..b673c10
--- /dev/null
+++ b/DigitalHumanWeb/.remarkrc.js
@@ -0,0 +1 @@
+module.exports = require('@lobehub/lint').remarklint;
diff --git a/DigitalHumanWeb/.seorc.cjs b/DigitalHumanWeb/.seorc.cjs
new file mode 100644
index 0000000..5626a1a
--- /dev/null
+++ b/DigitalHumanWeb/.seorc.cjs
@@ -0,0 +1,9 @@
+const { defineConfig } = require('@lobehub/seo-cli');
+
+module.exports = defineConfig({
+ entry: ['./docs/**/*.mdx'],
+ modelName: 'gpt-4o-mini',
+ experimental: {
+ jsonMode: true,
+ },
+});
diff --git a/DigitalHumanWeb/.stylelintrc.js b/DigitalHumanWeb/.stylelintrc.js
new file mode 100644
index 0000000..d1ac674
--- /dev/null
+++ b/DigitalHumanWeb/.stylelintrc.js
@@ -0,0 +1,9 @@
+const config = require('@lobehub/lint').stylelint;
+
+module.exports = {
+ ...config,
+ rules: {
+ 'selector-id-pattern': null,
+ ...config.rules,
+ },
+};
diff --git a/DigitalHumanWeb/CHANGELOG.md b/DigitalHumanWeb/CHANGELOG.md
new file mode 100644
index 0000000..9412782
--- /dev/null
+++ b/DigitalHumanWeb/CHANGELOG.md
@@ -0,0 +1,22838 @@
+
+
+# Changelog
+
+### [Version 1.19.33](https://github.com/lobehub/lobe-chat/compare/v1.19.32...v1.19.33)
+
+Released on **2024-09-25**
+
+#### 🐛 Bug Fixes
+
+- **misc**: MiniMax output long content interrupted by non-existent error.
+
+#### 💄 Styles
+
+- **misc**: Update google provider model info.
+
+
+
+Improvements and Fixes
+
+#### What's fixed
+
+- **misc**: MiniMax output long content interrupted by non-existent error, closes [#4088](https://github.com/lobehub/lobe-chat/issues/4088) ([4f6e20d](https://github.com/lobehub/lobe-chat/commit/4f6e20d))
+
+#### Styles
+
+- **misc**: Update google provider model info, closes [#4129](https://github.com/lobehub/lobe-chat/issues/4129) ([b1442b9](https://github.com/lobehub/lobe-chat/commit/b1442b9))
+
+
+ + |
+ |
---|---|
+ ![]() |
+
+ ![]() |
+
+ ![]() |
+
+ + |
+ |
---|---|
+ ![]() |
+
+ ![]() |
+
+ ![]() |
+
+ + |
+ |
---|---|
+ ![]() |
+
+ ![]() |
+
+ ![]() |
+
{item.title}
+{item.desc}
++ {desc}{' '} + + {t('models.parameterList.docs')} + +
+