一个基于Python的类似Cursor的代码索引引擎,可将Git仓库代码转化为代码片段并生成语义embedding,根据用户query实现智能代码搜索和检索。
- 代码片段生成:自动处理Git仓库,将代码转换为可搜索的代码片段
- 语义搜索:生成语义embeddings,基于用户查询实现智能代码检索
- 多语言支持:针对Python、Java、Go、JavaScript和TypeScript进行优化
- 灵活后端:支持多种向量数据库后端和embedding服务提供商
- MCP集成:内置MCP(模型上下文协议)服务调用支持
- 部署就绪:为不同环境提供灵活的部署选项
- Python 3.12+
- Git
# 克隆仓库
git clone https://github.com/we0-dev/we0-index
cd we0-index
# 设置环境配置
cp .env.example .env
vim .env
# 配置应用设置
vim resource/dev.yaml
# 创建虚拟环境并安装依赖
uv venv
# Linux/macOS
source .venv/bin/activate
# Windows
.venv\Scripts\activate
uv sync# 安装开发依赖
uv sync --frozen- 环境变量:将
.env.example复制为.env并配置您的设置 - 应用配置:编辑
resource/dev.yaml以自定义您的部署 - 向量数据库:配置您首选的向量数据库后端
- Embedding服务:设置您的embedding服务提供商
We0-index支持两种运行模式:Web API服务和MCP协议服务。
启动FastAPI Web服务器,提供RESTful API接口:
# 激活虚拟环境
# Linux/macOS
source .venv/bin/activate
# Windows
.venv\Scripts\activate
# 启动Web服务
python main.py --mode fastapiWeb服务将在配置的主机和端口上启动(默认配置请查看resource/dev.yaml)。
启动MCP(模型上下文协议)服务,用于AI集成:
# 激活虚拟环境
# Linux/macOS
source .venv/bin/activate
# Windows
.venv\Scripts\activate
# 启动MCP服务(默认使用streamable-http传输协议)
python main.py --mode mcp
# 指定其他传输协议
python main.py --mode mcp --transport stdio
python main.py --mode mcp --transport websocketMCP服务默认使用streamable-http传输协议运行,可与支持MCP的AI客户端集成。
模式参数:
--mode fastapi:启动Web API服务--mode mcp:启动MCP协议服务
传输协议参数(仅适用于MCP模式):
--transport streamable-http:使用HTTP流传输(默认)--transport stdio:使用标准输入输出传输--transport websocket:使用WebSocket传输
We0-index采用模块化架构,支持:
- 代码解析器:特定语言的代码解析和片段提取
- Embedding引擎:多种embedding服务集成
- 向量存储:可插拔的向量数据库后端
- 搜索接口:用于代码搜索的RESTful API和CLI
- MCP协议:用于AI集成的模型上下文协议
我们欢迎贡献!请查看我们的贡献指南了解详情。
- Fork 仓库
- 创建您的功能分支 (
git checkout -b feature/amazing-feature) - 提交您的更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 打开一个Pull Request
本项目基于MIT许可证 - 查看LICENSE文件了解详情。
详细文档请访问我们的文档站点或查看docs/目录。
如果您遇到任何问题,请在GitHub上创建issue。
- 📧 邮箱:we0@wegc.cn
- 💬 讨论:GitHub Discussions
- 📖 Wiki:项目Wiki
- 感谢所有帮助改进这个项目的贡献者
- 灵感来源于Cursor的代码智能方法
- 使用现代Python工具和最佳实践构建
由We0-dev团队用❤️制作