本工程是智能文档问答系统的前端应用,基于 React 18、TypeScript、Vite、Ant Design、valtio、ahooks 和 axios 构建。它负责用户登录注册、退出登录、会话创建、历史会话展示、知识库文件管理、会话内文档快速解析、RAG 流式问答和引用内容查看。
后端服务位于 ../backend,提供 FastAPI 接口、PostgreSQL 元数据、Elasticsearch 知识库检索、Redis 临时解析内容和 DashScope/OpenAI 兼容模型调用。
- Node.js
- pnpm
- 后端服务可访问
pnpm installpnpm devpnpm buildpnpm preview常用环境变量在 .env 中维护:
| 变量 | 说明 |
|---|---|
VITE_API_BASE |
后端 API 基础地址 |
VITE_TITLE |
页面标题 |
VITE_VOLC_APPID |
火山语音能力 AppID |
VITE_VOLC_ACCESS_KEY |
火山语音能力 Access Key |
| 路由 | 页面 | 说明 |
|---|---|---|
/login |
登录注册页 | 调用 /login、/register,保存 token |
/ |
首页跳转页 | 调用 /create_session 后跳转到 /chat/:id |
/chat/:id |
对话页 | 历史回放、快速文档解析、SSE 流式问答、引用查看 |
/repository |
知识库页 | 文件列表、上传、删除 |
| 目录 | 说明 |
|---|---|
src/api/ |
后端接口封装 |
src/api/request/ |
axios 实例、请求插件、错误处理 |
src/router/ |
React Router 路由和守卫 |
src/layout/base/ |
基础布局、历史会话导航 |
src/pages/ |
登录、首页、聊天、知识库页面 |
src/components/ |
通用输入器、Markdown、页面布局组件 |
src/store/ |
valtio 用户、会话、设备状态 |
src/assets/ |
图片和 SVG 资源 |
前端主要调用以下接口:
- 用户:
/login、/register、/sts-token - 会话:
/create_session、/get_sessions、/get_messages - 知识库:
/get_files、/upload_files、/delete_file/{file_name} - 快速解析:
/quick_parse、/sessions/{session_id}/documents - 流式问答:
/chat_on_docs
/chat_on_docs 使用 SSE 流式响应。前端通过 axios adapter: 'fetch' 和 responseType: 'stream' 获取 ReadableStream,再手动读取 data: 行,增量更新回答、思考过程、引用文档和推荐问题。
- ARCHITECTURE.md:前端架构、主流程、SSE 细节和 Mermaid 图。
- architecture.html:可直接打开的架构可视化页面。