掘金 人工智能 10小时前
01-开源版COZE-字节 Coze Studio 重磅开源!保姆级本地安装教程,手把手带你体验
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Coze Studio 开源版由字节跳动推出,是一个低代码、无代码的AI应用开发平台,旨在简化AI机器人开发流程。本文详细介绍了如何获取源码、配置模型(支持OpenAI、火山方舟、DeepSeek、Ollama等多种主流模型),并重点讲解了使用Docker进行本地化部署的步骤。文章详细列出了所需的中间件(如Elasticsearch、MySQL、Redis等)及其Docker配置,并提供了解决Windows环境下部署可能遇到的兼容性问题的建议,包括修改Docker Compose文件和端口映射,帮助开发者快速搭建和体验Coze Studio的AI应用开发能力。

🚀 **Coze Studio 开源版核心功能与目标**:Coze Studio 开源版是字节跳动提供的低代码AI应用开发平台,允许用户快速构建问答Bot、智能体、AI应用和插件,并支持跨平台部署。其开源版本采用Apache 2.0协议,允许免费商用,打破了以往封闭的商业模式。

🛠️ **本地部署环境准备与模型配置**:部署Coze Studio需要克隆其GitHub仓库,并了解其前后端技术栈(TypeScript和Go)。关键在于模型配置,平台支持包括OpenAI、火山方舟(Ark)、DeepSeek、Ollama(本地模型)、Qwen(通义千问)和Gemini(Google)在内的多种主流模型。用户需要获取火山方舟API的API Key和特定的Endpoint ID,并根据提供的模板文件进行配置,如修改模型ID、API Key和模型名称。

🐳 **Docker化部署详解与兼容性解决**:文章详细阐述了使用Docker进行本地部署的步骤,包括下载源码、配置Docker Compose文件(其中涉及MySQL、Redis、Elasticsearch、MinIO、Etcd、Milvus、NSQ等中间件的部署)。特别指出了在Windows环境下部署时可能遇到的脚本兼容性问题,并提供了修改Docker Compose文件以解决冲突和优化配置的建议,例如调整端口映射以避免冲突。

💡 **模型配置细节与部署注意事项**:在模型配置中,用户需要为每个模型定义一个全局唯一的整数ID,并正确填写API Key和模型服务名称。部署过程中,需要注意Docker镜像的下载和可能遇到的网络问题,以及本地端口占用情况,建议根据实际情况调整配置文件中的端口设置,以确保服务的顺利启动和运行。

1.前言

Coze Studio 开源版是字节跳动推出的Coze平台的一个开源版本,旨在为开发者和用户提供一个低代码、无代码的AI应用开发平台。Coze Studio 开源版的核心目标是简化AI机器人的开发流程,使用户能够快速构建基于AI模型的问答Bot、智能体、AI应用和插件,并将其部署到各种社交平台和即时通讯应用中。

2025年7月26日凌晨13:40左右群里收到一条消息:字节跳动的扣子(coze)正式开源了。

**开源地址:**github.com/coze-dev

其中两个比较重要的仓库:

此次扣子的开源动作堪称“全盘托出”。两大核心组件均以Apache 2.0协议开放,允许免费商用,打破过往封闭生态的商业模。

既然开源了我们带大家先本地环境安装体验一下。话不多说,我们直接上手开干。

2.本地安装coze

源码下载

首选我们需要到下载源码

# 克隆代码git clone https://github.com/coze-dev/coze-studio.git

源码下载完成我们先看一下代码结构。这个代码前端是TypeScript 写的,后端是Go 写的。这个效率方面应该是高于dify (直观的感受)

代码这里就带大家解读了,大家也不关心这个。

模型配置

在部署之前我们需要用到模型,从配置文件里可以看到它支持OpenAI(含 Azure)、火山方舟(Ark)、DeepSeek、Ollama(本地开源模型)、Qwen(通义千问)、Gemini(Google)等几个主流的模型。

我这里就以字节提供的doubao-seed-1.6模型介绍。我先到获取火山方舟 API 获取apikey

在开通管理这里,开通一些模型(目前字节在推广用送一些模型token给大家体验)

我们需要开通需要用到的模型。开通模型后需要用到获取 Endpoint ID,大家可以看获取 Endpoint ID,这个是字节最反人类的设计,很多小伙伴不知道这个Endpoint ID是什么,每个人还不一样。需要自己创建自定义推荐接入点

