ChengzQin/QwenAI-Webapp
GitHub: ChengzQin/QwenAI-Webapp
基于通义千问 API 的全栈 AI 聊天应用示例,提供流式对话与多模态文件处理能力。
Stars: 5 | Forks: 2
# Qwen 百炼 AI 聊天应用
这是一个基于 FastAPI + Vue 3 + Vite + DashScope(通义千问)构建的 AI 聊天示例项目,支持流式回复、文件上传以及多模态内容处理。
## 功能特点
- 基于 DashScope 的智能聊天回复
- 流式输出,体验更接近实时对话
- 支持上传文本、PDF、Word、图片等文件
- 支持简单的对话历史管理
- 支持导出聊天记录为 Markdown
- 前后端分离,便于二次开发
## 项目结构
qwen-chat-app/
├── frontend/ # 前端 Vue 项目
│ ├── index.html
│ ├── package.json
│ ├── vite.config.js
│ ├── .env # VITE_API_BASE
│ └── src/
│ ├── main.js
│ ├── App.vue # 主界面
│ ├── styles/
│ │ └── global.css
│ └── composables/
│ └── useChat.js # 聊天逻辑
└── backend/ # 后端 Python 项目
├── run.py
├── requirements.txt
├── .env # DASHSCOPE_API_KEY 等
└── app/
├── main.py
├── config.py
├── api/
│ └── chat.py # 流式接口
└── utils/
├── qwen_client.py # 千问 SDK 封装 + 智能体逻辑
└── tools.py # 工具定义与执行器
## 环境要求
- Python 3.9+
- Node.js 18+
- npm 或 pnpm
- 阿里云 DashScope API Key
## 后端启动
1. 进入后端目录:
cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
2. 创建环境变量文件 `.env`:
DASHSCOPE_API_KEY=your_dashscope_api_key
DASHSCOPE_MODEL=qwen-turbo # 默认模型,支持 qwen-plus, qwen-max, qwen-vl-plus等
UPLOAD_DIR=./uploads
MAX_FILE_SIZE=20971520
3. 启动后端服务:
python run.py
后端默认会启动在:
- http://localhost:8000
- API 文档:http://localhost:8000/docs
- 健康检查:http://localhost:8000/health
## 前端启动
1. 进入前端目录:
cd frontend
npm install
2. 可选:配置前端 API 地址,创建 `.env`:
VITE_API_BASE=http://localhost:8000
3. 启动开发服务器:
npm run dev
前端默认会启动在:
- http://localhost:5173
## 主要接口
- POST /api/chat/stream:流式聊天接口
- GET /api/chat/history:获取聊天历史
- DELETE /api/chat/history:清空聊天历史
## 注意事项
- 请确保 `DASHSCOPE_API_KEY` 已正确配置,否则聊天接口将无法正常工作。
- 上传文件大小默认限制为 20MB。
- 生产环境中建议将 CORS 配置限制为具体域名。
## 开发说明
如果你想继续扩展这个项目,可以考虑加入:
- 更完整的用户认证
- 会话管理持久化
- 更丰富的文件解析能力
- 更完善的前端界面和状态管理
标签:AI聊天, AV绕过, FastAPI, Vue 3, 多模态, 流式输出, 逆向工具, 通义千问