# 准入 **Repository Path**: ding-yuwei/access ## Basic Information - **Project Name**: 准入 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-22 - **Last Updated**: 2026-02-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI智能核查引擎 基于Django 5.2+ + Django REST Framework (DRF) 实现的AI智能核查引擎后端API系统。 ## 功能特性 - ✅ 客户准入申请管理 - ✅ AI智能核查(异步处理) - ✅ 风险评分计算(XGBoost模型) - ✅ 知识图谱查询(Neo4j) - ✅ 决策理由生成(OpenAI/LLM) - ✅ 批量核查支持 - ✅ 任务状态追踪 - ✅ RESTful API接口 ## 技术栈 - **Web框架**: Django 5.2+ - **API框架**: Django REST Framework - **异步任务**: Celery + Redis - **数据库**: MySQL 8.0+ / PostgreSQL - **缓存**: Redis - **机器学习**: XGBoost - **图数据库**: Neo4j - **AI模型**: OpenAI API / 本地LLM ## 项目结构 ``` zhunru/ ├── manage.py ├── requirements.txt ├── .env.example ├── zhunru/ │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ ├── wsgi.py │ ├── asgi.py │ └── celery.py └── ai_check_engine/ ├── __init__.py ├── apps.py ├── models.py ├── serializers.py ├── views.py ├── urls.py ├── admin.py ├── engine.py └── tasks.py ``` ## 安装和配置 ### 1. 环境要求 - Python 3.11+ - MySQL 8.0+ / PostgreSQL 12+ - Redis 6+ - Neo4j 5+ (可选) ### 2. 安装依赖 #### 方式一:使用 Conda(推荐) ```bash # 创建conda环境并安装依赖 conda env create -f environment.yml # 或者直接创建Python 3.11环境 conda create -n zhunru python=3.11.14 # 激活环境 conda activate zhunru # 如果环境已存在,可以更新 conda env update -f environment.yml --prune ``` #### 方式二:使用 pip + venv ```bash # 创建虚拟环境 python -m venv venv # 激活虚拟环境 # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate # 安装依赖 pip install -r requirements.txt ``` ### 3. 配置环境变量 复制 `.env.example` 为 `.env` 并修改配置: ```bash cp .env.example .env ``` 编辑 `.env` 文件,填入实际的配置信息。 ### 4. 数据库迁移 ```bash # 创建数据库迁移文件 python manage.py makemigrations # 执行数据库迁移 python manage.py migrate # 创建超级用户(可选) python manage.py createsuperuser ``` ### 5. 启动服务 #### 启动Django开发服务器 ```bash python manage.py runserver ``` #### 启动Celery Worker ```bash # Windows (需要安装 eventlet) pip install eventlet celery -A zhunru worker -l info -P eventlet # Linux/Mac celery -A zhunru worker -l info ``` #### 启动Celery Beat (如果需要定时任务) ```bash celery -A zhunru beat -l info ``` ## API端点 ### 1. 发起AI核查 **POST** `/api/check/initiate/` 请求体: ```json { "client_name": "张三", "client_id": "C001", "company_name": "测试公司", "application_type": "企业贷款", "application_data": { "amount": 1000000, "term": 12 } } ``` 响应: ```json { "message": "AI核查任务已启动", "check_id": "uuid", "task_id": "celery-task-id", "status": "running" } ``` ### 2. 获取核查状态 **GET** `/api/check/{id}/status/` 响应: ```json { "id": "uuid", "check_status": "running", "decision": null, "task_id": "celery-task-id", "started_at": "2024-01-01T10:00:00Z", "completed_at": null, "progress": 50.0 } ``` ### 3. 获取核查报告 **GET** `/api/check/{id}/report/` 响应: ```json { "id": "uuid", "client_application": {...}, "check_status": "completed", "decision": "approved", "risk_scores": [...], "decision_reasons": [...], "check_details": {...} } ``` ### 4. 批量核查 **POST** `/api/check/batch/` 请求体: ```json { "applications": [ { "client_name": "张三", "client_id": "C001", "company_name": "测试公司1", "application_type": "企业贷款", "application_data": {} }, { "client_name": "李四", "client_id": "C002", "company_name": "测试公司2", "application_type": "企业贷款", "application_data": {} } ] } ``` ## 核心模型 ### ClientApplication (客户准入申请) - `id`: UUID主键 - `client_name`: 客户名称 - `client_id`: 客户ID(唯一) - `company_name`: 公司名称 - `application_type`: 申请类型 - `application_data`: 申请数据(JSON) - `status`: 状态(pending/processing/completed/failed) ### AICheckResult (AI核查结果) - `id`: UUID主键 - `client_application`: 关联的客户申请 - `check_status`: 核查状态 - `decision`: 决策结果(approved/rejected/pending_review) - `task_id`: Celery任务ID - `raw_data`: 原始数据 - `check_details`: 核查详情 ### RiskScore (风险评分) - `id`: UUID主键 - `ai_check_result`: 关联的核查结果 - `score_type`: 评分类型 - `score_value`: 评分值 - `risk_level`: 风险等级 - `factors`: 影响因素 ### DecisionReason (决策理由) - `id`: UUID主键 - `ai_check_result`: 关联的核查结果 - `reason_type`: 理由类型 - `reason_text`: 理由文本 - `confidence`: 置信度 - `supporting_evidence`: 支持证据 ## AI引擎 `AICheckEngine` 类提供以下核心方法: - `run_check(client_id)`: 执行完整核查流程 - `call_external_apis(client_id)`: 调用外部数据源 - `query_knowledge_graph(client_id)`: 查询Neo4j知识图谱 - `calculate_risk_score(...)`: 计算风险评分 - `generate_decision_reason(...)`: 生成决策理由 - `generate_report(...)`: 生成核查报告 ## 开发说明 ### 添加新的外部数据源 在 `engine.py` 的 `call_external_apis` 方法中添加新的API调用。 ### 自定义风险评分模型 1. 训练XGBoost模型并保存 2. 在 `engine.py` 的 `_initialize_components` 方法中加载模型 3. 在 `calculate_risk_score` 方法中使用模型进行预测 ### 集成其他LLM 修改 `engine.py` 的 `generate_decision_reason` 方法,添加对其他LLM API的支持。 ## 测试 ```bash # 运行测试 python manage.py test # 运行特定测试 python manage.py test ai_check_engine.tests ``` ## 部署 ### 生产环境配置 1. 设置 `DEBUG=False` 2. 配置 `ALLOWED_HOSTS` 3. 使用环境变量管理敏感信息 4. 配置HTTPS 5. 使用生产级数据库和缓存 6. 配置日志系统 7. 使用进程管理器(如supervisor)管理Celery worker ## 许可证 MIT License ## 联系方式 如有问题,请提交Issue或联系开发团队。