# test-agent **Repository Path**: yangshanxin2004/test-agent ## Basic Information - **Project Name**: test-agent - **Description**: 企业代码智能助手 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-10-10 - **Last Updated**: 2026-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 企业代码智能助手(RAG + Agent) 面向企业研发人员的代码智能助手,对内部 Git 业务代码、接口文档构建 RAG 知识库;同时提供 Agent 代码沙箱能力,解析报错日志、生成代码修复建议。 ## 功能特性 - 🔍 **代码智能检索** - 基于 RAG 的语义搜索,精准定位函数、类、业务逻辑 - 🤖 **Agent 智能诊断** - LangGraph Agent 自动分析报错日志、搜索代码、生成修复建议 - 📊 **向量知识库** - FAISS 向量库 + tree-sitter 语义分块 - 🔒 **权限管理** - 用户-仓库权限绑定,按角色隔离访问 - 💻 **代码沙箱** - 安全执行 Python 代码片段,支持验证修复方案 - 🌊 **流式输出** - SSE 实时推送,打字机效果 ## 技术栈 | 组件 | 技术选型 | |------|----------| | 后端框架 | FastAPI 0.115 | | ORM | SQLAlchemy 2.x | | 数据库 | SQLite (开发) / MySQL (生产) | | LLM | DeepSeek-Coder (兼容 OpenAI API) | | RAG | LangChain 1.0 + FAISS | | Agent | LangGraph | | 代码解析 | tree-sitter (Python/Java/JS) | | 前端 | React 18 + Vite + TypeScript + Ant Design + TailwindCSS | ## 快速开始 ### 1. 安装后端依赖 ```bash cd backend pip install -r requirements.txt ``` ### 2. 配置环境变量 ```bash copy .env.example .env # 编辑 .env,填写 DEEPSEEK_API_KEY(可选,不填则使用 Mock 模式) ``` ### 3. 启动后端 ```bash python run.py # 服务地址: http://localhost:8000 # API 文档: http://localhost:8000/docs ``` ### 4. 安装前端依赖 ```bash cd frontend npm install ``` ### 5. 启动前端 ```bash npm run dev # 服务地址: http://localhost:5173 ``` ### 默认账号 | 角色 | 用户名 | 密码 | |------|--------|------| | 管理员 | admin | admin123 | ## 项目结构 ``` test-agent/ ├── backend/ │ ├── app/ │ │ ├── api/ │ │ │ ├── dependencies.py # 认证依赖注入 │ │ │ └── routes/ │ │ │ ├── auth.py # 认证路由 │ │ │ ├── repositories.py # 仓库管理 │ │ │ └── chat.py # 对话问答(SSE流式) │ │ ├── core/ │ │ │ ├── config.py # 全局配置 │ │ │ ├── logging.py # 日志 │ │ │ └── security.py # JWT/密码哈希 │ │ ├── db/ │ │ │ └── database.py # 数据库连接 │ │ ├── models/ # SQLAlchemy 模型 │ │ ├── rag/ # RAG 模块 │ │ │ ├── code_parser.py # tree-sitter 代码解析 │ │ │ ├── embeddings.py # Embedding 管理 │ │ │ ├── vector_store.py # FAISS 向量存储 │ │ │ ├── retriever.py # 检索器 │ │ │ ├── pipeline.py # RAG 问答管道 │ │ │ ├── git_service.py # Git 仓库管理 │ │ │ └── llm_service.py # LLM 服务 │ │ ├── agent/ # Agent 模块 │ │ │ ├── agent.py # LangGraph Agent │ │ │ ├── tools.py # Agent 工具集 │ │ │ └── sandbox.py # 代码沙箱 │ │ ├── schemas/ # Pydantic Schema │ │ ├── utils/ │ │ │ └── sse.py # SSE 流式工具 │ │ └── main.py # 应用入口 │ ├── data/ │ │ ├── faiss/ # 向量库数据 │ │ └── sample_code/ # 示例代码 │ ├── requirements.txt │ └── run.py └── frontend/ ├── src/ │ ├── api/client.ts # API 客户端 + SSE 解析 │ ├── store/index.ts # Zustand 全局状态 │ ├── pages/ │ │ ├── Login.tsx # 登录页 │ │ ├── Chat.tsx # 聊天主页 │ │ └── Repos.tsx # 仓库管理 │ ├── App.tsx │ └── main.tsx └── package.json ``` ## API 接口 ### 认证 - `POST /api/v1/auth/login` - 用户登录 - `GET /api/v1/auth/me` - 获取当前用户 ### 仓库管理 - `GET /api/v1/repositories` - 获取可访问仓库列表 - `POST /api/v1/repositories` - 创建仓库(管理员) - `POST /api/v1/repositories/{id}/sync` - 同步/索引仓库 - `POST /api/v1/repositories/{id}/permissions` - 授予权限 ### 对话问答(核心) - `POST /api/v1/chat/ask` - 非流式问答 - `POST /api/v1/chat/stream` - SSE 流式问答 ⭐ - `POST /api/v1/chat/run-code` - 沙箱执行代码 - `POST /api/v1/chat/analyze-error` - 错误日志分析 ## SSE 事件协议 ```typescript // 事件类型 type SSEEventType = 'sources' | 'token' | 'thinking' | 'agent_step' | 'done' | 'error' // sources - 检索到的代码来源 { "event": "sources", "data": [ { "file_path": "...", "chunk_name": "...", "content": "...", "score": 0.95 } ] } // token - LLM 增量 token { "event": "token", "data": "你" } { "event": "token", "data": "好" } // thinking - Agent 思考过程 { "event": "thinking", "data": "📋 分析问题..." } // agent_step - Agent 工具调用 { "event": "agent_step", "data": { "step": "search_code", "detail": "..." } } // done - 生成结束 { "event": "done", "data": { "answer": "...", "sources": [...] } } ``` ## 安全设计 - **代码沙箱**:AST 黑名单检查 + 子进程隔离 + 超时终止 + 输出大小限制 - **权限控制**:用户-仓库权限表,检索时按权限过滤向量搜索范围 - **认证**:JWT Bearer Token,bcrypt 密码哈希 ## 许可证 MIT