# 基于大模型的文本知识管理系统 **Repository Path**: jason123abc/knowledge-system ## Basic Information - **Project Name**: 基于大模型的文本知识管理系统 - **Description**: 基于phidata框架的文本知识管理系统 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-07-08 - **Last Updated**: 2025-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 安装neo4j 图形数据库 docker run -d \ --name neo4j \ -p 7474:7474 -p 7687:7687 \ -e NEO4J_AUTH=neo4j/password \ neo4j:latest ## pgvector docker run -d \ --name postgres-vector \ -e POSTGRES_USER=ai \ -e POSTGRES_PASSWORD=ai \ -e POSTGRES_DB=ai \ -p 5432:5432 \ ankane/pgvector ## 命令行执行 1.确认你的python版本 Python 3.13.1 最好版本一致 2.创建虚拟环境在根目录下 python3 -m venv venv 3.激活虚拟环境 source venv/bin/activate 4.安装依赖 pip3 install -r requirements.txt 5.运行 python3 src/api.py 6.创建账号 curl -X POST http://localhost:8000/register -H "Content-Type: application/json" -d '{"username": "admin", "email": "admin@example.com", "password": "admin123", "is_admin": true}' curl -X POST http://localhost:8000/register -H "Content-Type: application/json" -d '{"username": "user", "email": "user@example.com", "password": "user123", "is_admin": false}' ### 前端 cd knowledge-graph-ui 1.安装依赖 npm install 或者yarn install 2.运行 npm run dev export OPENAI_API_KEY=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 # 知识图谱管理系统 一个基于 FastAPI 和 Vue 3 的知识图谱管理系统,包含前后端完整实现,支持文档管理、知识抽取、图谱可视化等功能。 ## Result show ![alt text](src/image/image.png) ![alt text]() ![alt text]() ![alt text]() ![alt text]() ## 登录界面 ![alt text]() ## 用户界面 ![alt text]() ## 管理员界面 ![alt text]() ## 用户认证与权限管理 ### 默认账号 1. 管理员账号 - 用户名:admin - 密码:admin123 - 权限:管理员权限(可访问所有功能,包括文档管理) 2. 普通用户账号 - 用户名:user - 密码:user123 - 权限:普通用户权限(可访问知识查询和图谱可视化) ### 权限说明 - 管理员权限 - 文档管理(上传、删除文档) - 知识查询 - 图谱可视化 - 系统统计信息查看 - 普通用户权限 - 知识查询 - 图谱可视化 - 个人信息管理 ### 注册说明 1. 通过界面注册 - 访问注册页面 `/register` - 填写用户名、邮箱和密码 - 默认注册为普通用户权限 2. 通过API注册(管理员) ```bash # 注册管理员账号 curl -X POST http://localhost:8000/register -H "Content-Type: application/json" -d '{"username": "admin", "email": "admin@example.com", "password": "admin123", "is_admin": true}' # 注册普通用户账号 curl -X POST http://localhost:8000/register -H "Content-Type: application/json" -d '{"username": "user", "email": "user@example.com", "password": "user123", "is_admin": false}' ``` ### 登录流程 1. 访问登录页面 `/login` 2. 输入用户名和密码 3. 登录成功后会获取: - JWT Token(有效期24小时) - 用户权限信息 - 用户基本信息 ### 安全说明 - 密码使用 bcrypt 加密存储 - 使用 JWT 进行身份验证 - Token 有效期为24小时 - 支持自动登出和手动登出 - 密码长度要求:6-20个字符 - 用户名长度要求:3-20个字符 ### 注意事项 1. 首次部署系统后,请及时修改默认管理员密码 2. 建议定期更换密码 3. 不要在公共场合保持登录状态 4. 使用完毕后请及时登出 5. 密码不要使用简单易猜测的组合 ## 系统架构 ### 前端技术栈 - Vue 3 (Composition API) - Element Plus - D3.js (图谱可视化) - Axios (HTTP 请求) - Vue Router (路由管理) ### 后端技术栈 - FastAPI (Web 框架) - Neo4j (图数据库) - spaCy (自然语言处理) - PyPDF2 (PDF 文档处理) - python-docx (Word 文档处理) - SQLAlchemy (关系型数据库 ORM) ## 项目结构 ``` . ├── knowledge-graph-ui/ # 前端项目 │ ├── public/ # 静态资源 │ ├── src/ │ │ ├── assets/ # 项目资源文件 │ │ ├── components/ # 公共组件 │ │ ├── views/ # 页面组件 │ │ ├── router/ # 路由配置 │ │ ├── App.vue # 根组件 │ │ └── main.js # 入口文件 │ ├── package.json # 前端依赖配置 │ └── vite.config.js # Vite 配置文件 │ └── knowledge-graph-api/ # 后端项目 ├── app/ │ ├── api/ # API 路由 │ ├── core/ # 核心配置 │ ├── models/ # 数据模型 │ ├── schemas/ # Pydantic 模型 │ ├── services/ # 业务逻辑 │ └── utils/ # 工具函数 ├── tests/ # 测试用例 ├── alembic/ # 数据库迁移 ├── requirements.txt # Python 依赖 └── main.py # 应用入口 ``` ## 功能特性 1. 文档管理 - 支持 PDF、Word 文档上传 - 文档列表管理 - 文档统计信息 2. 知识图谱 - 自动实体识别与关系抽取 - 基于 D3.js 的交互式图谱展示 - 支持缩放、拖拽等操作 - 节点和关系的可视化展示 3. 统计信息展示 - 实体数量统计 - 关系数量统计 - 文档数量统计 ## 开发环境要求 ### 前端要求 - Node.js >= 16 - npm >= 7 或 yarn >= 1.22 ### 后端要求 - Python >= 3.8 - Neo4j >= 4.4 - PostgreSQL >= 13 ## 项目设置 ### 前端设置 1. 安装依赖 ```bash cd knowledge-graph-ui npm install # 或 yarn install ``` 2. 开发环境运行 ```bash npm run dev # 或 yarn dev ``` ### 后端设置 1. 创建虚拟环境 ```bash python -m venv venv source venv/bin/activate # Linux/Mac # 或 .\venv\Scripts\activate # Windows ``` 2. 安装依赖 ```bash cd knowledge-graph-api pip install -r requirements.txt ``` 3. 配置环境变量 创建 `.env` 文件: ```env # 数据库配置 DATABASE_URL=postgresql://user:password@localhost:5432/knowledge_graph NEO4J_URI=bolt://localhost:7687 NEO4J_USER=neo4j NEO4J_PASSWORD=password # API 配置 API_HOST=0.0.0.0 API_PORT=8000 ``` 4. 运行数据库迁移 ```bash alembic upgrade head ``` 5. 启动后端服务 ```bash uvicorn main:app --reload ``` ## API 文档 启动后端服务后,可以访问以下地址查看 API 文档: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ## 部署说明 ### 前端部署 [前端部署说明保持不变] ### 后端部署 1. 构建 Docker 镜像 ```bash docker build -t knowledge-graph-api . ``` 2. 运行容器 ```bash docker run -d \ --name knowledge-graph-api \ -p 8000:8000 \ --env-file .env \ knowledge-graph-api ``` 3. 数据库部署 ```bash # PostgreSQL docker run -d \ --name postgres \ -e POSTGRES_PASSWORD=password \ -p 5432:5432 \ postgres:13 # Neo4j docker run -d \ --name neo4j \ -p 7474:7474 -p 7687:7687 \ -e NEO4J_AUTH=neo4j/password \ neo4j:4.4 ``` ## 系统要求 ### 前端支持的浏览器 [浏览器支持部分保持不变] ### 后端系统要求 - CPU: 2核心以上 - 内存: 4GB 以上 - 磁盘空间: 20GB 以上 - 操作系统: Ubuntu 20.04+ / CentOS 8+ / Windows Server 2019+ ## 注意事项 1. 确保所有必要的服务都已启动: - PostgreSQL 数据库 - Neo4j 图数据库 - 后端 API 服务 - 前端服务 2. 文件上传限制: - 大小限制:10MB - 支持格式:PDF、Word (docx) 3. 性能优化建议: - 配置 Neo4j 的内存使用 - 使用 Redis 缓存频繁访问的数据 - 配置适当的数据库连接池大小 4. 登录 - 用户名:admin - 密码:admin123 - 权限:admin 5. 注册 - 用户名:user - 密码:user123 - 权限:user curl -X POST http://localhost:8000/register -H "Content-Type: application/json" -d '{"username": "user", "email": "user@example.com", "password": "user123", "is_admin": false}' curl -X POST http://localhost:8000/register -H "Content-Type: application/json" -d '{"username": "admin", "email": "admin@example.com", "password": "admin123", "is_admin": true}' ## 许可证 [MIT License](LICENSE)