上面的ep-20250621103906-7vrrn 这个才是我们要的。记住这个值,记住这个值,记住这个值。 我们说三遍。我自己做了个对照表方便后面查找。(下面的是我自己的,你的不一样,别抄)

模型名称火山对应的模型模型类型
deepseek-V3ep-20250205144300-jv6dk文本
deepseek-R1-Distill-Qwen-32Bep-20250205144352-hsl6w文本
deepseek-R1ep-20250205144233-4rrb5文本
Doubao-lite-32kep-20241217193737-5zhqk文本
Doubao-embeddingep-20241206145333-q5x7d向量模型
Doubao-vision-pro-32kep-20241217185028-bm7vz文本
Doubao-vision-pro-32kep-20250214130618-xbclg文本
deepseek-v3联网版bot-20250223173109-rhg9l文本
Doubao-Seed-1.6-flashep-m-20250617223041-hdk2k文本
Doubao-Seedance-1.0-lite-i2vep-m-20250602181245-dscmm文本
Doubao-Seed-1.6ep-20250621103906-7vrrn文本
Doubao-Seed-1.6-thinkingep-20250621104136-q658l文本
Doubao-Seed-1.6-flashep-20250621104240-nwfql文本
Doubao-Seedance-1.0-prodoubao-seedance-1-0-pro-250528视觉大模型
Doubao-Seedream-3.0-t2idoubao-seedream-3-0-t2i-250415视觉大模型
Doubao-Seedance-1.0-lite-t2vdoubao-seedance-1-0-lite-t2v-250428视觉大模型
Doubao-Seedance-1.0-lite-i2vdoubao-seedance-1-0-lite-i2v-250428视觉大模型
Wan2.1-14Bwan2-1-14b-i2v-250225视觉大模型
Doubao-视频生成doubao-seedance-1-0-pro-250528视觉大模型

APIkey 和模型Endpoint ID获取到了,下面我们docker部署讲解

docker 部署

项目提供的docker 部署,我们直接到docker 目录下。

我们打开docker-compose.yml 查看(详细内容就不贴了)。主要用到了elasticsearch、etcd、minio、mysql、rocketmq 、Redis 等主流中间件。

数据持久化通过volumes 挂载卷的形式存放。熟悉dify小伙伴应该比较熟悉,内容都差不多。

通过 volumes 配置本地目录与容器目录映射,实现数据持久化:

服务这里用到了opencoze/opencoze:latest 比dify 服务要少一点。

配置模型。

从模板目录复制 doubao-seed-1.6 模型的模版文件,并粘贴到配置文件目录。

cd coze-studio# 复制模型配置模版cp backend/conf/model/template/model_template_ark_doubao-seed-1.6.yaml backend/conf/model/ark_doubao-seed-1.6.yaml

在配置文件目录下,修改模版文件。

设置 idmeta.conn_config.api_keymeta.conn_config.model 字段,并保存文件。

上面配置完成后,我们就可以启动docker了。我们这里用windows上安装的WSL 来实现。

关于WSL 安装可以看我之前的文章《Windows 用户狂喜!免费玩转顶级 AI 编程工具 Claude Code,步骤全揭秘

目前它这个开源的代码和脚本不支持windows Docker Desktop 安装,结果改了一个地方还有其他地方,所以就没继续折腾了。

一键启动我之前的WSL toggle-wsl.bat

用linux 命令行切换到上面下载的代码目录下

# 启动服务cd dockercp .env.example .env#Linux 适用docker compose --profile '*' up -d

这个启动时间会比较长,需要提前下载镜像然后在启动程序。国内小伙伴可能会遇到下载镜像下载不了的问题。大家也可以借助容器代理来间接来解决问题,这里就不详细展开了。关于镜像加速可以参考这个文章 blog.xuanyuan.me/archives/11…

在启动docker 容器会遇到这下面这些问题

这个问题主要是目前开源项目在linux平台上运行的,而我们windows 平台上安装setup_es.sh脚本是linux 格式

具体详细问题可以参考github上 github.com/coze-dev/co…

这里我们就不做详细展开。我们可以使用我改造后的docker-compose.yml 来解决上述的问题

