AI问答小程序

April 15, 2025

基于大语言模型的智能问答小程序开发文档

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)

字段名类型描述
idstring用户ID
nicknamestring昵称
openidstring微信openid
create_timedatetime注册时间

4.2 对话表(conversation)

字段名类型描述
idstring对话ID
user_idstring用户ID
messagesjson消息数组
create_timedatetime创建时间

5. 接口设计

5.1 问答接口

  • POST /api/ask
  • 请求参数:
{
  "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. 项目开发流程

  1. 明确使用场景与目标用户
  2. 原型设计与交互确认
  3. 模型接口调试与集成
  4. 微信小程序端开发
  5. 后端服务开发与联调
  6. 测试、优化与发布上线