# Bigc-api-new **Repository Path**: 2lin/bigc-api-new ## Basic Information - **Project Name**: Bigc-api-new - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-30 - **Last Updated**: 2026-01-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RAG 问答系统后端 基于 RagFlow 知识库和硅基流动大模型的智能问答系统。 ## 功能 - 流式问答 - 实时显示答案生成过程 - 智能缓存 - 相同问题瞬间返回 - 知识库检索 - RagFlow Retrieval API - 文件下载 - 引用文件动态下载 - 热门问题管理 - 音频转文字 - CAS 单点登录 ## 项目结构 ``` backend/ ├── api/ # API 路由 │ ├── routes.py # 核心问答接口 │ ├── extended_routes.py # 扩展接口 │ └── cas_routes.py # CAS 认证接口 ├── config/ # 配置模块 │ ├── ragflow_config.py # RagFlow 配置 │ ├── siliconflow_config.py # 硅基流动配置 │ ├── mysql_config.py # 数据库配置 │ └── cas_config.py # CAS 配置 ├── services/ # 业务逻辑 │ ├── ragflow_native_service.py # RAG 问答服务 │ ├── audio_service.py # 音频转文字服务 │ ├── cas_service.py # CAS 认证服务 │ ├── config_service.py # 配置管理服务 │ ├── hot_question_service.py # 热门问题服务 │ └── citation_helpers.py # 引用筛选辅助 ├── models/ # 数据模型 ├── utils/ # 工具函数 │ ├── cache.py # 缓存工具 │ ├── http_client.py # HTTP 客户端 │ └── logger.py # 日志配置 ├── middleware/ # 中间件 │ └── path_rewrite.py # 路径重写中间件 ├── scripts/ # 初始化脚本 │ └── init_config.py # 数据库配置初始化 ├── sql/ # SQL 脚本 ├── audio/ # 音频文件目录 ├── logs/ # 日志目录 ├── main.py # 主入口 ├── requirements.txt # 依赖 ├── .env # 环境变量 └── .env.example # 环境变量示例 ``` ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 配置环境变量 ```bash cp .env.example .env # 编辑 .env 文件,填入实际配置 ``` ### 3. 初始化数据库配置 ```bash python scripts/init_config.py ``` ### 4. 启动服务 ```bash uvicorn main:app --reload --port 8001 ``` 或直接运行: ```bash python main.py ``` ### 5. 访问 API 文档 - Swagger UI: http://localhost:8001/docs - ReDoc: http://localhost:8001/redoc ## API 接口 ### 问答接口(流式) **POST** `/api/v1/ask` ```json { "question": "学生什么时候可以拿到学籍" } ``` **响应**: Server-Sent Events (SSE) 事件类型: - `start`: 开始处理 - `status`: 状态更新 - `content`: 答案内容片段 - `done`: 完成(包含 answerReferenceMaterial) - `error`: 错误信息 ### 文件下载 **GET** `/api/v1/download?file_name={文件名}` 或使用 doc_id 和 dataset_id: **GET** `/api/v1/download?doc_id={doc_id}&dataset_id={dataset_id}` ### 其他接口 | 端点 | 方法 | 描述 | |------|------|------| | `/api/v1/health` | GET | 健康检查 | | `/api/v1/cache/stats` | GET | 缓存统计 | | `/api/v1/cache/clear` | POST | 清空缓存 | | `/api/v1/hot-questions` | GET | 获取热门问题 | | `/api/v1/audio/transcription` | POST | 音频转文字 | ## 配置管理 配置存储在 MySQL `system_config` 表中,启动时自动加载。 **查看配置**: ```sql SELECT * FROM system_config; ``` **修改配置**: ```sql UPDATE system_config SET config_value = '新值' WHERE config_key = 'ragflow.base_url'; ``` 修改后重启服务生效。 ## 环境变量 | 变量 | 说明 | 默认值 | |------|------|--------| | `MYSQL_HOST` | MySQL 主机 | localhost | | `MYSQL_PORT` | MySQL 端口 | 3306 | | `MYSQL_USER` | MySQL 用户 | root | | `MYSQL_PASSWORD` | MySQL 密码 | - | | `MYSQL_DATABASE` | 数据库名 | damoxing | | `API_HOST` | API 监听地址 | 0.0.0.0 | | `API_PORT` | API 端口 | 8001 | | `API_RELOAD` | 热重载 | true | 完整配置见 `.env.example`。 ## 技术栈 - FastAPI - RagFlow - SiliconFlow - MySQL - aiohttp - Pydantic