Refly项目开发环境搭建与贡献指南
项目概述
Refly是一个AI原生的创作引擎,提供直观的自由画布界面,集成了多线程对话、知识库RAG(检索增强生成)集成、上下文记忆和智能搜索能力。作为一个开源项目,它采用现代化的技术栈构建,包括Nest.js后端和React前端。
开发环境准备
系统要求
在开始开发前,请确保您的系统满足以下基本要求:
- Docker:版本20.10.0或更高,用于运行中间件服务
- Node.js:推荐使用LTS版本20.19.0
- 包管理器:推荐使用pnpm(版本10.9.0或更高)
环境配置步骤
1. Node.js安装
建议使用nvm(Node版本管理器)来安装和管理Node.js版本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
source ~/.bashrc # 如果使用zsh,改为source ~/.zshrc
nvm install 20.19.0
2. 验证依赖
安装完成后,请验证各依赖版本:
docker version
node -v # 应显示v20.19.0
pnpm -v # 应显示10.9.0或更高
3. 启用corepack
Corepack是Node.js内置的包管理器管理器:
corepack enable
项目启动流程
1. 启动中间件服务
Refly依赖多个中间件服务,使用Docker Compose可以一键启动:
docker compose -f deploy/docker/docker-compose.middleware.yml -p refly up -d
启动后,检查服务状态:
docker ps | grep refly_
2. 安装项目依赖
pnpm install
3. 配置环境变量
复制开发环境配置文件:
pnpm copy-env:develop
4. 启动开发服务器
pnpm build
pnpm dev
开发服务器启动后,可通过http://localhost:5173访问应用。
项目架构解析
后端架构
Refly后端采用Nest.js框架,主要模块包括:
-
AI核心功能:
- LLM集成与管理
- RAG管道实现
- 上下文记忆系统
-
画布服务:
- 状态管理
- 实时协作支持
-
API层:
- RESTful接口
- WebSocket实时通信
目录结构示例:
apps/server/
├── src/
│ ├── controllers/ # API路由处理器
│ ├── services/ # 业务逻辑实现
│ ├── ai/ # AI功能实现
│ │ ├── llm/ # 大语言模型集成
│ │ ├── rag/ # 检索增强生成
│ │ └── memory/ # 上下文记忆
前端架构
前端采用React构建,主要特点:
- 模块化组件设计
- 共享UI组件库
- 国际化支持
- 状态管理集成
目录结构示例:
apps/web/
├── src/
│ ├── components/ # React组件
│ ├── styles/ # 全局样式
packages/
├── ai-workspace-common/ # 共享组件库
│ ├── src/
│ │ ├── components/ # 画布和编辑器组件
贡献流程指南
问题分类与优先级
功能请求
- 核心AI功能和画布功能:最高优先级
- 知识库和协作功能:中等优先级
- UI/UX改进:低优先级
- 实验性功能:未来考虑
其他问题
- 核心功能缺陷:关键优先级
- 性能问题:中等优先级
- 文档更新:低优先级
开发建议
- 代码风格:遵循项目现有风格
- 测试覆盖:新增功能应包含相应测试
- 文档更新:影响用户或开发者的变更需更新文档
- 分支策略:
- 主要功能合并到develop分支
- 小修复可直接提交到main分支
常见问题解决
-
Docker容器不健康:
- 检查容器日志:
docker logs <container_id>
- 确认端口未被占用
- 尝试重建容器
- 检查容器日志:
-
依赖安装失败:
- 清理缓存:
pnpm store prune
- 检查网络连接
- 确保Node.js版本正确
- 清理缓存:
-
环境变量问题:
- 确认.env.development文件存在
- 检查变量命名是否正确
- 重启开发服务器
通过本文档,开发者可以快速了解Refly项目的架构、搭建开发环境并开始贡献代码。项目采用现代化的开发流程和工具链,旨在提供高效的AI创作体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考