当前位置: 首页 > news >正文

Coze Studio概览(一)

字节的Coze刚开源,我先给大家来一波简要分析。

Coze Studio 技术栈详情

后端技术栈

核心技术

  • Go版本: 1.24.0
  • Web框架: Cloudwego Hertz (高性能HTTP框架)
  • 架构模式: 微服务架构 + DDD(领域驱动设计)

主要依赖库

  • AI引擎: Cloudwego Eino (AI智能体和工作流运行时)
  • 模型支持:
    • OpenAI、Claude、DeepSeek、Gemini
    • 火山方舟(Ark)、通义千问等
  • 数据库: GORM (MySQL/SQLite驱动)
  • 缓存: Redis (go-redis/v9)
  • 消息队列: Kafka (IBM/sarama)、RocketMQ
  • 搜索引擎: Elasticsearch
  • 向量数据库: Milvus
  • 对象存储: 火山引擎TOS、MinIO
  • 配置管理: Viper、YAML
  • 测试框架: Testify、GoMock

项目结构

backend/
├── api/           # API层 (Handler, Router, Middleware)
├── application/   # 应用层 (Application Services)
├── domain/        # 领域层 (Domain Models, Entities)
├── infra/         # 基础设施层 (Repository实现)
├── crossdomain/   # 跨域服务
├── pkg/           # 通用工具包
├── conf/          # 配置文件
└── types/         # 类型定义

前端技术栈

核心技术

  • 包管理: Rush.js (Microsoft的monorepo管理工具)
  • Node版本: >=16.13.0
  • 包管理器: pnpm 8.15.8
  • 构建工具: Rsbuild (基于Rspack的构建工具)
  • UI框架: React + TypeScript
  • 工作流编辑器: FlowGram (字节跳动开源的流程搭建引擎)

主要依赖

  • UI组件库: Semi Design (@coze-arch/bot-semi)
  • 状态管理: 自研Store系统
  • 国际化: @coze-arch/i18n
  • HTTP客户端: @coze-arch/bot-http
  • 代码编辑器: Monaco Editor
  • 工作流渲染: FlowGram + Fabric.js

项目结构

frontend/
├── apps/          # 应用入口
├── packages/      # 功能包
│   ├── arch/      # 架构层基础包
│   ├── common/    # 通用组件和工具
│   ├── workflow/  # 工作流相关
│   ├── agent-ide/ # 智能体IDE
│   └── studio/    # Studio核心功能
├── config/        # 配置文件
└── infra/         # 基础设施工具

数据存储

主要存储

  • 关系数据库: MySQL 8.4.5
  • 缓存数据库: Redis 8.0
  • 搜索引擎: Elasticsearch
  • 向量数据库: Milvus (用于知识库检索)

对象存储

  • 火山引擎TOS (主要)
  • MinIO (可选)

部署方案

容器化

  • 容器: Docker + Docker Compose
  • 最低配置: 2 Core、4 GB内存
  • 服务编排: 支持多Profile部署
    • middleware: 中间件服务
    • mysql-setup: 数据库初始化
    • web: 完整Web服务

Coze Studio 命令清单

开发环境搭建

前置要求

# 确保系统满足最低要求:2 Core、4 GB内存
# 安装Docker和Docker Compose并启动Docker服务
docker --version
docker-compose --version

快速开始

# 1. 克隆代码
git clone https://github.com/coze-dev/coze-studio.git
cd coze-studio# 2. 配置模型 (必须步骤)
# 复制模型配置模板
cp backend/conf/model/template/model_template_ark_doubao-seed-1.6.yaml backend/conf/model/ark_doubao-seed-1.6.yaml
# 编辑配置文件,设置id、meta.conn_config.api_key、meta.conn_config.model字段# 3. 部署并启动服务
cd docker
cp .env.example .env
docker compose --profile "*" up -d# 4. 访问应用
# 浏览器打开 http://localhost:8888/

开发模式命令

使用Makefile (推荐)

