基于Python 和Vue构建的智能AI应用平台,支持多模态对话、PDF文档智能问答、预约推荐等功能。
傻子AI是一个综合性的AI应用平台,利用Python框架集成了多种AI服务(包括阿里通义千问、Ollama等),提供了智能对话、文档理解和课程推荐等功能。项目采用前后端分离架构,后端使用python/fastapi + ,前端使用Vue.js构建。
chat-pdf 开发中
- 🤖 智能对话 - 支持基于文本和多模态(图片、文件)的AI对话
- 📄 PDF智能问答 - 上传PDF文档,实现基于文档内容的智能问答
- 📚 预约推荐 - 基于AI的预约查询和推荐系统
- 🎓 天气查询 - 查询天气信息(基于心知天气)
- 📝 客服服务 - 智能生成回复
- 🧠 向量检索 - 基于向量数据库的相似性搜索
- 🔗 多AI模型支持 - 支持阿里通义千问、Ollama等多种AI模型
- 核心框架: Python/FastApi
- AI框架: Langchain
- 向量库: redis-stack
- 数据库: MySQL
- 开发语言: python3/Vue
- 构建工具: ~
- 大语言模型: 阿里通义千问 (Qwen-Max-Latest)
- 嵌入模型: 文本嵌入 (text-embedding-v3)
- 向量存储: 向量数据库
- PDF处理: PDF文档读取与解析
- 多模态支持: 图像识别和处理
- 框架: Vue.js + Vite
- 构建工具: Vite
- UI组件: 静态资源文件
- Vector database: PostgreSQL/pgvector dify(1.10.0))
- Python: 3.13+
- MySQL: 5.7+ 或 8.0+
- Node.js: 用于前端资源构建(如果需要)
- Ollama (可选): 用于本地AI模型部署
git clone <repository-url>
cd goose-ai
> server
.venv\Scripts\Activate.ps1
uvicorn main:app --reload
fastapi dev main.py拉取redis-stack向量数据库
项目使用dify自带向量库, 可以无缝迁移
docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 redis/redis-stack:latest编辑 .env 文件,根据你的环境修改配置信息:
OPENAI_API_KEY= <your qw apikey>
DIFY_LIBRARY_API_KEY=<your dify apikey>
DIFY_LIBRARY_DATA_SET_ID=<lib id> 1. dify 知识库新建空知识库
2. 获取知识库的ID
* curl --request GET \
--url 'https://api.dify.ai/v1/datasets?page=1&limit=20' \
--header 'Authorization: Bearer <API_KEY>'
3. 插入文本
curl --request POST \
--url http://127.0.0.1/v1/datasets/{dataset_id}/document/create-by-text \
--header 'Authorization: Bearer xxxx' \
--header 'Content-Type: application/json' \
--data '
{
"name": "bbb",
"text": "bbb",
"indexing_technique": "high_quality",
"process_rule": {
"mode": "automatic"
}
}# server
.venv\Scripts\Activate.ps1
Get-Command python
# client
npm install --ignore-scripts --legacy-peer-deps
npm run dev或者在IDE中直接运行 main.py 类的 main 方法。
- 应用启动后,默认访问地址:http://localhost:8080
- POST
/ai/chat- 智能聊天接口- 参数:
prompt: 用户输入的问题chatId: 聊天会话IDfiles: 可选,上传的文件(支持多模态)
- 参数:
- POST
/ai/pdf/upload/{chatId}- 上传PDF文档- 参数:
chatId: 聊天会话IDfile: PDF文件
- 参数:
- GET
/ai/pdf/chat- PDF文档问答- 参数:
prompt: 问题chatId: 聊天会话ID
- 参数:
- GET
/ai/pdf/file/{chatId}- 下载PDF文件
项目支持多种AI模型:
-
阿里通义千问 (默认)
- 在
application.yaml中配置阿里云API密钥 - 使用
qwen-max-latest模型
- 在
-
Ollama本地模型()
- 需要本地安装并运行Ollama
- 配置
deepseek-r1:7b模型
支持普通文本对话和多模态对话(带图片、文档等附件)。系统会自动维护对话历史,保持上下文连贯。
用户可以上传PDF文档,然后针对文档内容提问。系统会利用向量检索技术,从文档中找到相关信息并生成答案。
- pdf 中图片暂时不涉及, 图片需要 ocr 或者 多模态
- pdf 中表格 数据 应该转换/格式化 后 再存储
- pdf 内容分段默认按page, 无法按段落或语义化
系统内置了多种AI工具:
- 预约查询工具
- 案件查询工具
- 服务点预约工具
这些工具可以让AI根据用户需求执行特定操作。
基于向量数据库的相似性搜索,能够高效地从大量文档中找到与用户查询最相关的内容。
创建一个新的工具类,
@mcp.tools项目中包含了自定义的 AiChatModel,可以根据需要调整模型行为。
- 修改 `` 中的配置参数
- 执行 `` 构建项目
- 运行生成的JAR包
如需使用Docker部署,可以创建Dockerfile:
FROM openjdk:17-jdk-slim
- API密钥安全 - 生产环境中应妥善保管API密钥,建议使用环境变量等方式管理
- 数据库初始化 - 首次运行前确保数据库已创建并正确配置
- AI模型费用 - 使用在线AI服务可能会产生费用,请关注API调用成本
- 文件上传限制 - 注意服务器文件上传大小限制
欢迎提交Issue和Pull Request来改进项目。
本项目仅供学习交流使用。
野猪佩奇 AI 团队