diff --git a/DigitalHumanWeb/docker-compose/local/docker-compose.yml b/DigitalHumanWeb/docker-compose/local/docker-compose.yml index 1111a47..44e3172 100644 --- a/DigitalHumanWeb/docker-compose/local/docker-compose.yml +++ b/DigitalHumanWeb/docker-compose/local/docker-compose.yml @@ -8,7 +8,7 @@ services: - '${MINIO_PORT}:${MINIO_PORT}' # MinIO API - '9001:9001' # MinIO Console - '${CASDOOR_PORT}:${CASDOOR_PORT}' # Casdoor - # - '${LOBE_PORT}:3210' # LobeChat + - '${LOBE_PORT}:3210' # LobeChat command: tail -f /dev/null networks: - lobe-network @@ -90,76 +90,76 @@ services: env_file: - .env - # lobe: - # image: lobehub/lobe-chat-database - # container_name: lobe-chat - # network_mode: 'service:network-service' - # depends_on: - # postgresql: - # condition: service_healthy - # network-service: - # condition: service_started - # minio: - # condition: service_started - # casdoor: - # condition: service_started + lobe: + image: lobehub/lobe-chat-database + container_name: lobe-chat + network_mode: 'service:network-service' + depends_on: + postgresql: + condition: service_healthy + network-service: + condition: service_started + minio: + condition: service_started + casdoor: + condition: service_started - # environment: - # - 'NEXT_AUTH_SSO_PROVIDERS=casdoor' - # - 'KEY_VAULTS_SECRET=Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ=' - # - 'NEXT_AUTH_SECRET=NX2kaPE923dt6BL2U8e9oSre5RfoT7hg' - # - 'DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgresql:5432/${LOBE_DB_NAME}' - # - 'S3_BUCKET=${MINIO_LOBE_BUCKET}' - # - 'S3_ENABLE_PATH_STYLE=1' - # - 'S3_ACCESS_KEY=${MINIO_ROOT_USER}' - # - 'S3_ACCESS_KEY_ID=${MINIO_ROOT_USER}' - # - 'S3_SECRET_ACCESS_KEY=${MINIO_ROOT_PASSWORD}' - # - 'LLM_VISION_IMAGE_USE_BASE64=1' - # - 'S3_SET_ACL=0' - # - 'SEARXNG_URL=http://searxng:8080' - # env_file: - # - .env - # restart: always - # entrypoint: > - # /bin/sh -c " - # /bin/node /app/startServer.js & - # LOBE_PID=\$! - # sleep 3 - # if [ $(wget --timeout=5 --spider --server-response ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2>&1 | grep -c 'HTTP/1.1 200 OK') -eq 0 ]; then - # echo '⚠️Warining: Unable to fetch OIDC configuration from Casdoor' - # echo 'Request URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration' - # echo 'Read more at: https://lobehub.com/docs/self-hosting/server-database/docker-compose#necessary-configuration' - # echo '' - # echo '⚠️注意:无法从 Casdoor 获取 OIDC 配置' - # echo '请求 URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration' - # echo '了解更多:https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose#necessary-configuration' - # echo '' - # else - # if ! wget -O - --timeout=5 ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2>&1 | grep 'issuer' | grep ${AUTH_CASDOOR_ISSUER}; then - # printf '❌Error: The Auth issuer is conflict, Issuer in OIDC configuration is: %s' \$(wget -O - --timeout=5 ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2>&1 | grep -E 'issuer.*' | awk -F '\"' '{print \$4}') - # echo ' , but the issuer in .env file is: ${AUTH_CASDOOR_ISSUER} ' - # echo 'Request URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration' - # echo 'Read more at: https://lobehub.com/docs/self-hosting/server-database/docker-compose#necessary-configuration' - # echo '' - # printf '❌错误:Auth 的 issuer 冲突,OIDC 配置中的 issuer 是:%s' \$(wget -O - --timeout=5 ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2>&1 | grep -E 'issuer.*' | awk -F '\"' '{print \$4}') - # echo ' , 但 .env 文件中的 issuer 是:${AUTH_CASDOOR_ISSUER} ' - # echo '请求 URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration' - # echo '了解更多:https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose#necessary-configuration' - # echo '' - # fi - # fi - # if [ $(wget --timeout=5 --spider --server-response ${S3_ENDPOINT}/minio/health/live 2>&1 | grep -c 'HTTP/1.1 200 OK') -eq 0 ]; then - # echo '⚠️Warining: Unable to fetch MinIO health status' - # echo 'Request URL: ${S3_ENDPOINT}/minio/health/live' - # echo 'Read more at: https://lobehub.com/docs/self-hosting/server-database/docker-compose#necessary-configuration' - # echo '' - # echo '⚠️注意:无法获取 MinIO 健康状态' - # echo '请求 URL: ${S3_ENDPOINT}/minio/health/live' - # echo '了解更多:https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose#necessary-configuration' - # echo '' - # fi - # wait \$LOBE_PID - # " + environment: + - 'NEXT_AUTH_SSO_PROVIDERS=casdoor' + - 'KEY_VAULTS_SECRET=Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ=' + - 'NEXT_AUTH_SECRET=NX2kaPE923dt6BL2U8e9oSre5RfoT7hg' + - 'DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgresql:5432/${LOBE_DB_NAME}' + - 'S3_BUCKET=${MINIO_LOBE_BUCKET}' + - 'S3_ENABLE_PATH_STYLE=1' + - 'S3_ACCESS_KEY=${MINIO_ROOT_USER}' + - 'S3_ACCESS_KEY_ID=${MINIO_ROOT_USER}' + - 'S3_SECRET_ACCESS_KEY=${MINIO_ROOT_PASSWORD}' + - 'LLM_VISION_IMAGE_USE_BASE64=1' + - 'S3_SET_ACL=0' + - 'SEARXNG_URL=http://searxng:8080' + env_file: + - .env + restart: always + entrypoint: > + /bin/sh -c " + /bin/node /app/startServer.js & + LOBE_PID=\$! + sleep 3 + if [ $(wget --timeout=5 --spider --server-response ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2>&1 | grep -c 'HTTP/1.1 200 OK') -eq 0 ]; then + echo '⚠️Warining: Unable to fetch OIDC configuration from Casdoor' + echo 'Request URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration' + echo 'Read more at: https://lobehub.com/docs/self-hosting/server-database/docker-compose#necessary-configuration' + echo '' + echo '⚠️注意:无法从 Casdoor 获取 OIDC 配置' + echo '请求 URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration' + echo '了解更多:https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose#necessary-configuration' + echo '' + else + if ! wget -O - --timeout=5 ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2>&1 | grep 'issuer' | grep ${AUTH_CASDOOR_ISSUER}; then + printf '❌Error: The Auth issuer is conflict, Issuer in OIDC configuration is: %s' \$(wget -O - --timeout=5 ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2>&1 | grep -E 'issuer.*' | awk -F '\"' '{print \$4}') + echo ' , but the issuer in .env file is: ${AUTH_CASDOOR_ISSUER} ' + echo 'Request URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration' + echo 'Read more at: https://lobehub.com/docs/self-hosting/server-database/docker-compose#necessary-configuration' + echo '' + printf '❌错误:Auth 的 issuer 冲突,OIDC 配置中的 issuer 是:%s' \$(wget -O - --timeout=5 ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2>&1 | grep -E 'issuer.*' | awk -F '\"' '{print \$4}') + echo ' , 但 .env 文件中的 issuer 是:${AUTH_CASDOOR_ISSUER} ' + echo '请求 URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration' + echo '了解更多:https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose#necessary-configuration' + echo '' + fi + fi + if [ $(wget --timeout=5 --spider --server-response ${S3_ENDPOINT}/minio/health/live 2>&1 | grep -c 'HTTP/1.1 200 OK') -eq 0 ]; then + echo '⚠️Warining: Unable to fetch MinIO health status' + echo 'Request URL: ${S3_ENDPOINT}/minio/health/live' + echo 'Read more at: https://lobehub.com/docs/self-hosting/server-database/docker-compose#necessary-configuration' + echo '' + echo '⚠️注意:无法获取 MinIO 健康状态' + echo '请求 URL: ${S3_ENDPOINT}/minio/health/live' + echo '了解更多:https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose#necessary-configuration' + echo '' + fi + wait \$LOBE_PID + " volumes: data: diff --git a/DigitalHumanWeb/package.json b/DigitalHumanWeb/package.json index 594912c..b205417 100644 --- a/DigitalHumanWeb/package.json +++ b/DigitalHumanWeb/package.json @@ -42,7 +42,7 @@ "db:push-test": "NODE_ENV=test drizzle-kit push", "db:studio": "drizzle-kit studio", "db:z-pull": "drizzle-kit introspect", - "dev": "next dev --turbopack -p 3210", + "dev": "next dev -p 3212", "docs:i18n": "lobe-i18n md && npm run lint:md && npm run lint:mdx", "docs:seo": "lobe-seo && npm run lint:mdx", "i18n": "npm run workflow:i18n && lobe-i18n", @@ -59,7 +59,7 @@ "self-hosting:docker": "docker build -t lobe-chat:local .", "self-hosting:docker-cn": "docker build -t lobe-chat-local --build-arg USE_CN_MIRROR=true .", "self-hosting:docker-cn@database": "docker build -t lobe-chat-database-local -f Dockerfile.database --build-arg USE_CN_MIRROR=true .", - "start": "next start -p 3210", + "start": "next start -p 3212", "stylelint": "stylelint \"src/**/*.{js,jsx,ts,tsx}\" --fix", "test": "npm run test-app && npm run test-server", "test-app": "vitest run --config vitest.config.ts", @@ -153,9 +153,12 @@ "ai": "^3.4.33", "antd": "^5.23.0", "antd-style": "^3.7.1", + "axios": "^1.8.3", "brotli-wasm": "^3.0.1", "chroma-js": "^3.1.2", "countries-and-timezones": "^3.7.2", + "csv-string": "^4.1.1", + "csv-stringify": "^6.5.2", "dayjs": "^1.11.13", "debug": "^4.4.0", "dexie": "^3.2.7", @@ -185,7 +188,7 @@ "mdast-util-to-markdown": "^2.1.2", "modern-screenshot": "^4.5.5", "nanoid": "^5.0.9", - "next": "^15.2.0", + "next": "latest", "next-auth": "beta", "next-mdx-remote": "^5.0.0", "nextjs-toploader": "^3.7.15", diff --git a/DigitalHumanWeb/public/images/answer.png b/DigitalHumanWeb/public/images/answer.png new file mode 100644 index 0000000..654f334 Binary files /dev/null and b/DigitalHumanWeb/public/images/answer.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/360zn.png b/DigitalHumanWeb/public/images/applicationSets/360zn.png new file mode 100644 index 0000000..9ebc2d0 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/360zn.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/CodeArtsSnap.png b/DigitalHumanWeb/public/images/applicationSets/CodeArtsSnap.png new file mode 100644 index 0000000..d63c9c1 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/CodeArtsSnap.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/FeelRead.png b/DigitalHumanWeb/public/images/applicationSets/FeelRead.png new file mode 100644 index 0000000..1daf0f7 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/FeelRead.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/FittenCode.png b/DigitalHumanWeb/public/images/applicationSets/FittenCode.png new file mode 100644 index 0000000..8e4231e Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/FittenCode.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/LiblibAI.png b/DigitalHumanWeb/public/images/applicationSets/LiblibAI.png new file mode 100644 index 0000000..290bcb1 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/LiblibAI.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/MasterlyAI.png b/DigitalHumanWeb/public/images/applicationSets/MasterlyAI.png new file mode 100644 index 0000000..f7949e0 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/MasterlyAI.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/NovaMSS.png b/DigitalHumanWeb/public/images/applicationSets/NovaMSS.png new file mode 100644 index 0000000..79691db Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/NovaMSS.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/REECHO.png b/DigitalHumanWeb/public/images/applicationSets/REECHO.png new file mode 100644 index 0000000..546e1b1 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/REECHO.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/SkyCode.png b/DigitalHumanWeb/public/images/applicationSets/SkyCode.png new file mode 100644 index 0000000..f9df158 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/SkyCode.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/SkyMusic.png b/DigitalHumanWeb/public/images/applicationSets/SkyMusic.png new file mode 100644 index 0000000..87ab877 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/SkyMusic.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/TalkAI.png b/DigitalHumanWeb/public/images/applicationSets/TalkAI.png new file mode 100644 index 0000000..7baf4a5 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/TalkAI.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/WPS.png b/DigitalHumanWeb/public/images/applicationSets/WPS.png new file mode 100644 index 0000000..8c23385 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/WPS.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/YOO.png b/DigitalHumanWeb/public/images/applicationSets/YOO.png new file mode 100644 index 0000000..0086860 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/YOO.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/chatBox.png b/DigitalHumanWeb/public/images/applicationSets/chatBox.png new file mode 100644 index 0000000..fac8a16 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/chatBox.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/codeFuse.png b/DigitalHumanWeb/public/images/applicationSets/codeFuse.png new file mode 100644 index 0000000..9e0c128 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/codeFuse.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/csAI.png b/DigitalHumanWeb/public/images/applicationSets/csAI.png new file mode 100644 index 0000000..b8fe4c6 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/csAI.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/db.png b/DigitalHumanWeb/public/images/applicationSets/db.png new file mode 100644 index 0000000..de92d1f Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/db.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/fsznhb.png b/DigitalHumanWeb/public/images/applicationSets/fsznhb.png new file mode 100644 index 0000000..783aba5 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/fsznhb.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/gjzn.png b/DigitalHumanWeb/public/images/applicationSets/gjzn.png new file mode 100644 index 0000000..d6551bd Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/gjzn.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/gzszr.png b/DigitalHumanWeb/public/images/applicationSets/gzszr.png new file mode 100644 index 0000000..043f686 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/gzszr.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/hst.png b/DigitalHumanWeb/public/images/applicationSets/hst.png new file mode 100644 index 0000000..01c0d7a Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/hst.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/iFlyCode.png b/DigitalHumanWeb/public/images/applicationSets/iFlyCode.png new file mode 100644 index 0000000..7ebb041 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/iFlyCode.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/jm.png b/DigitalHumanWeb/public/images/applicationSets/jm.png new file mode 100644 index 0000000..6e01d2a Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/jm.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/kimi.png b/DigitalHumanWeb/public/images/applicationSets/kimi.png new file mode 100644 index 0000000..eaa922b Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/kimi.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/kldmx.png b/DigitalHumanWeb/public/images/applicationSets/kldmx.png new file mode 100644 index 0000000..fbf3504 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/kldmx.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/ksAIszr.png b/DigitalHumanWeb/public/images/applicationSets/ksAIszr.png new file mode 100644 index 0000000..631924e Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/ksAIszr.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/moki.png b/DigitalHumanWeb/public/images/applicationSets/moki.png new file mode 100644 index 0000000..ea05a98 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/moki.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/mtxzm.png b/DigitalHumanWeb/public/images/applicationSets/mtxzm.png new file mode 100644 index 0000000..5528323 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/mtxzm.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/mygf.png b/DigitalHumanWeb/public/images/applicationSets/mygf.png new file mode 100644 index 0000000..958145b Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/mygf.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/qmw.png b/DigitalHumanWeb/public/images/applicationSets/qmw.png new file mode 100644 index 0000000..4367cf1 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/qmw.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/senseChat.png b/DigitalHumanWeb/public/images/applicationSets/senseChat.png new file mode 100644 index 0000000..8234ad1 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/senseChat.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/sjzn.png b/DigitalHumanWeb/public/images/applicationSets/sjzn.png new file mode 100644 index 0000000..868b237 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/sjzn.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/treeMind.png b/DigitalHumanWeb/public/images/applicationSets/treeMind.png new file mode 100644 index 0000000..f4313cc Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/treeMind.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/tylm.png b/DigitalHumanWeb/public/images/applicationSets/tylm.png new file mode 100644 index 0000000..18b2ba2 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/tylm.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/tyqw.png b/DigitalHumanWeb/public/images/applicationSets/tyqw.png new file mode 100644 index 0000000..632d36c Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/tyqw.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/tytw.png b/DigitalHumanWeb/public/images/applicationSets/tytw.png new file mode 100644 index 0000000..3558715 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/tytw.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/wcAI.png b/DigitalHumanWeb/public/images/applicationSets/wcAI.png new file mode 100644 index 0000000..5ec063f Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/wcAI.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/wjAI.png b/DigitalHumanWeb/public/images/applicationSets/wjAI.png new file mode 100644 index 0000000..37d1df1 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/wjAI.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/wxkm.png b/DigitalHumanWeb/public/images/applicationSets/wxkm.png new file mode 100644 index 0000000..3305395 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/wxkm.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/wxyy.png b/DigitalHumanWeb/public/images/applicationSets/wxyy.png new file mode 100644 index 0000000..7153a63 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/wxyy.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/xfkfpt.png b/DigitalHumanWeb/public/images/applicationSets/xfkfpt.png new file mode 100644 index 0000000..09389e9 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/xfkfpt.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/xfxhrz.png b/DigitalHumanWeb/public/images/applicationSets/xfxhrz.png new file mode 100644 index 0000000..e021e8a Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/xfxhrz.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/xfxz.png b/DigitalHumanWeb/public/images/applicationSets/xfxz.png new file mode 100644 index 0000000..b90e6af Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/xfxz.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/xhwdwd.png b/DigitalHumanWeb/public/images/applicationSets/xhwdwd.png new file mode 100644 index 0000000..af538eb Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/xhwdwd.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/xhyb.png b/DigitalHumanWeb/public/images/applicationSets/xhyb.png new file mode 100644 index 0000000..04dbcb4 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/xhyb.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/xyt.png b/DigitalHumanWeb/public/images/applicationSets/xyt.png new file mode 100644 index 0000000..cc8a352 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/xyt.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/xzAI.png b/DigitalHumanWeb/public/images/applicationSets/xzAI.png new file mode 100644 index 0000000..f42e4f6 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/xzAI.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/ytnt.png b/DigitalHumanWeb/public/images/applicationSets/ytnt.png new file mode 100644 index 0000000..eb53996 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/ytnt.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/ytyykfpt.png b/DigitalHumanWeb/public/images/applicationSets/ytyykfpt.png new file mode 100644 index 0000000..5954c76 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/ytyykfpt.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/yzmc.png b/DigitalHumanWeb/public/images/applicationSets/yzmc.png new file mode 100644 index 0000000..ffd9615 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/yzmc.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/zpqy.png b/DigitalHumanWeb/public/images/applicationSets/zpqy.png new file mode 100644 index 0000000..fe28f23 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/zpqy.png differ diff --git a/DigitalHumanWeb/public/images/applicationSets/zxAIxz.png b/DigitalHumanWeb/public/images/applicationSets/zxAIxz.png new file mode 100644 index 0000000..6379ac7 Binary files /dev/null and b/DigitalHumanWeb/public/images/applicationSets/zxAIxz.png differ diff --git a/DigitalHumanWeb/public/images/cj.png b/DigitalHumanWeb/public/images/cj.png new file mode 100644 index 0000000..80049f5 Binary files /dev/null and b/DigitalHumanWeb/public/images/cj.png differ diff --git a/DigitalHumanWeb/public/images/collect.png b/DigitalHumanWeb/public/images/collect.png new file mode 100644 index 0000000..c85996e Binary files /dev/null and b/DigitalHumanWeb/public/images/collect.png differ diff --git a/DigitalHumanWeb/public/images/delete.png b/DigitalHumanWeb/public/images/delete.png new file mode 100644 index 0000000..d27612e Binary files /dev/null and b/DigitalHumanWeb/public/images/delete.png differ diff --git a/DigitalHumanWeb/public/images/detaicon.png b/DigitalHumanWeb/public/images/detaicon.png new file mode 100644 index 0000000..92cef90 Binary files /dev/null and b/DigitalHumanWeb/public/images/detaicon.png differ diff --git a/DigitalHumanWeb/public/images/edit.png b/DigitalHumanWeb/public/images/edit.png new file mode 100644 index 0000000..0a3945a Binary files /dev/null and b/DigitalHumanWeb/public/images/edit.png differ diff --git a/DigitalHumanWeb/public/images/empty.png b/DigitalHumanWeb/public/images/empty.png new file mode 100644 index 0000000..640eb76 Binary files /dev/null and b/DigitalHumanWeb/public/images/empty.png differ diff --git a/DigitalHumanWeb/public/images/gj.png b/DigitalHumanWeb/public/images/gj.png new file mode 100644 index 0000000..367b966 Binary files /dev/null and b/DigitalHumanWeb/public/images/gj.png differ diff --git a/DigitalHumanWeb/public/images/gjImg.png b/DigitalHumanWeb/public/images/gjImg.png new file mode 100644 index 0000000..60675e7 Binary files /dev/null and b/DigitalHumanWeb/public/images/gjImg.png differ diff --git a/DigitalHumanWeb/public/images/hh.png b/DigitalHumanWeb/public/images/hh.png new file mode 100644 index 0000000..ab070a7 Binary files /dev/null and b/DigitalHumanWeb/public/images/hh.png differ diff --git a/DigitalHumanWeb/public/images/kimi.png b/DigitalHumanWeb/public/images/kimi.png new file mode 100644 index 0000000..eaa922b Binary files /dev/null and b/DigitalHumanWeb/public/images/kimi.png differ diff --git a/DigitalHumanWeb/public/images/logo-3d.webp b/DigitalHumanWeb/public/images/logo-3d.webp new file mode 100644 index 0000000..4914e91 Binary files /dev/null and b/DigitalHumanWeb/public/images/logo-3d.webp differ diff --git a/DigitalHumanWeb/public/images/logo.png b/DigitalHumanWeb/public/images/logo.png new file mode 100644 index 0000000..8a3e55d Binary files /dev/null and b/DigitalHumanWeb/public/images/logo.png differ diff --git a/DigitalHumanWeb/public/images/manage.png b/DigitalHumanWeb/public/images/manage.png new file mode 100644 index 0000000..f3894e6 Binary files /dev/null and b/DigitalHumanWeb/public/images/manage.png differ diff --git a/DigitalHumanWeb/public/images/mx.png b/DigitalHumanWeb/public/images/mx.png new file mode 100644 index 0000000..e466e5a Binary files /dev/null and b/DigitalHumanWeb/public/images/mx.png differ diff --git a/DigitalHumanWeb/public/images/next.png b/DigitalHumanWeb/public/images/next.png new file mode 100644 index 0000000..d85c72d Binary files /dev/null and b/DigitalHumanWeb/public/images/next.png differ diff --git a/DigitalHumanWeb/public/images/per.png b/DigitalHumanWeb/public/images/per.png new file mode 100644 index 0000000..1e4a05c Binary files /dev/null and b/DigitalHumanWeb/public/images/per.png differ diff --git a/DigitalHumanWeb/public/images/question.png b/DigitalHumanWeb/public/images/question.png new file mode 100644 index 0000000..c7a6a4f Binary files /dev/null and b/DigitalHumanWeb/public/images/question.png differ diff --git a/DigitalHumanWeb/public/images/robot.png b/DigitalHumanWeb/public/images/robot.png new file mode 100644 index 0000000..3fc49c0 Binary files /dev/null and b/DigitalHumanWeb/public/images/robot.png differ diff --git a/DigitalHumanWeb/public/images/robot1.png b/DigitalHumanWeb/public/images/robot1.png new file mode 100644 index 0000000..775faa1 Binary files /dev/null and b/DigitalHumanWeb/public/images/robot1.png differ diff --git a/DigitalHumanWeb/public/images/robot2.png b/DigitalHumanWeb/public/images/robot2.png new file mode 100644 index 0000000..3fb356c Binary files /dev/null and b/DigitalHumanWeb/public/images/robot2.png differ diff --git a/DigitalHumanWeb/public/images/robot_bg.png b/DigitalHumanWeb/public/images/robot_bg.png new file mode 100644 index 0000000..753e6e5 Binary files /dev/null and b/DigitalHumanWeb/public/images/robot_bg.png differ diff --git a/DigitalHumanWeb/public/images/robot_img.png b/DigitalHumanWeb/public/images/robot_img.png new file mode 100644 index 0000000..4d1879c Binary files /dev/null and b/DigitalHumanWeb/public/images/robot_img.png differ diff --git a/DigitalHumanWeb/public/images/sbChat.png b/DigitalHumanWeb/public/images/sbChat.png new file mode 100644 index 0000000..529e082 Binary files /dev/null and b/DigitalHumanWeb/public/images/sbChat.png differ diff --git a/DigitalHumanWeb/public/images/sl.png b/DigitalHumanWeb/public/images/sl.png new file mode 100644 index 0000000..921251c Binary files /dev/null and b/DigitalHumanWeb/public/images/sl.png differ diff --git a/DigitalHumanWeb/public/images/szr.png b/DigitalHumanWeb/public/images/szr.png new file mode 100644 index 0000000..72d67d6 Binary files /dev/null and b/DigitalHumanWeb/public/images/szr.png differ diff --git a/DigitalHumanWeb/public/images/szrxx.png b/DigitalHumanWeb/public/images/szrxx.png new file mode 100644 index 0000000..10cfd14 Binary files /dev/null and b/DigitalHumanWeb/public/images/szrxx.png differ diff --git a/DigitalHumanWeb/public/images/szxx.png b/DigitalHumanWeb/public/images/szxx.png new file mode 100644 index 0000000..10cfd14 Binary files /dev/null and b/DigitalHumanWeb/public/images/szxx.png differ diff --git a/DigitalHumanWeb/public/images/timbre.png b/DigitalHumanWeb/public/images/timbre.png new file mode 100644 index 0000000..c51057f Binary files /dev/null and b/DigitalHumanWeb/public/images/timbre.png differ diff --git a/DigitalHumanWeb/public/images/tyqw.png b/DigitalHumanWeb/public/images/tyqw.png new file mode 100644 index 0000000..632d36c Binary files /dev/null and b/DigitalHumanWeb/public/images/tyqw.png differ diff --git a/DigitalHumanWeb/public/images/zs.png b/DigitalHumanWeb/public/images/zs.png new file mode 100644 index 0000000..071c811 Binary files /dev/null and b/DigitalHumanWeb/public/images/zs.png differ diff --git a/DigitalHumanWeb/public/images/zsImage.png b/DigitalHumanWeb/public/images/zsImage.png new file mode 100644 index 0000000..6cd2194 Binary files /dev/null and b/DigitalHumanWeb/public/images/zsImage.png differ diff --git a/DigitalHumanWeb/public/images/zsk.png b/DigitalHumanWeb/public/images/zsk.png new file mode 100644 index 0000000..20128d3 Binary files /dev/null and b/DigitalHumanWeb/public/images/zsk.png differ diff --git a/DigitalHumanWeb/public/images/zsk1.png b/DigitalHumanWeb/public/images/zsk1.png new file mode 100644 index 0000000..e30bc8d Binary files /dev/null and b/DigitalHumanWeb/public/images/zsk1.png differ diff --git a/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/Avatar.tsx b/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/Avatar.tsx index bc85ec3..a3efc2e 100644 --- a/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/Avatar.tsx +++ b/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/Avatar.tsx @@ -1,5 +1,5 @@ import { ActionIcon } from '@lobehub/ui'; -import { Tooltip } from 'antd'; +import { Tooltip, Image } from 'antd'; import { LucideX } from 'lucide-react'; import { Suspense, memo } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/Images.tsx b/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/Images.tsx new file mode 100644 index 0000000..0995088 --- /dev/null +++ b/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/Images.tsx @@ -0,0 +1,29 @@ +import { ActionIcon } from '@lobehub/ui'; +import { Tooltip, Image } from 'antd'; +import { LucideX } from 'lucide-react'; +import { Suspense, memo } from 'react'; +import { useTranslation } from 'react-i18next'; +import { Flexbox } from 'react-layout-kit'; + +import UserAvatar from '@/features/User/UserAvatar'; +import UserPanel from '@/features/User/UserPanel'; +import { useUserStore } from '@/store/user'; +import { preferenceSelectors } from '@/store/user/selectors'; + +const Images = memo(() => { + const { t } = useTranslation('common'); + const hideSettingsMoveGuide = useUserStore(preferenceSelectors.hideSettingsMoveGuide); + const updateGuideState = useUserStore((s) => s.updateGuideState); + + const content = ( + {""} + ); + + return ( + content + ); +}); + +Images.displayName = 'Images'; + +export default Images; diff --git a/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx b/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx index aab1ba6..4d49a78 100644 --- a/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx +++ b/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx @@ -1,13 +1,37 @@ import { ActionIcon } from '@lobehub/ui'; import { Compass, FolderClosed, MessageSquare } from 'lucide-react'; import Link from 'next/link'; -import { memo } from 'react'; +import { memo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useGlobalStore } from '@/store/global'; import { SidebarTabKey } from '@/store/global/initialState'; import { featureFlagsSelectors, useServerConfigStore } from '@/store/serverConfig'; import { useSessionStore } from '@/store/session'; +import { useUserStore } from '@/store/user'; +import { createStyles } from 'antd-style'; +import { Image } from "antd"; + +const useStyles = createStyles(({ css }) => ({ + iconImg: css` + width: 48px; + height: 48px; + `, + iconSelectText: css` + color: #0044FF; + `, + iconText: css` + text-align: center; + color: #fff; + `, + linkUrl: css` + width: 100%; + display: inline-block; + `, + linkclic: css` + background-color: #fff; + `, +})); export interface TopActionProps { isPinned?: boolean | null; @@ -18,45 +42,59 @@ const TopActions = memo(({ tab, isPinned }) => { const { t } = useTranslation('common'); const switchBackToChat = useGlobalStore((s) => s.switchBackToChat); const { showMarket, enableKnowledgeBase } = useServerConfigStore(featureFlagsSelectors); + const { styles, cx } = useStyles() + const [value, setValue] = useState("chat") return ( <> { e.preventDefault(); + setValue("/chat") + console.log(value) switchBackToChat(useSessionStore.getState().activeId); }} > - + {"chat"} +
会话
{enableKnowledgeBase && ( - - + {setValue("/discover/assistants")}}> + {"files"} +
助手
+ + )} + {showMarket && ( + {setValue("/applicationset")}}> + {"discover"} +
AI应用集
+ + )} + {showMarket && ( + {setValue("/model")}}> + {"model"} +
模型
+ + )} + {showMarket && ( + {setValue("/robot")}}> + {"robot"} +
数字人
+ + )} + {showMarket && ( + {setValue("/plugins")}}> + {"plugins"} +
插件
)} {showMarket && ( - - + {setValue("/knowledge")}}> + +
知识库
)} diff --git a/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/index.tsx b/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/index.tsx index 171d2a7..b891d8d 100644 --- a/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/index.tsx +++ b/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/SideBar/index.tsx @@ -13,6 +13,7 @@ import Avatar from './Avatar'; import BottomActions from './BottomActions'; import PinList from './PinList'; import TopActions from './TopActions'; +import {Image} from "antd"; const Top = () => { const [isPinned] = useQueryState('pinned', parseAsBoolean); @@ -28,13 +29,12 @@ const Nav = memo(() => { return ( !inZenMode && ( } - bottomActions={} - style={{ height: '100%', zIndex: 100 }} + avatar={{""}} + style={{ backgroundColor: '#2E62FF', height: '100%', width: '100px', zIndex: 100 }} topActions={ - {showPinList && } + {/*{showPinList && }*/} } /> diff --git a/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/index.tsx b/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/index.tsx index 69c6478..a53b80f 100644 --- a/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/index.tsx +++ b/DigitalHumanWeb/src/app/[variants]/(main)/_layout/Desktop/index.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useTheme } from 'antd-style'; +import { createStyles, useTheme } from 'antd-style'; import dynamic from 'next/dynamic'; import { PropsWithChildren, memo } from 'react'; import { Flexbox } from 'react-layout-kit'; @@ -8,16 +8,77 @@ import { Flexbox } from 'react-layout-kit'; import { BANNER_HEIGHT } from '@/features/AlertBanner/CloudBanner'; import { usePlatform } from '@/hooks/usePlatform'; import { featureFlagsSelectors, useServerConfigStore } from '@/store/serverConfig'; +import { Divider } from "antd"; +import Avatar from './SideBar/Avatar'; import SideBar from './SideBar'; + +const title:{[key: string]: string } = { + "/chat": '会话', + "/discover/assistants": "助手", + "/files": "工具", + "/knowledge": "知识库", + "/model": "模型", + "/plugins": "插件", + "/power": "算力", + "/robot": "数字人", +} +const useStyles = createStyles(({ css }) => ({ + dividerCen: css` + width: 1px; + height: 26px; + background-color: #d8d8d8; + margin: 8px 16px; + `, + inp: css` + width: 283px; + margin-right: 43px; + background: #F3F6FF; + &:hover, &:active, &:focus { + border-color: transparent !important; + background: #F3F6FF !important; + } + `, + ledDiv: css ` + width: 50%; + display: inline-block; + `, + leftTitle: css` + font-size: 20px; + color: #3d3d3d; + display: inline-block + `, + nameSpn: css` + margin-right: 16px; + margin-left: 18px; + display: inline-block; + `, + serchIcon: css` + color: #BCCEFF; + font-size: 24px; + `, + topCenten: css` + width: 100%; + line-height: 60px; + background: #FFFFFF; + box-sizing: border-box; + /* 分割线颜色 */ + border-width: 0px 0px 2px 0px; + border-style: solid; + border-color: rgba(187, 204, 253, 0.24); + `, +})) + const CloudBanner = dynamic(() => import('@/features/AlertBanner/CloudBanner')); const Layout = memo(({ children }) => { const { isPWA } = usePlatform(); const theme = useTheme(); - + const { styles, cx } = useStyles() const { showCloudPromotion } = useServerConfigStore(featureFlagsSelectors); + // const pathName = window?.location?.pathname ?? '/welcome' + const pathName = '/welcome' return ( <> @@ -32,7 +93,21 @@ const Layout = memo(({ children }) => { width={'100%'} > - {children} +
+
+
+
+ 集智AI + + {title[pathName]} +
+
+ +
+
+
+ {children} +
); diff --git a/DigitalHumanWeb/src/app/[variants]/(main)/applicationset/applicationset.tsx b/DigitalHumanWeb/src/app/[variants]/(main)/applicationset/applicationset.tsx new file mode 100644 index 0000000..fd13a7c --- /dev/null +++ b/DigitalHumanWeb/src/app/[variants]/(main)/applicationset/applicationset.tsx @@ -0,0 +1,1110 @@ +'use client'; + +import {memo, useEffect, useState} from 'react'; +import {createStyles} from "antd-style"; +import {Anchor, Button, Card, Image} from "antd"; +import {RightCircleOutlined, LikeFilled, WechatFilled, HomeFilled, DribbbleSquareFilled, CopyFilled, MedicineBoxFilled, IeCircleFilled, IdcardFilled, HourglassFilled, InsuranceFilled} from "@ant-design/icons"; +// import Link from "next/link"; +import request from '@/app/request'; +import Title from "@/app/(main)/discover/components/Title"; + +// const stData = { +// "rmtj": [ +// { +// id: '061', +// name: "Kimi智能助手", +// sessiontype: 2, +// remark: "Kimi 智能助手,你的私人助理", +// iconurl: "/images/applicationSets/kimi.png", +// website: "https://kimi.moonshot.cn/kimiplus-square" +// }, +// { +// id: '062', +// name: "通义千问", +// sessiontype: 2, +// remark: "通义千问是阿里云的大模型,类似ChatGPT,专注响应人类指令,提高生活效率与体验", +// iconurl: "/images/applicationSets/tyqw.png", +// website: "https://tongyi.aliyun.com" +// }, +// { +// id: '063', +// name: "文心一言", +// sessiontype: 2, +// remark: "文心一言是百度推出的基于文心大模型的AI对话互动工具", +// iconurl: "/images/applicationSets/wxyy.png", +// website: "https://yiyan.baidu.com" +// }, +// { +// id: '064', +// name: "讯飞写作", +// sessiontype: 2, +// remark: "讯飞写作基于讯飞星火认知大模型能力,支持多场景写作,提供会议纪要,求职简历,心得体会,入党申请,论文大纲,品宣文案,PPT 大纲等各类写作模板", +// iconurl: "/images/applicationSets/xfxz.png", +// website: "https://huixie.iflyrec.com/" +// }, +// { +// id: '065', +// name: "即梦", +// sessiontype: 2, +// remark: "即梦Dreamina是一款结合了AI技术的在线创作平台,它通过图片生成、智能画布和视频生成等功能,帮助用户将创意转化为视觉作品。", +// iconurl: "/images/applicationSets/jm.png", +// website: "https://jimeng.jianying.com/" +// }, +// { +// id: '066', +// name: "可灵大模型", +// sessiontype: 2, +// remark: "可灵大模型是一款具备强大视频生成能力的自研大模型,采用先进的技术实现长达 2 分钟视频生成、模拟物理世界特性、概念组合能力等,可生成电影级画面。", +// iconurl: "/images/applicationSets/kldmx.png", +// website: "https://kling.kuaishou.com/" +// }, +// { +// id: '067', +// name: "飞书智能伙伴", +// sessiontype: 2, +// remark: "飞书智能伙伴是一款智能助手产品,可以为用户选择自己喜欢的形象、设置姓名,并记忆用户在飞书上的行为,支持部署在飞书上的业务应用,实现跨系统任务完成和统一使用体验。", +// iconurl: "/images/applicationSets/fsznhb.png", +// website: "https://www.feishu.cn/product/ai_companion" +// }, +// { +// id: '068', +// name: "硅基智能", +// sessiontype: 2, +// remark: "硅基智能是一款数字化虚拟人与 AI 技术相结合的产品,主要应用于智能交互领域。", +// iconurl: "/images/applicationSets/gjzn.png", +// website: "https://www.guiji.ai/" +// }, +// ], +// "chat": [ +// { +// id: '071', +// name: "Kimi智能助手", +// sessiontype: 2, +// remark: "Kimi 智能助手,你的私人助理", +// iconurl: "/images/applicationSets/kimi.png", +// website: "https://kimi.moonshot.cn/kimiplus-square" +// }, +// { +// id: '072', +// name: "通义千问", +// sessiontype: 2, +// remark: "通义千问是阿里云的大模型,类似ChatGPT,专注响应人类指令,提高生活效率与体验", +// iconurl: "/images/applicationSets/tyqw.png", +// website: "https://tongyi.aliyun.com" +// }, +// { +// id: '073', +// name: "文心一言", +// sessiontype: 2, +// remark: "文心一言是百度推出的基于文心大模型的AI对话互动工具", +// iconurl: "/images/applicationSets/wxyy.png", +// website: "https://yiyan.baidu.com" +// }, +// { +// id: '074', +// name: "豆包", +// sessiontype: 2, +// remark: "豆包是一款智能聊天机器人,能够与用户进行自然语言交互,提供各种聊天话题,包括天气、新闻、笑话、音乐等。", +// iconurl: "/images/applicationSets/db.png", +// website: "https://www.doubao.com/chat" +// }, +// { +// id: '075', +// name: "讯飞星火认知大模型", +// sessiontype: 2, +// remark: "科大讯飞推出的类ChatGPT的讯飞星火认知大模型", +// iconurl: "/images/applicationSets/xfxhrz.png", +// website: "https://xinghuo.xfyun.cn" +// }, +// { +// id: '076', +// name: "商量SenseChat", +// sessiontype: 2, +// remark: "商量SenseChat是商汤科技的大语言模型,具备语言理解与生成能力,像ChatGPT可解复杂问题,定制化建议,辅助一流文本创作,并不断进化", +// iconurl: "/images/applicationSets/senseChat.png", +// website: "https://chat.sensetime.com/wb/chat" +// }, +// { +// id: '077', +// name: "智谱清言", +// sessiontype: 2, +// remark: "智谱清言是一款基于ChatGLM2模型开发的人工智能应用,具备内容创作、信息归纳总结等能力", +// iconurl: "/images/applicationSets/zpqy.png", +// website: "https://chatglm.cn" +// }, +// { +// id: '078', +// name: "360智脑", +// sessiontype: 2, +// remark: "360智脑是360公司推出的中文版本ChatGPT,它采用先进的机器学习和自然语言处理技术,可以进行高度准确和流畅的中文对话", +// iconurl: "/images/applicationSets/360zn.png", +// website: "https://www.so.com/zt/invite.html" +// }, +// { +// id: '079', +// name: "Chatbox", +// sessiontype: 2, +// remark: "Chatbox是一个易于使用的人工智能解决方案,支持多平台,帮助提升工作和学习效率", +// iconurl: "/images/applicationSets/chatBox.png", +// website: "https://chatboxai.app/zh" +// }, +// ], +// "writing": [ +// { +// id: '101', +// name: "讯飞写作", +// sessiontype: 2, +// remark: "讯飞写作基于讯飞星火认知大模型能力,支持多场景写作,提供会议纪要,求职简历,心得体会,入党申请,论文大纲,品宣文案,PPT 大纲等各类写作模板", +// iconurl: "/images/applicationSets/xfxz.png", +// website: "https://huixie.iflyrec.com/" +// }, +// { +// id: '102', +// name: "秘塔写作猫", +// sessiontype: 2, +// remark: "秘塔写作猫是一款集AI写作、多人协作、文本校对、改写润色、自动配图等功能为一体的AI Native内容创作平台。", +// iconurl: "/images/applicationSets/mtxzm.png", +// website: "https://xiezuocat.com/" +// }, +// { +// id: '103', +// name: "智学AI写作", +// sessiontype: 2, +// remark: "智学AI是款一键生成原创论文的一站式论文服务网站。致力于解决论文写作过程中的各种问题", +// iconurl: "/images/applicationSets/zxAIxz.png", +// website: "https://www.chackai.cn/" +// }, +// { +// id: '104', +// name: "YOO必优科技-AI写作", +// sessiontype: 2, +// remark: "AI写作,原创内容,写作神器-必优科技官网", +// iconurl: "/images/applicationSets/YOO.png", +// website: "https://www.yoo-ai.com/" +// }, +// { +// id: '105', +// name: "晓语台", +// sessiontype: 2, +// remark: "晓语台官网,助力高效文本创作的AI平台", +// iconurl: "/images/applicationSets/xyt.png", +// website: "https://www.xiaoyutai.com/" +// }, +// { +// id: '106', +// name: "行止AI", +// sessiontype: 2, +// remark: "行止AI官网,多功能的人工智能生成内容平台", +// iconurl: "/images/applicationSets/xzAI.png", +// website: "https://ai.168096.com/web/" +// }, +// { +// id: '107', +// name: "红薯通AI", +// sessiontype: 2, +// remark: "红薯通AI,小红书内容创作神器", +// iconurl: "/images/applicationSets/hst.png", +// website: "https://www.hongshutong.com/" +// }, +// ], +// "conversation": [ +// { +// id: '131', +// name: "文心一格", +// sessiontype: 2, +// remark: "文心一格,AI艺术和创意辅助平台,依托飞桨、文心大模型的技术创新推出的“AI作画”产品,可轻松驾驭多种风格,人人皆可“一语成画”", +// iconurl: "/images/applicationSets/wxyy.png", +// website: "https://yige.baidu.com/" +// }, +// { +// id: '132', +// name: "无界AI", +// sessiontype: 2, +// remark: "无界 AI 是一款集 prompt 搜索、AI 图库、AI 创作、AI 广场、词 / 图等功能于一体的 AI 创作平台。", +// iconurl: "/images/applicationSets/wjAI.png", +// website: "https://www.wujieai.com/" +// }, +// { +// id: '133', +// name: "即梦", +// sessiontype: 2, +// remark: "即梦Dreamina是一款结合了AI技术的在线创作平台,它通过图片生成、智能画布和视频生成等功能,帮助用户将创意转化为视觉作品。", +// iconurl: "/images/applicationSets/jm.png", +// website: "https://jimeng.jianying.com/" +// }, +// { +// id: '134', +// name: "LiblibAI", +// sessiontype: 2, +// remark: "LiblibAI是一个中国领先的AI创作平台,提供强大的AI创作能力,帮助创作者实现创意。", +// iconurl: "/images/applicationSets/LiblibAI.png", +// website: "https://www.liblib.art/" +// }, +// { +// id: '135', +// name: "触手AI", +// remark: "触手 AI 绘画专业版是一款面向插画师、漫画师、设计师等专业用户的国产 AI 绘图平台。", +// iconurl: "/images/applicationSets/csAI.png", +// website: "https://www.acgnai.art/home" +// }, +// ], +// "video": [ +// { +// id: '161', +// name: "可灵大模型", +// sessiontype: 2, +// remark: "可灵大模型是一款具备强大视频生成能力的自研大模型,采用先进的技术实现长达 2 分钟视频生成、模拟物理世界特性、概念组合能力等,可生成电影级画面。", +// iconurl: "/images/applicationSets/kldmx.png", +// website: "https://kling.kuaishou.com/" +// }, +// { +// id: '162', +// name: "即梦", +// sessiontype: 2, +// remark: "即梦Dreamina是一款结合了AI技术的在线创作平台,它通过图片生成、智能画布和视频生成等功能,帮助用户将创意转化为视觉作品。", +// iconurl: "/images/applicationSets/jm.png", +// website: "https://jimeng.jianying.com/" +// }, +// { +// id: '163', +// name: "Moki", +// sessiontype: 2, +// remark: "Moki是美图公司推出的AI短片创作工具,专注于辅助视频创作者打造动画短片、网文短剧、故事绘本和音乐视频(MV)。", +// iconurl: "/images/applicationSets/moki.png", +// website: "https://www.moki.cn/home" +// }, +// { +// id: '164', +// name: "一帧秒创", +// sessiontype: 2, +// remark: "一帧秒创是基于秒创AIGC引擎的智能AI内容生成平台,包含AI图文转视频、AI作画创作平台AI帮写", +// iconurl: "/images/applicationSets/yzmc.png", +// website: "https://aigc.yizhentv.com/" +// }, +// { +// id: '165', +// name: "万彩AI", +// remark: "一款强大的AI内容创作工具合集,除了提供AI智能写作支持之外,还集成了AI换脸、照片数字人制作和AI短视频制作等强大的AI生成内容功能。", +// iconurl: "/images/applicationSets/wcAI.png", +// website: "https://ai.kezhan365.com/" +// }, +// { +// id: '166', +// name: "闪剪智能", +// remark: "闪剪智能是全球超2亿用户都在用的AI视频创作平台,旗下有闪剪、逗拍、趣推、字说、Vinkle等软件", +// iconurl: "/images/applicationSets/sjzn.png", +// website: "https://corp.shanjian.tv/" +// }, +// ], +// "office": [ +// { +// id: '171', +// name: "通义听悟", +// sessiontype: 2, +// remark: "阿里云通义听悟是聚焦音视频内容的工作学习 AI 助手,依托大模型,帮助用户记录、整理和分析音视频内容。通过实时语音转文字、多语言同步翻译,提供高效学习体验。", +// iconurl: "/images/applicationSets/tytw.png", +// website: "https://tingwu.aliyun.com/" +// }, +// { +// id: '172', +// name: "WPS AI", +// sessiontype: 2, +// remark: "WPS AI是一款智能办公助手,能够帮助用户完成文本改写、续写、生成PPT、数据处理、语音交互等多项功能。", +// iconurl: "/images/applicationSets/WPS.png", +// website: "https://ai.wps.cn/" +// }, +// { +// id: '173', +// name: "星火文档问答", +// sessiontype: 2, +// remark: "讯飞星火知识库文档问答是科大讯飞基于讯飞星火大模型和星火知识库搭建的文档问答服务,能够高效检索文档信息,准确回答专业问题。", +// iconurl: "/images/applicationSets/xhwdwd.png", +// website: "https://chatdoc.xfyun.cn/" +// }, +// { +// id: '174', +// name: "飞书智能伙伴", +// sessiontype: 2, +// remark: "飞书智能伙伴是一款智能助手产品,可以为用户选择自己喜欢的形象、设置姓名,并记忆用户在飞书上的行为,支持部署在飞书上的业务应用,实现跨系统任务完成和统一使用体验。", +// iconurl: "/images/applicationSets/fsznhb.png", +// website: "https://www.feishu.cn/product/ai_companion" +// }, +// { +// id: '175', +// name: "TreeMind 树图", +// sessiontype: 2, +// remark: "TreeMind 树图是新一代思维导图软件,提供便捷的在线思维导图制作工具。", +// iconurl: "/images/applicationSets/treeMind.png", +// website: "https://shutu.cn/" +// }, +// { +// id: '176', +// name: "亿图脑图", +// sessiontype: 2, +// remark: "亿图脑图是一款多平台思维导图软件,可用于 Windows,Mac 和 Linux 等桌面环境,也可以在线使用或在苹果,安卓等移动端上使用。", +// iconurl: "/images/applicationSets/ytnt.png", +// website: "https://www.edrawsoft.cn/mindmaster/ad-mindmaster6-1.html" +// }, +// ], +// "digitalPeople": [ +// { +// id: '181', +// name: "硅基智能", +// sessiontype: 2, +// remark: "硅基智能是一款数字化虚拟人与 AI 技术相结合的产品,主要应用于智能交互领域。", +// iconurl: "/images/applicationSets/gjzn.png", +// website: "https://www.guiji.ai/" +// }, +// { +// id: '182', +// name: "怪兽ai数字人", +// sessiontype: 2, +// remark: "怪兽AI数字人提供2D数字人和3D数字人的商业应用,同时提供共享、定制和克隆数字人形象,以及真人声音克隆等身份制作服务。", +// iconurl: "/images/applicationSets/ksAIszr.png", +// website: "https://www.guaishouai.com/" +// }, +// { +// id: '183', +// name: "奇妙问", +// sessiontype: 2, +// remark: "奇妙问官网:开启数字人3.0时代。", +// iconurl: "/images/applicationSets/qmw.png", +// website: "https://ai.weta365.com/" +// }, +// { +// id: '184', +// name: "工作数字人", +// sessiontype: 2, +// remark: "工作数字人官网,开启高效工作办公之旅", +// iconurl: "/images/applicationSets/gzszr.png", +// website: "https://workbrain.cn/" +// }, +// ], +// "education": [ +// { +// id: '191', +// name: "星火语伴", +// sessiontype: 2, +// remark: "星火语伴APP,一款专为英语学习者打造的学习伙伴", +// iconurl: "/images/applicationSets/xhyb.png", +// website: "https://www.xfxuexi.com/#/aiTalk" +// }, +// { +// id: '192', +// name: "Masterly ai", +// sessiontype: 2, +// remark: "Masterlyai是一个雅思备考助手,口语写作练习", +// iconurl: "/images/applicationSets/MasterlyAI.png", +// website: "https://www.masterlyai.com/" +// }, +// { +// id: '193', +// name: "TalkAI", +// sessiontype: 2, +// remark: "TalkAI是一款专为想要学习语言的人打造的学习助手,AI练口语,支持超过60种语言。", +// iconurl: "/images/applicationSets/TalkAI.png", +// website: "https://ttalkai.com/" +// }, +// { +// id: '194', +// name: "FeelRead 飞阅", +// sessiontype: 2, +// remark: "一款微信生态内的AI Reading Copilot 小程序,互动式阅读助手,可与文对话。AI自动分析&阅读在线文章,与文档PDF/Word。", +// iconurl: "/images/applicationSets/FeelRead.png", +// website: "https://app.jiajiaqun.cn/" +// }, +// ], +// "programming": [ +// { +// id: '121', +// name: "文心快码", +// sessiontype: 2, +// remark: "码随心动,快人一步,更懂你的智能代码助手", +// iconurl: "/images/applicationSets/wxyy.png", +// website: "https://comate.baidu.com/zh" +// }, +// { +// id: '122', +// name: "通义灵码", +// sessiontype: 2, +// remark: "灵动指间,快码加编,你的智能编码助手。基于通义大模型,提供代码智能生成、研发智能问答能力", +// iconurl: "/images/applicationSets/tylm.png", +// website: "https://tongyi.aliyun.com/lingma/" +// }, +// { +// id: '123', +// name: "codeFuse", +// sessiontype: 2, +// remark: "codeFuse 是一个能够辅助开发者进行代码补全、添加注释、解释代码等功能的插件。", +// iconurl: "/images/applicationSets/codeFuse.png", +// website: "https://codefuse.alipay.com/welcome/product" +// }, +// { +// id: '124', +// name: "星火飞码 iFlyCode", +// sessiontype: 2, +// remark: "iFlyCode智能编程助手是一款基于讯飞星火认知大模型的智能编程工具。它能够智能生成代码、解释代码、纠错代码、进行单元测试以及提供智能问答功能。", +// iconurl: "/images/applicationSets/iFlyCode.png", +// website: "https://iflycode.xfyun.cn/index" +// }, +// { +// id: '125', +// name: "天工智码 SkyCode", +// sessiontype: 2, +// remark: "天工智码 SkyCode 是一款 AI 代码生成工具,支持各种主流编程语言,助力开发人员更快更好的编码。", +// iconurl: "/images/applicationSets/SkyCode.png", +// website: "https://sky-code.singularity-ai.com/index.html" +// }, +// { +// id: '126', +// name: "CodeArts Snap", +// sessiontype: 2, +// remark: "CodeArts Snap是华为云自研的基于盘古研发大模型的智能开发助手。", +// iconurl: "/images/applicationSets/CodeArtsSnap.png", +// website: "https://www.huaweicloud.com/product/codeartside/snap.html" +// }, +// { +// id: '127', +// name: "Fitten Code", +// sessiontype: 2, +// remark: "Fitten Code是一个GPT驱动的代码生成和完成工具,支持多种语言:Python、Javascript、Typescript、Java等。", +// iconurl: "/images/applicationSets/FittenCode.png", +// website: "https://code.fittentech.com/" +// }, +// ], +// "audio": [ +// { +// id: '151', +// name: "魔音工坊", +// sessiontype: 2, +// remark: "魔音工坊是一款功能强大的在线智能配音工具,能够快速高效地实现文字到语音的转换。它拥有强大的语音合成技术,提供真人录音质量的配音效果。", +// iconurl: "/images/applicationSets/mygf.png", +// website: "https://www.moyin.com/" +// }, +// { +// id: '152', +// name: "天工SkyMusic", +// sessiontype: 2, +// remark: "基于昆仑万维「天工3.0」超级大模型打造的AI音乐生成大模型「天工SkyMusic」,支持高质量AI音乐生成、人声合成、歌词段落控制、多种音乐风格和音乐智能表达等功能。", +// iconurl: "/images/applicationSets/SkyMusic.png", +// website: "https://home.tiangong.cn/downloadGuide" +// }, +// { +// id: '153', +// name: "讯飞开放平台", +// sessiontype: 2, +// remark: "科大讯飞推出的移动互联网智能交互平台,为开发者免费提供:涵盖语音能力增强型SDK,一站式人机智能语音交互解决方案,专业全面的移动应用分析", +// iconurl: "/images/applicationSets/xfkfpt.png", +// website: "https://www.xfyun.cn/" +// }, +// { +// id: '154', +// name: "依图语音开放平台", +// sessiontype: 2, +// remark: "依图语音开放平台", +// iconurl: "/images/applicationSets/ytyykfpt.png", +// website: "https://speech.yitutech.com/" +// }, +// { +// id: '155', +// name: "REECHO 睿声", +// sessiontype: 2, +// remark: "REECHO.AI 睿声是一个超拟真的人工智能语音克隆平台。用户可以上传语音样本,系统利用深度学习技术进行语音克隆,生成质量极高的 AI 语音,可以实现不同人物的语音风格转换。", +// iconurl: "/images/applicationSets/REECHO.png", +// website: "https://www.reecho.cn/" +// }, +// { +// id: '156', +// name: "NovaMSS", +// sessiontype: 2, +// remark: "NovaMSS是一款基于最顶级的AI模型调优后的新一代音乐源分离工具,可以一键提取伴奏、人声、贝斯、鼓点、分离音轨等。", +// iconurl: "/images/applicationSets/NovaMSS.png", +// website: "https://novamss.com/" +// }, +// ] +// } + +const stList = [ + { + date: '2024-02-03', + des: "擅长产品功能分析与用户价值观广告文案创作。", + id: '1', + title: 'XXX助手', + }, +] + +const useStyles = createStyles(({css}) => ({ + actionItem: css` + height: 56px; + line-height: 56px; + margin-right: 30px + `, + actionItemIcon: css` + margin-right: 15px; + margin-left: 28px; + `, + actionSpan: css` + color: #2E62FF; + `, + avImg: css` + width: 55px; + height: 55px; + border-radius: 16px + `, + btn: css` + width: 136px; + padding: 0px 2px; + margin-left: 30px; + border-radius: 41px; + border-color: #C2C2C2 !important; + color: #666 !important; + `, + card: css` + width: 23%; + margin: 32px 1% 0; + display: inline-block; + `, + cardCotain: css` + margin-top: -10px; + font-size: 12px; + color: #999 + `, + cardMeta: css` + height: 80px + `, + container: css` + marginTop: -20px + `, + containerTitle: css` + font-size: 18px + `, + desImg: css` + width: 28px + `, + desText: css` + font-size: 12px; + color: #909090; + `, + egiht: css` + color: #5BD941 + `, + fif: css` + color: #FF4D4D + `, + first: css` + color: #FFAD01 + `, + four: css` + color: #FF9B06 + `, + leftTitle: css` + font-size: 20px; + margin: 0 1%; + padding-top: 20px; + `, + nine: css` + color: #07D7F7 + `, + rightCo: css` + font-size: 16px; + margin-left: 30px; + vertical-align: middle; + `, + sec: css` + color: #5BD941 + `, + seleEight: css` + background-color: #D1FFE7; + color: #5BD941; + `, + seleFif: css` + background-color: #FFEBEB; + color: #FF4D4D; + `, + seleFir: css` + background-color: #FFF3D9; + color: #FFAD01; + `, + seleFou: css` + background-color: #FFFACD; + color: #FF9B06; + `, + seleNine: css` + background-color: #D1FFE7; + color: #07D7F7; + `, + seleSec: css` + background-color: #DCF9D6; + color: #5BD941; + `, + seleSeve: css` + background-color: #D8FAFF; + color: #0EDFFF; + `, + seleSix: css` + background-color: #E3E9FF; + color: #003BFF; + `, + seleTen: css` + background-color: #FCEBFF; + color: #E138FF; + `, + seleThd: css` + background-color: #E3E9FF; + color: #003BFF; + `, + selectBtn: css` + background-color: #3B6FFF !important; + color: #fff !important; + `, + seven: css` + color: #0EDFFF + `, + six: css` + color: #003BFF + `, + ten: css` + color: #E138FF + `, + thd: css` + color: #003BFF + `, + title: css` + font-size: 18px + `, + topBtn: css` + padding: 10px 0px; + background: rgba(239, 243, 255, 0.22); + box-sizing: border-box; + border-width: 0px 0px 2px 0px; + border-style: solid; + border-color: rgba(146, 154, 178, 0.2392); + `, + verImg: css` + height: 2px; + width: 80%; + background-color: #DFE4FF; + display: inline-block + `, + zsds: css` + display: inline-block; + margin: 5px + `, + zsdsCardImg: css` + width: 50px; + height: 50px; + border-radius: 50px; + margin-left: 5px; + line-height: 40px; + text-align: center; + vertical-align: middle; + border: 2px solid #ddd; + display: inline-block + `, +})) + +const getContainer = () => document.querySelector("#fileRight") +const handleClickCard = (e) => { + window.open(e.website, '_blank'); +} + +const onClickAncho = (e) => { + e.preventDefault() + // let srcolls = document.querySelector(link.href) + // srcolls.scrollIntoView({ + // behavior: 'smooth', + // block: 'start' + // }) +} +const ApplicationSet = memo(() => { + const { styles, cx } = useStyles() + const [val, setVal] = useState("AI") + const [achVal, setAchVal] = useState("#rmtj") + const [stData, setStData] = useState("") + useEffect(() => { + const fetchData = () => { + request({ + method: "get", + url: "/flxai/api/robot/apptoolsset/getAllAiTools", + }).then((response) => { + if (response.code === 0) { + // console.log(response,"2222") + setStData(response.data); + } + }).catch(error => { + console.error('Error fetching data:', error); + }) + }; + fetchData(); + }, []); // 空数组[]意味着仅在组件挂载时调用一次 + + const handleClick = (e) => { + setVal(e) + } + + const onChangeAnchor = (e) => { + setAchVal(e) + } + + return ( + <> +
+ + +
+
+ {val === 'AI' ? + <> + 热门推荐
, + }, + { + href: '#ailt', + key: '2', + title:
AI聊天
, + }, + { + href: '#aixz', + key: '3', + title:
AI写作
, + }, + { + href: '#aihh', + key: '4', + title:
+ AI绘画
, + }, + { + href: '#aisp', + key: '5', + title:
AI视频
, + }, + { + href: '#aibg', + key: '6', + title:
AI办公
, + }, + { + href: '#aiszr', + key: '7', + title:
AI数字人
, + }, + { + href: '#aijy', + key: '8', + title:
AI教育
, + }, + { + href: '#aibc', + key: '9', + title:
AI编程
, + }, + { + href: '#aiyp', + key: '10', + title:
AI音频
, + }, + ]} + onChange={(e) => onChangeAnchor(e)} + onClick={onClickAncho} + style={{ background: "#fff", width: '200px' }} + /> + +
+
+
热门推荐
+
+ { + stData['rmtj'] && stData['rmtj'].map((e) => { + return ( + handleClickCard(e)}>立即前往]} + className={cx(styles.card)} + key={e.id} + > + } + className={styles.cardMeta} + description={{e.remark}} + title={{e.name}} + /> + + ) + }) + } +
+
+
+
AI聊天
+
+ { + stData['chat'] && stData['chat'].map((e) => { + return ( + handleClickCard(e)}>立即前往]} + className={cx(styles.card)} + key={e.id} + > + } + className={styles.cardMeta} + description={{e.remark}} + title={{e.name}} + /> + + ) + }) + } +
+
+
+
AI写作
+
+ { + stData['writing'] && stData['writing'].map((e) => { + return ( + handleClickCard(e)}>立即前往]} + className={cx(styles.card)} + key={e.id} + > + } + className={styles.cardMeta} + description={{e.remark}} + title={{e.name}} + /> + + ) + }) + } +
+
+
+
AI绘画
+
+ { + stData['conversation'] && stData['conversation'].map((e) => { + return ( + handleClickCard(e)}>立即前往]} + className={cx(styles.card)} + key={e.id} + > + } + className={styles.cardMeta} + description={{e.remark}} + title={{e.name}} + /> + + ) + }) + } +
+
+
+
AI视频
+
+ { + stData['video'] && stData['video'].map((e) => { + return ( + handleClickCard(e)}>立即前往]} + className={cx(styles.card)} + key={e.id} + > + } + className={styles.cardMeta} + description={{e.remark}} + title={{e.name}} + /> + + ) + }) + } +
+
+
+
AI办公
+
+ { + stData['office'] && stData['office'].map((e) => { + return ( + handleClickCard(e)}>立即前往]} + className={cx(styles.card)} + key={e.id} + > + } + className={styles.cardMeta} + description={{e.remark}} + title={{e.name}} + /> + + ) + }) + } +
+
+
+
AI数字人
+
+ { + stData['digitalPeople'] && stData['digitalPeople'].map((e) => { + return ( + handleClickCard(e)}>立即前往]} + className={cx(styles.card)} + key={e.id} + > + } + className={styles.cardMeta} + description={{e.remark}} + title={{e.name}} + /> + + ) + }) + } +
+
+
+
AI教育
+
+ { + stData['education'] && stData['education'].map((e) => { + return ( + handleClickCard(e)}>立即前往]} + className={cx(styles.card)} + key={e.id} + > + } + className={styles.cardMeta} + description={{e.remark}} + title={{e.name}} + /> + + ) + }) + } +
+
+
+
AI编程
+
+ { + stData['programming'] && stData['programming'].map((e) => { + return ( + handleClickCard(e)}>立即前往]} + className={cx(styles.card)} + key={e.id} + > + } + className={styles.cardMeta} + description={{e.remark}} + title={{e.name}} + /> + + ) + }) + } +
+
+
+
AI音频
+
+ { + stData['audio'] && stData['audio'].map((e) => { + return ( + handleClickCard(e)}>立即前往]} + className={cx(styles.card)} + key={e.id} + > + } + className={styles.cardMeta} + description={{e.remark}} + title={{e.name}} + /> + + ) + }) + } +
+
+
+ + : +
+ 助手列表 +
+ { + stList.map((e) => { + return ( + 查看详情]} + className={cx(styles.card)} + key={e.id} + > +
{e.title}
+
+
+
+ +
+
+
+
+ + 助手大师 + {e.date} +
+
{e.des}
+
+
+ ) + }) + } +
+
+ } + + + ); +}); + +export default ApplicationSet; diff --git a/DigitalHumanWeb/src/app/[variants]/(main)/applicationset/page.tsx b/DigitalHumanWeb/src/app/[variants]/(main)/applicationset/page.tsx new file mode 100644 index 0000000..b831be6 --- /dev/null +++ b/DigitalHumanWeb/src/app/[variants]/(main)/applicationset/page.tsx @@ -0,0 +1,50 @@ +// import StructuredData from '@/components/StructuredData'; +import { Locales } from '@/locales/resources'; +// import { ldModule } from '@/server/ld'; +import { metadataModule } from '@/server/metadata'; +// import { DiscoverService } from '@/server/services/discover'; +import { translation } from '@/server/translation'; +// import { isMobileDevice } from '@/utils/responsive'; +import ApplicationSet from "./applicationset"; + +// import {Button} from "antd"; + + +type Props = { searchParams: { hl?: Locales } }; + +export const generateMetadata = async ({ searchParams }: Props) => { + const { t, locale } = await translation('metadata', searchParams?.hl); + return metadataModule.generate({ + alternate: true, + description: t('files.description'), + locale, + title: t('files.title'), + url: '/files', + }); +}; + +const Page = async () => { + // const { t, locale } = await translation('metadata', searchParams?.hl); + // const mobile = isMobileDevice(); + + // const discoverService = new DiscoverService(); + // const items = await discoverService.getAssistantList(locale); + + // const ld = ldModule.generate({ + // description: t('files.description'), + // title: t('files.title'), + // url: '/files', + // webpage: { + // enable: true, + // search: '/files/search', + // }, + // }); + + return ( + + ); +}; + +Page.DisplayName = 'DiscoverAssistants'; + +export default Page; diff --git a/DigitalHumanWeb/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/index.tsx b/DigitalHumanWeb/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/index.tsx index 20fa17d..4c6e22a 100644 --- a/DigitalHumanWeb/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/index.tsx +++ b/DigitalHumanWeb/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/index.tsx @@ -12,6 +12,7 @@ import { useSendMessage } from '@/features/ChatInput/useSend'; import { useChatStore } from '@/store/chat'; import { chatSelectors } from '@/store/chat/selectors'; import { isMacOS } from '@/utils/platform'; +import {HighlightOutlined, SendOutlined} from "@ant-design/icons"; import MessageFromUrl from './MessageFromUrl'; import SendMore from './SendMore'; @@ -24,8 +25,23 @@ const useStyles = createStyles(({ css, prefixCls, token }) => { width: 28px; } `, + btn: css` + width: 106px; + border: 1px solid #2E62FF !important; + color: #2E62FF !important; + font-size: 16px; + `, + btnSend: css` + width: 106px; + background: #507BFF !important; + color: #fff !important; + font-size: 16px; + `, loadingButton: css` + width: 106px; display: flex; + background: #507BFF !important; + color: #fff !important; align-items: center; `, overrideAntdIcon: css` @@ -47,9 +63,10 @@ const useStyles = createStyles(({ css, prefixCls, token }) => { interface FooterProps { expand: boolean; onExpandChange: (expand: boolean) => void; + clearClick: () => void } -const Footer = memo(({ onExpandChange, expand }) => { +const Footer = memo(({ onExpandChange, expand,clearClick }) => { const { t } = useTranslation('chat'); const { styles } = useStyles(); @@ -67,6 +84,10 @@ const Footer = memo(({ onExpandChange, expand }) => { setIsMac(isMacOS()); }, [setIsMac]); + const handleClickClear = () => { + clearClick() + } + return ( <> @@ -80,40 +101,51 @@ const Footer = memo(({ onExpandChange, expand }) => { gap={8} horizontal padding={'0 24px'} + style={{ display: 'inline-block', height: "90px", width: "100%", textAlign: 'right' }} > - - {expand && } - - - - - - {isAIGenerating ? ( + {/* */} + {/* {expand && }*/} + {/* */} + {/* */} + {/* */} + {/* */} + {/* */} +
+ +
+
+ {isAIGenerating ? ( + + ) : ( + - ) : ( - - - - - )} - - + {/**/} + + )} +
+ {/*
*/} + {/*
*/}
); diff --git a/DigitalHumanWeb/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/index.tsx b/DigitalHumanWeb/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/index.tsx index 95bfce0..1c67998 100644 --- a/DigitalHumanWeb/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/index.tsx +++ b/DigitalHumanWeb/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/index.tsx @@ -9,6 +9,7 @@ import { systemStatusSelectors } from '@/store/global/selectors'; import Footer from './Footer'; import TextArea from './TextArea'; +import {useChatStore} from "@/store/chat"; const leftActions = [ 'model', @@ -24,16 +25,21 @@ const leftActions = [ const rightActions = ['clear'] as ActionKeys[]; -const renderTextArea = (onSend: () => void) =>