# 启动完整开发环境 (中间件 + Python + 服务器)
make debug# 单独构建前端
make fe# 单独构建并运行服务器
make server# 仅构建服务器(不运行)
make build_server# 启动中间件服务 (MySQL + Redis + Elasticsearch等)
make middleware# 启动完整Web服务
make web# 同步数据库
make sync_db# 导出数据库结构
make dump_db# 停止所有服务
make down# 清理所有数据(危险操作)
make clean# 设置Python环境
make python# 查看帮助
make help

直接使用脚本

# 前端相关
./scripts/setup_fe.sh    # 设置前端环境
./scripts/build_fe.sh    # 构建前端
./scripts/start_fe.sh    # 启动前端开发服务器# 后端相关
./scripts/setup/server.sh        # 构建服务器
./scripts/setup/db_migrate_apply.sh  # 数据库迁移
./scripts/setup/python.sh       # 设置Python环境

前端开发命令

使用Rush.js

cd frontend# 安装依赖
rush install# 构建所有包
rush rebuild# 构建特定应用
rush rebuild -o @coze-studio/app# 运行开发服务器
rush start -p @coze-studio/app# 运行测试
rush test# 代码检查
rush lint# 代码格式化
rush prettier

后端开发命令

Go开发

cd backend# 安装依赖
go mod download# 构建
go build -o bin/coze-server .# 运行
./bin/coze-server# 测试
go test ./...# 代码格式化
go fmt ./...# 代码检查
go vet ./...

Docker命令

开发环境

# 启动所有服务
docker compose --profile "*" up -d# 启动特定Profile
docker compose --profile middleware up -d    # 仅中间件
docker compose --profile mysql-setup up -d  # 仅MySQL设置# 查看服务状态
docker compose ps# 查看日志
docker compose logs -f# 停止服务
docker compose down# 清理数据卷
docker compose down -v

数据库操作

# 数据库迁移
docker compose --profile mysql-setup up -d# 查看MySQL日志
docker logs coze-mysql# 连接MySQL
docker exec -it coze-mysql mysql -ucoze -pcoze123 opencoze

Git工作流

# 标准工作流
git checkout -b feature/your-feature
git add .
git commit -m "feat: your feature description"
git push origin feature/your-feature# 提交前检查
rush lint          # 代码检查
rush test          # 运行测试
go test ./...      # 后端测试
http://www.dtcms.com/a/301171.html

相关文章:

  • 力扣131:分割回文串
  • 详解赛灵思SRIO IP并提供一种FIFO封装SRIO的收发控制器仿真验证
  • 2025年Agent创业实战指南:从0到1打造高增长AI智能体项目
  • FPGA IP升级
  • input_handler和input_dev详解
  • 【AI阅读】20250717阅读输入
  • 深度学习在计算机视觉中的应用:对象检测
  • C++ auto 类型推导
  • Netty中 ? extends Future<? super V>这种的写法的理解
  • 2025年渗透测试面试题总结-2025年HW(护网面试) 73(题目+回答)
  • PDF文件被加密限制怎么办?专业级解除方案分享
  • mysql 快速上手
  • FFmpeg——参数详解
  • 3.JDK+JRE组件构成与协作
  • LeetCode 923.多重三数之和
  • 【AI论文】WebShaper:通过信息寻求形式化实现主动式数据合成
  • CIFAR100数据集实测-基于 AlexNet模型的压缩/Bagging/Boosting 探索
  • 创建的springboot工程java文件夹下还是文件夹而不是包
  • 大数据之路:阿里巴巴大数据实践——大数据领域建模综述
  • 卷积神经网络研讨
  • haproxy七层代理(知识点+相关实验部署)
  • 【奔跑吧!Linux 内核(第二版)】第5章:内核模块
  • 关系与逻辑运算 —— 寄存器操作的 “入门钥匙”
  • Linux: 调试器gdb/cgdb
  • 第六章 JavaScript 互操(2).NET调用JS
  • K-近邻算法
  • MPLS LDP(概念)
  • 20250707-2-Kubernetes 网络-Ingress暴露应用(http与https)_笔记
  • Flink窗口:解锁流计算的秘密武器
  • JavaEE初阶第十二期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(十)