另外也要注意和本地电脑上某些应用端口比要冲突,比如我的3306端口已经被数据库使用了。我该了5306

minio 端口也是 我修改成9901

大家可以根据自己电脑实际情况修改。

可以用我这个docker-compose.yml 来覆盖原来的

x-env-file: &env_file  - .envservices:  mysql:    image: mysql:8.4.5    container_name: coze-mysql    environment:      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root}      MYSQL_DATABASE: ${MYSQL_DATABASE:-opencoze}      MYSQL_USER: ${MYSQL_USER:-coze}      MYSQL_PASSWORD: ${MYSQL_PASSWORD:-coze123}    profiles: ['middleware', 'mysql-setup', 'mysql']    env_file: *env_file    ports:      - '3306:3306'    volumes:      - mysql_data:/var/lib/mysql    command:      - --character-set-server=utf8mb4      - --collation-server=utf8mb4_unicode_ci    healthcheck:      test:        [          'CMD',          'mysqladmin',          'ping',          '-h',          'localhost',          '-u$${MYSQL_USER}',          '-p$${MYSQL_PASSWORD}',        ]      interval: 10s      timeout: 5s      retries: 5      start_period: 30s    networks:      - coze-network  redis:    image: bitnami/redis:8.0    container_name: coze-redis    user: root    privileged: true    profiles: ['middleware']    env_file: *env_file    environment:      - REDIS_AOF_ENABLED=${REDIS_AOF_ENABLED:-no}      - REDIS_PORT_NUMBER=${REDIS_PORT_NUMBER:-6379}      - REDIS_IO_THREADS=${REDIS_IO_THREADS:-4}      - ALLOW_EMPTY_PASSWORD=${ALLOW_EMPTY_PASSWORD:-yes}    ports:      - '6379:6379'    volumes:      - redis_data:/bitnami/redis/data:rw,Z    command: >      bash -c "        /opt/bitnami/scripts/redis/setup.sh        # Set proper permissions for data directories        chown -R redis:redis /bitnami/redis/data        chmod g+s /bitnami/redis/data        exec /opt/bitnami/scripts/redis/entrypoint.sh /opt/bitnami/scripts/redis/run.sh      "    depends_on:      minio-setup:        condition: service_completed_successfully      elasticsearch-setup:        condition: service_completed_successfully      mysql-setup-schema:        condition: service_completed_successfully      mysql-setup-init-sql:        condition: service_completed_successfully    healthcheck:      test: ['CMD', 'redis-cli', 'ping']      interval: 5s      timeout: 10s      retries: 10      start_period: 10s    networks:      - coze-network  # rocketmq-namesrv:  #   image: apache/rocketmq:5.3.2  #   container_name: coze-rocketmq-namesrv  #   privileged: true  #   user: root  #   profiles: ['middleware']  #   env_file: *env_file  #   ports:  #     - '9876:9876'  #   volumes:  #     - ./data/rocketmq/namesrv/logs:/home/rocketmq/logs:rw,Z  #     - ./data/rocketmq/namesrv/store:/home/rocketmq/store:rw,Z  #   environment:  #     - ALLOW_ANONYMOUS_LOGIN=yes  #   command: >  #     bash -c "  #       # Set proper permissions for data directories  #       mkdir -p /home/rocketmq/logs /home/rocketmq/store  #       mkdir -p /home/rocketmq/logs/rocketmqlogs  #       touch /home/rocketmq/logs/rocketmqlogs/tools.log  #       touch /home/rocketmq/logs/rocketmqlogs/tools_default.log  #       chown -R rocketmq:rocketmq /home/rocketmq/logs /home/rocketmq/store  #       chmod g+s /home/rocketmq/logs /home/rocketmq/store  #       echo 'Starting RocketMQ NameServer...'  #       sh mqnamesrv  #     "  #   healthcheck:  #     test: ['CMD', 'sh', 'mqadmin', 'clusterList', '-n', 'localhost:9876']  #     interval: 5s  #     timeout: 10s  #     retries: 10  #     start_period: 10s  #   networks:  #     - coze-network  # rocketmq-broker:  #   image: apache/rocketmq:5.3.2  #   container_name: coze-rocketmq-broker  #   privileged: true  #   user: root  #   profiles: ['middleware']  #   env_file: *env_file  #   ports:  #     - '10909:10909'  #     - '10911:10911'  #     - '10912:10912'  #   volumes:  #     - ./data/rocketmq/broker/logs:/home/rocketmq/logs:rw,Z  #     - ./data/rocketmq/broker/store:/home/rocketmq/store:rw,Z  #     - ./volumes/rocketmq/broker.conf:/home/rocketmq/conf/broker.conf:rw,Z  #   networks:  #     - coze-network  #   command: >  #     bash -c '  #       # Set proper permissions  #       mkdir -p /home/rocketmq/logs/rocketmqlogs /home/rocketmq/store  #       touch /home/rocketmq/logs/rocketmqlogs/tools.log \  #             /home/rocketmq/logs/rocketmqlogs/tools_default.log  #       chown -R rocketmq:rocketmq /home/rocketmq/logs /home/rocketmq/store  #       chmod g+s /home/rocketmq/logs /home/rocketmq/store  #       echo "Starting RocketMQ Broker..."  #       sh mqbroker -n rocketmq-namesrv:9876 -c /home/rocketmq/conf/broker.conf &  #       echo "Waiting for Broker registration..."  #       broker_ready=false  #       for i in {1..60}; do  #         if sh mqadmin clusterList -n rocketmq-namesrv:9876 \  #            | grep -q "DefaultCluster.*broker-a"; then  #           echo "Registered."  #           broker_ready=true  #           break  #         fi  #         echo "Not ready, retry $$i/60..."  #         sleep 1  #       done  #       if [ "$$broker_ready" = false ]; then  #         echo "ERROR: registration timed out."  #         exit 1  #       fi  #       echo "Creating topics..."  #       for t in opencoze_knowledge opencoze_search_app opencoze_search_resource \  #                 %RETRY%cg_knowledge %RETRY%cg_search_app %RETRY%cg_search_resource; do  #         sh mqadmin updateTopic -n rocketmq-namesrv:9876 \  #           -c DefaultCluster -t "$$t"  #       done  #       touch /tmp/rocketmq_ready  #       echo "Broker started successfully."  #       wait  #     '  #   depends_on:  #     - rocketmq-namesrv  #   healthcheck:  #     test: ['CMD-SHELL', '[ -f /tmp/rocketmq_ready ]']  #     interval: 10s  #     timeout: 10s  #     retries: 10  #     start_period: 10s  elasticsearch:    image: bitnami/elasticsearch:8.18.0    container_name: coze-elasticsearch    user: root    privileged: true    profiles: ['middleware']    env_file: *env_file    environment:      - TEST=1      # Add Java certificate trust configuration      # - ES_JAVA_OPTS=-Djdk.tls.client.protocols=TLSv1.2 -Dhttps.protocols=TLSv1.2 -Djavax.net.ssl.trustAll=true -Xms4096m -Xmx4096m    ports:      - '9200:9200'    volumes:      - elasticsearch_data:/bitnami/elasticsearch/data      - ./volumes/elasticsearch/elasticsearch.yml:/tmp/my_elasticsearch.yml      - ./volumes/elasticsearch/analysis-smartcn.zip:/opt/bitnami/elasticsearch/analysis-smartcn.zip:rw,Z    healthcheck:      test:        [          'CMD-SHELL',          'curl -f http://localhost:9200 && [ -f /tmp/es_plugins_ready ]',        ]      interval: 5s      timeout: 10s      retries: 10      start_period: 10s    networks:      - coze-network    # Install smartcn analyzer plugin    command: >      bash -c "        /opt/bitnami/scripts/elasticsearch/setup.sh        # Set proper permissions for data directories        chown -R elasticsearch:elasticsearch /bitnami/elasticsearch/data        chmod g+s /bitnami/elasticsearch/data        cp /tmp/my_elasticsearch.yml /opt/bitnami/elasticsearch/config/my_elasticsearch.yml        # Create plugin directory        mkdir -p /bitnami/elasticsearch/plugins;        # Unzip plugin to plugin directory and set correct permissions        echo 'Installing smartcn plugin...';        if [ ! -d /opt/bitnami/elasticsearch/plugins/analysis-smartcn ]; then          # Download plugin package locally          echo 'Copying smartcn plugin...';          cp /opt/bitnami/elasticsearch/analysis-smartcn.zip /tmp/analysis-smartcn.zip           elasticsearch-plugin install file:///tmp/analysis-smartcn.zip          if [[ "$?" != "0" ]]; then            echo 'Plugin installation failed, exiting operation';            rm -rf /opt/bitnami/elasticsearch/plugins/analysis-smartcn            exit 1;          fi;          rm -f /tmp/analysis-smartcn.zip;        fi;        # Create marker file indicating plugin installation success        touch /tmp/es_plugins_ready;        echo 'Plugin installation successful, marker file created';        # Start Elasticsearch        exec /opt/bitnami/scripts/elasticsearch/entrypoint.sh /opt/bitnami/scripts/elasticsearch/run.sh        echo -e "⏳ Adjusting Elasticsearch disk watermark settings..."      "  minio:    image: minio/minio:RELEASE.2025-06-13T11-33-47Z-cpuv1    container_name: coze-minio    user: root    privileged: true    profiles: ['middleware']    env_file: *env_file    ports:      - '9000:9000'      - '9001:9001'    volumes:      - ./data/minio:/data    environment:      MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}      MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin123}      MINIO_DEFAULT_BUCKETS: ${MINIO_BUCKET:-opencoze},${MINIO_DEFAULT_BUCKETS:-milvus}    command: server /data --console-address ":9001"    healthcheck:      test:        [          'CMD-SHELL',          '/usr/bin/mc alias set health_check http://localhost:9000 ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD} && /usr/bin/mc ready health_check',        ]      interval: 30s      timeout: 10s      retries: 3      start_period: 30s    networks:      - coze-network  etcd:    image: bitnami/etcd:3.5    container_name: coze-etcd    user: root    privileged: true    profiles: ['middleware']    env_file: *env_file    environment:      - ETCD_AUTO_COMPACTION_MODE=revision      - ETCD_AUTO_COMPACTION_RETENTION=1000      - ETCD_QUOTA_BACKEND_BYTES=4294967296      - ALLOW_NONE_AUTHENTICATION=yes    ports:      - 2379:2379      - 2380:2380    volumes:      - ./data/bitnami/etcd:/bitnami/etcd:rw,Z      - ./volumes/etcd/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml:ro,Z    command: >      bash -c "        /opt/bitnami/scripts/etcd/setup.sh        # Set proper permissions for data and config directories        chown -R etcd:etcd /bitnami/etcd        chmod g+s /bitnami/etcd        exec /opt/bitnami/scripts/etcd/entrypoint.sh /opt/bitnami/scripts/etcd/run.sh      "    healthcheck:      test: ['CMD', 'etcdctl', 'endpoint', 'health']      interval: 5s      timeout: 10s      retries: 10      start_period: 10s    networks:      - coze-network  milvus:    container_name: coze-milvus    image: milvusdb/milvus:v2.5.10    user: root    privileged: true    profiles: ['middleware']    env_file: *env_file    command: >      bash -c "        # Set proper permissions for data directories        chown -R root:root /var/lib/milvus        chmod g+s /var/lib/milvus        exec milvus run standalone      "    security_opt:      - seccomp:unconfined    environment:      ETCD_ENDPOINTS: coze-etcd:2379      MINIO_ADDRESS: coze-minio:9000      MINIO_BUCKET_NAME: ${MINIO_BUCKET:-milvus}      MINIO_ACCESS_KEY_ID: ${MINIO_ROOT_USER:-minioadmin}      MINIO_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD:-minioadmin123}      MINIO_USE_SSL: false      LOG_LEVEL: debug    volumes:      - ./data/milvus:/var/lib/milvus:rw,Z    healthcheck:      test: ['CMD', 'curl', '-f', 'http://localhost:9091/healthz']      interval: 5s      timeout: 10s      retries: 10      start_period: 10s    ports:      - '19530:19530'      - '9091:9091'    depends_on:      etcd:        condition: service_healthy      minio:        condition: service_healthy    networks:      - coze-network  nsqlookupd:    image: nsqio/nsq:v1.2.1    container_name: coze-nsqlookupd    command: /nsqlookupd    profiles: ['middleware']    ports:      - '4160:4160'      - '4161:4161'    networks:      - coze-network    healthcheck:      test: ['CMD-SHELL', 'nsqlookupd --version']      interval: 5s      timeout: 10s      retries: 10      start_period: 10s  nsqd:    image: nsqio/nsq:v1.2.1    container_name: coze-nsqd    command: /nsqd --lookupd-tcp-address=coze-nsqlookupd:4160 --broadcast-address=coze-nsqd    profiles: ['middleware']    ports:      - '4150:4150'      - '4151:4151'    depends_on:      nsqlookupd:        condition: service_healthy    networks:      - coze-network    healthcheck:      test: ['CMD-SHELL', '/nsqd --version']      interval: 5s      timeout: 10s      retries: 10      start_period: 10s  nsqadmin:    image: nsqio/nsq:v1.2.1    container_name: coze-nsqadmin    command: /nsqadmin --lookupd-http-address=coze-nsqlookupd:4161    profiles: ['middleware']    ports:      - '4171:4171'    depends_on:      nsqlookupd:        condition: service_healthy    networks:      - coze-network  elasticsearch-setup:    image: alpine/curl:8.12.1    container_name: coze-elasticsearch-setup    profiles: ['middleware', 'volcano-setup']    env_file: *env_file    depends_on:      elasticsearch:        condition: service_healthy    volumes:      - ./volumes/elasticsearch/setup_es.sh:/setup_es.sh      - ./volumes/elasticsearch/es_index_schema:/es_index_schema    command:      - /bin/sh      - -c      - |        set -ex        /setup_es.sh        echo 'Elasticsearch setup complete.'    networks:      - coze-network    restart: 'no'  minio-setup:    image: minio/mc:RELEASE.2025-05-21T01-59-54Z-cpuv1    container_name: coze-minio-setup    profiles: ['middleware']    env_file: *env_file    depends_on:      minio:        condition: service_healthy    volumes:      - ./volumes/minio/default_icon/:/default_icon      - ./volumes/minio/official_plugin_icon/:/official_plugin_icon    entrypoint: >      /bin/sh -c  "        (/usr/bin/mc alias set localminio http://coze-minio:9000 ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD} && \        /usr/bin/mc mb --ignore-existing localminio/${STORAGE_BUCKET} && \        /usr/bin/mc cp --recursive /default_icon/ localminio/${STORAGE_BUCKET}/default_icon/ && \        /usr/bin/mc cp --recursive /official_plugin_icon/ localminio/${STORAGE_BUCKET}/official_plugin_icon/ && \        echo 'upload files to minio complete: Files uploaded to ${STORAGE_BUCKET} bucket.') || exit 1; \      "    networks:      - coze-network    restart: 'no'  mysql-setup-schema:    image: arigaio/atlas:0.35.0-community-alpine    container_name: coze-mysql-setup-schema    profiles: ['middleware', 'mysql-setup', 'run-server']    env_file: *env_file    depends_on:      mysql:        condition: service_healthy    volumes:      - ./atlas/opencoze_latest_schema.hcl:/opencoze_latest_schema.hcl    entrypoint:      - /bin/sh      - -c      - |        set -ex        TMP_ATLAS_URL="${ATLAS_URL}"        if [ "${MYSQL_HOST}" = "localhost" ] || [ "${MYSQL_HOST}" = "127.0.0.1" ]; then            echo "MYSQL_HOST is localhost or 127.0.0.1, replacing with docker network address"            TMP_ATLAS_URL="mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@mysql:${MYSQL_PORT}/${MYSQL_DATABASE}?charset=utf8mb4&parseTime=True"        fi        echo "final atlas url: $${TMP_ATLAS_URL}"        for i in `seq 1 60`; do             if atlas schema apply \                 -u "$${TMP_ATLAS_URL}" \                 --to file:///opencoze_latest_schema.hcl \                 --exclude "atlas_schema_revisions,table_*" \                 --auto-approve; then                 echo "MySQL setup complete."                 exit 0             fi             echo "atlas schema apply failed, retrying...($$i/60)"             sleep 1         done         echo "MySQL setup failed after 60 retries."         exit 1    networks:      - coze-network  mysql-setup-init-sql:    image: mysql:8.4.5    container_name: coze-mysql-setup-init-sql    profiles: ['middleware', 'mysql-setup', 'run-server', 'volcano-setup']    env_file: *env_file    depends_on:      mysql:        condition: service_healthy    command:      - /bin/sh      - -c      - |        set -ex        for i in $(seq 1 60); do          DB_HOST="$${MYSQL_HOST}"          if [ "$${MYSQL_HOST}" = "localhost" ] || [ "$${MYSQL_HOST}" = "127.0.0.1" ]; then            DB_HOST="mysql"          fi          if mysql -h "$${DB_HOST}" -P"$${MYSQL_PORT}" -u"$${MYSQL_USER}" -p"$${MYSQL_PASSWORD}" "$${MYSQL_DATABASE}" < /schema.sql && \             mysql -h "$${DB_HOST}" -P"$${MYSQL_PORT}" -u"$${MYSQL_USER}" -p"$${MYSQL_PASSWORD}" "$${MYSQL_DATABASE}" < /sql_init.sql; then            echo 'MySQL init success.'            exit 0          fi          echo "Retrying to connect to mysql... ($$i/60)"          sleep 1        done        echo 'Failed to init mysql db.'        exit 1    volumes:      - ./volumes/mysql/sql_init.sql:/sql_init.sql      - ./volumes/mysql/schema.sql:/schema.sql    networks:      - coze-network    restart: 'no'  coze-server:    # build:    #   context: ../    #   dockerfile: backend/Dockerfile    image: opencoze/opencoze:latest    container_name: coze-server    profiles: ['run-server']    env_file: *env_file    environment:      LISTEN_ADDR: 0.0.0.0:8888    networks:      - coze-network    ports:      - '8888:8888'      - '8889:8889'    volumes:      - .env:/app/.env      - ../backend/conf:/app/resources/conf      # - ../backend/static:/app/resources/static    depends_on:      mysql:        condition: service_healthy      redis:        condition: service_healthy      # rocketmq-namesrv:      #   condition: service_healthy      # rocketmq-broker:      #   condition: service_healthy      elasticsearch:        condition: service_healthy      minio:        condition: service_healthy      milvus:        condition: service_healthy      minio-setup:        condition: service_completed_successfully      elasticsearch-setup:        condition: service_completed_successfully      mysql-setup-init-sql:        condition: service_completed_successfully    command: ['/app/bootstrap.sh']networks:  coze-network:    driver: bridgevolumes:  mysql_data:  elasticsearch_data:  redis_data:

