基于大语言模型的智能问答小程序开发文档
1. 项目概述
本项目旨在开发一个基于大语言模型(LLM)的智能问答小程序,用户可以通过自然语言进行提问,系统实时返回智能回答。该小程序适用于微信小程序平台,也可扩展至Web或App端。
2. 系统功能模块
2.1 用户交互模块
- 输入框支持多轮对话上下文
- 支持语音输入和文字输入
- 问题推荐与历史记录查看
2.2 智能问答模块
- 与后端 LLM API 交互(如 OpenAI, Baidu, 自建LLM服务)
- 支持上下文管理与对话记忆
- 回答展示支持富文本、引用、链接
2.3 用户账户系统(可选)
- 用户注册/登录(微信授权或手机号)
- 提问次数统计与限制
- 用户积分与订阅服务
2.4 管理后台
3. 技术架构
[微信小程序前端] ⇄ [后端服务(Node.js/Python)] ⇄ [LLM API(OpenAI, 自建)]
⇅
[数据库(MongoDB/MySQL)]
- 前端:微信小程序 + TaroJs
- 后端:Node.js (Express)
- 模型接口:OpenAI API
- 数据库:MongoDB(对话记录) + Redis(缓存)
- 对象存储:腾讯云COS(用于存放音频/图片)
4. 数据库设计(局部示例)
4.1 用户表(user)
字段名 | 类型 | 描述 |
---|
id | string | 用户ID |
nickname | string | 昵称 |
openid | string | 微信openid |
create_time | datetime | 注册时间 |
4.2 对话表(conversation)
字段名 | 类型 | 描述 |
---|
id | string | 对话ID |
user_id | string | 用户ID |
messages | json | 消息数组 |
create_time | datetime | 创建时间 |
5. 接口设计
5.1 问答接口
{
"user_id": "abc123",
"message": "你是谁?",
"context_id": "conv456"
}
{
"reply": "我是一个由大语言模型驱动的智能助手。",
"context_id": "conv456"
}
5.2 获取历史对话
GET /api/history?user_id=abc123
6. 安全与权限
- API接口鉴权:JWT或Token校验
- 输入过滤与内容安全:对接微信内容安全接口 + 模型返回内容审核
- 限流机制:防止恶意请求与滥用(如IP限流/用户级频控)
7. 开发与部署建议
- 本地开发使用微信开发者工具 + ngrok进行调试
- 模型服务建议容器化部署(Docker)
- LLM接口响应需设置超时与重试机制
- 日志记录用户输入、响应、响应时间等信息,便于后续优化
8. 项目开发流程
- 明确使用场景与目标用户
- 原型设计与交互确认
- 模型接口调试与集成
- 微信小程序端开发
- 后端服务开发与联调
- 测试、优化与发布上线