OpenRAG 贡献者完整指南:3步搭建开发环境,提交你的第一个 PR
【免费下载链接】openragOpenRAG is a comprehensive, single package Retrieval-Augmented Generation platform built on Langflow, Docling, and Opensearch.项目地址: https://gitcode.com/GitHub_Trending/open/openrag
OpenRAG是一个基于 Langflow、Docling 和 OpenSearch 构建的检索增强生成(RAG)开源平台,支持文档摄取、语义搜索与 AI 对话。本文面向首次贡献的新手开发者,带你快速搭建 OpenRAG 开发环境、理解项目结构,并顺利提交你的第一个 Pull Request(PR)。
为什么选择 OpenRAG?
OpenRAG 采用 Monorepo(单体仓库)组织,前后端、SDK 与文档全部在同一仓库内,对新人非常友好:
| 组件 | 目录 | 技术栈 | 默认端口 |
|---|---|---|---|
| 后端 API | src/ | FastAPI(Python 3.13+) | 8000 |
| 前端界面 | frontend/ | Next.js + TypeScript + Tailwind | 3000 |
| RAG 流程引擎 | 容器(Langflow) | 文档摄取、检索、Agent 流程 | 7860 |
| Python SDK | sdks/python/ | openrag-sdk(PyPI) | - |
| TypeScript SDK | sdks/typescript/ | openrag-sdk(npm) | - |
| 文档站点 | docs/ | Docusaurus + MDX | - |
💡 新手建议:从文档、SDK 或前端样式入手提交第一个 PR,风险低、上手快;再逐步深入
src/后端核心逻辑。
开发环境前置要求:一次性装齐 4 个工具
在动手之前,确认本机已安装以下工具(只需选择一种容器运行时):
| 工具 | 版本要求 | 说明 |
|---|---|---|
| Docker / Podman / Colima | 最新版 | 容器运行时,三选一即可 |
| Python | 3.13+ | 搭配 uv 包管理器 |
| Node.js | 18+ | 前端开发依赖 |
| Make | 任意 | macOS / Linux 通常预装 |
⚠️内存提示:推荐至少分配8GB RAM给容器运行时(Podman/Colima),否则 OpenSearch、Langflow、Docling 同时运行时可能出现卡顿或崩溃。
一键搭建 OpenRAG 开发环境的步骤
完整流程记录在 CONTRIBUTING.md 中,核心只需 3 条命令:
# 1. 克隆仓库 git clone https://gitcode.com/GitHub_Trending/open/openrag cd openrag # 2. 校验工具 + 安装依赖并生成 .env make check_tools make setup # 3. 启动开发环境 make dev-cpu # 无 GPU 环境用这条;有 GPU 用 make dev启动后本地服务地址:
- 前端:
http://localhost:3000 - 后端 API 文档:
http://localhost:8000/docs - Langflow:
http://localhost:7860
配置环境变量:.env 中的 4 个关键项
make setup会从 .env.example 生成.env文件,启动前至少需要填写:
OPENAI_API_KEY= # LLM 服务密钥 OPENSEARCH_PASSWORD= # 需符合 OpenSearch 密码复杂度要求 LANGFLOW_SUPERUSER=admin # Langflow 超级用户 LANGFLOW_SUPERUSER_PASSWORD=其余变量均有默认值,可在 .env.example 中逐项查看注释说明。
推荐开发工作流:本地热重载提速迭代
纯容器模式适合体验,但**开发调试推荐"基础设施容器化 + 前后端本地运行"**的组合,改代码即时生效:
# 终端 1:启动 OpenSearch、Langflow 等基础设施 make dev-local-cpu # 终端 2:本地运行 FastAPI 后端(热重载) make backend # 终端 3:本地运行 Next.js 前端(热重载) make frontend # 终端 4(可选):启动文档解析服务 Docling make docling高频 Make 命令速查表
随时运行make help查看全部命令。日常最常用的:
| 命令 | 作用 |
|---|---|
make setup | 安装依赖并生成.env |
make dev-cpu | 容器化启动全栈(CPU) |
make backend/make frontend | 本地运行后端 / 前端 |
make test | 运行后端测试套件 |
make lint | 代码风格检查 |
make logs/make logs-be | 查看全部 / 后端日志 |
make status/make health | 容器状态 / 服务健康检查 |
make stop/make clean | 停止服务 / 停止并清除数据卷 |
熟悉项目结构:快速定位要改的代码
openrag/ ├── src/ # 后端 Python 代码 │ ├── api/ # REST API 端点 │ ├── services/ # 业务逻辑 │ ├── models/ # 数据模型 │ ├── connectors/ # 外部集成(S3、OneDrive 等) │ └── config/ # 配置管理 ├── frontend/ # Next.js 前端 ├── flows/ # Langflow 流程定义(JSON) ├── docs/ # 文档站点源码 ├── tests/ # 单元测试与集成测试 ├── Makefile # 开发命令入口 └── docker-compose.yml # 容器编排🔍 后端入口:src/main.py;REST 路由装配:src/api/router.py;前端页面:frontend/app/。
提交前测试清单:跑通 make test 与 make lint
- 跑测试:
make test(后端套件);涉及基础设施的改动跑make test-integration - 跑检查:
make lint确保通过代码风格检查 - 代码风格(摘自 CONTRIBUTING.md):
- 后端:遵循 PEP 8、使用类型注解、docstring 注释、
structlog日志 - 前端:TypeScript 类型安全、Tailwind 样式、遵循现有组件模式
- 后端:遵循 PEP 8、使用类型注解、docstring 注释、
- 补充测试:为新功能添加测试用例,修改已有代码时同步更新相关测试
⚠️ 所有 PR 必须通过 CI 测试(参见 .github/workflows/ 下的流水线定义)才会被合并。
提交第一个 PR:从分支到合并的 5 个规范步骤
- Fork 并建分支:从
main创建功能分支,命名清晰(如fix/search-filter-empty) - 写代码:小步提交,一个 PR 聚焦一个改动
- 补文档:修改功能时同步更新 docs/ 下的
.mdx文档;文档本地构建方式见 docs/docs/support/contribute.mdx - 写好 PR 描述:说明改动动机、影响范围与测试方法;如有关联 Issue,写明
Closes #编号 - 回应评审:关注维护者反馈并及时迭代
🤖AI 工具使用规范:若使用 AI 工具生成较多代码,请在 PR 描述中主动说明,并自行仔细审查代码质量——低质量的 AI 生成 PR 可能被直接关闭。
遇到环境问题怎么办?
- 端口冲突:确认 3000 / 7860 / 8000 / 9200 / 5601 未被占用
- 内存不足:调大容器运行时资源(Colima 8 CPU / 16GB 可流畅运行全栈)
- 彻底重置:
make stop && make clean,必要时make factory-reset恢复出厂状态
恭喜你完成 OpenRAG 开发环境搭建!🚀 现在打开 CONTRIBUTING.md 对照检查一遍,然后从仓库 Issue 列表中标记为"新手友好"的任务开始你的第一个 PR 吧。
【免费下载链接】openragOpenRAG is a comprehensive, single package Retrieval-Augmented Generation platform built on Langflow, Docling, and Opensearch.项目地址: https://gitcode.com/GitHub_Trending/open/openrag
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考