部署完成后我们就可以通过URL 地址访问了(http://localhost:8888/sign?redirect=%2Fspace)

3 本地coze体验

输入网址http://localhost:8888/

这样我们就看到本地搭建的COZE 了。

创建智能体

点击创建后填写名字就看到我们熟悉的COZE 了

我们之前配置文件写的是doubao的模型,大家也可以根据自己的需要修改和添加模型

我们可以将配置文件复制到F:\temp\coze-studio\backend\conf\model 目录下,添加新的模型

验证测试

接下来我们在刚才配置的智能体 做个简单聊天对话功能

好了一个简单的聊天对话的智能体就配置完成了。

其他功能大家自行去研究。

4.总结

今天主要带大家了解并实现了 Coze Studio 开源版的本地安装与使用。此方案借助火山方舟等主流模型,为开发者和用户提供了一个低代码、无代码的 AI 应用开发平台,简化了 AI 机器人的开发流程。

该方案不仅解决了开发者在 AI 应用开发过程中面临的技术门槛问题,通过详细的源码下载、模型配置和 docker 部署步骤,让用户能够快速构建基于 AI 模型的问答 Bot、智能体、AI 应用和插件,并将其部署到各种社交平台和即时通讯应用中。还提供了一种可复用的本地开发与部署思路,其中模型配置及 docker 部署的过程详细且具有通用性,对于有类似需求的项目具有参考价值。

需要注意的是,在部署过程中可能会遇到一些问题,如镜像下载缓慢、脚本格式不兼容、端口冲突等,大家可以根据实际情况进行解决。另外,本文以 doubao - seed - 1.6 模型为例进行介绍,大家也可以根据自己的需要修改和添加其他模型。

感兴趣的小伙伴可以按照本文步骤去尝试本地安装和使用 Coze Studio 开源版,体验低代码、无代码的 AI 应用开发乐趣。今天的分享就到这里结束了,我们下一篇文章见。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Coze Studio AI应用开发 低代码 Docker部署 字节跳动
相关文章