WisQuery 一套开箱即用、可 Docker 一键部署的 智能问数 + 知识库 + 智能问答 一体化平台

发布时间:2026/8/25 3:14:43

WisQuery 一套开箱即用、可 Docker 一键部署的 智能问数 + 知识库 + 智能问答 一体化平台
项目地址https://gitee.com/careshow/wis-query.git仅供学习参考一套开箱即用、可 Docker 一键部署的智能问数 知识库 智能问答一体化平台。后端 FastAPI PostgreSQLpgvector pgvector 向量库前端 React Antd遵循 OpenAI 兼容协议可自由接入任何 OpenAI 兼容 LLMOpenAI / DeepSeek / 通义千问 / 智谱 / Ollama / 自建网关…。智能问数模块的思路基于数据源 schema → 让 LLM 生成 SQL → 用 sqlglot 校验只允许 SELECT → 执行查询 → LLM 用自然语言回答。✨ 功能特性用户登录JWT 认证默认管理员自动创建admin / admin123智能问答自定义模型多轮对话会话管理智能问数支持 PostgreSQL / MySQL / SQLiteText-to-SQL图表自动建议SQL 安全校验知识库上传 txt/md/pdf/docx/html → 自动分块 → pgvector 向量检索 → RAG 回答附引用来源⚙️模型管理可视化管理 LLM / Embedding 模型支持一键测试Docker 一键启动三个容器postgres / backend / frontend即可跑起来️ 架构┌────────────────────────────────────────────────────────┐ │ Frontend (React Vite Antd ECharts) nginx │ │ ↓ /api/* 反向代理 │ ├────────────────────────────────────────────────────────┤ │ Backend (FastAPI SQLAlchemy pgvector) │ │ ├─ /auth 登录注册 │ │ ├─ /models LLM/Embedding 模型管理 │ │ ├─ /datasources 数据源管理 Schema 提取 │ │ ├─ /knowledge 知识库 文档 RAG │ │ └─ /chat 三场景统一对话入口 │ ├────────────────────────────────────────────────────────┤ │ PostgreSQL 16 pgvector │ │ ├─ 业务表users / conversations / messages… │ │ └─ knowledge_chunks.embedding 向量存储 │ └────────────────────────────────────────────────────────┘ 快速启动# 1. 克隆 / 进入项目 cd WisQuery # 2. 准备环境变量务必修改 JWT_SECRET_KEY 和 LLM 凭据 cp .env.example .env vim .env # 3. 一键启动 docker compose up -d --build # 首次启动会下载镜像、构建前端、初始化数据库约 2~5 分钟 # 看到 ai-postgres / ai-backend / ai-frontend healthy 即成功 # 4. 访问 # 前端http://localhost:5173 # API 文档http://localhost:5173/api/docs # 默认账号admin / admin123修改 .env 中的关键配置# 必填JWT 密钥生产环境务必改成随机 32 位字符串 JWT_SECRET_KEY32-char-random-string # 必填LLM 凭据OpenAI 兼容协议 DEFAULT_LLM_BASE_URLhttps://api.openai.com/v1 DEFAULT_LLM_API_KEYsk-xxx DEFAULT_LLM_MODELgpt-4o-mini # 必填Embedding 凭据 DEFAULT_EMBEDDING_BASE_URLhttps://api.openai.com/v1 DEFAULT_EMBEDDING_API_KEYsk-xxx DEFAULT_EMBEDDING_MODELtext-embedding-3-small或者不修改 .env直接启动也行启动后用默认账号登录进入「模型管理」页面添加你的模型配置设为默认即可。国内常用模型示例提供商base_urlmodel_nameDeepSeekhttps://api.deepseek.com/v1deepseek-chat智谱 GLMhttps://open.bigmodel.cn/api/paas/v4glm-4-flash通义千问 DashScopeOpenAI 兼容https://dashscope.aliyuncs.com/compatible-mode/v1qwen-plusOllama 本地http://host.docker.internal:11434/v1qwen2.5:7b注意在 Docker 容器内访问宿主机用host.docker.internal:11434。 目录结构. ├── backend/ # FastAPI 后端 │ ├── app/ │ │ ├── api/v1/ # 路由auth / models / datasources / knowledge / chat │ │ ├── core/ # 配置 / 鉴权 / 依赖 │ │ ├── db/ # SQLAlchemy 异步会话 │ │ ├── models/ # ORM │ │ ├── schemas/ # Pydantic │ │ ├── services/ # 业务llm / text2sql / rag / chat / ingest / datasource │ │ ├── init_db.py # 启动建表 种子数据 │ │ └── main.py │ ├── requirements.txt │ └── Dockerfile ├── frontend/ # React 前端 │ ├── src/ │ │ ├── api/ # axios 接口 │ │ ├── pages/ # Login / Chat / Text2SQL / Knowledge / Models / DataSources │ │ ├── components/ # Layout / ChatPanel │ │ ├── store/ # zustand │ │ ├── App.tsx │ │ └── main.tsx │ ├── package.json │ ├── vite.config.ts │ ├── nginx.conf # 反向代理 SPA fallback │ └── Dockerfile ├── docker/ │ └── postgres/init/ # 启动启用 pgvector ├── docker-compose.yml ├── .env.example └── README.md 本地开发后端cd backend python -m venv .venv source .venv/bin/activate pip install -r requirements.txt export DATABASE_URLpostgresqlasyncpg://aiplatform:aiplatform_passlocalhost:5432/aiplatform python -m app.init_db uvicorn app.main:app --reload --port 8000前端cd frontend npm install npm run dev # http://localhost:5173前端 Vite 已经把/api代理到http://backend:8000。️ 安全说明SQL 生成后用sqlglot解析校验只允许 SELECT禁止 DML/DDL。默认管理员密码仅用于首次登录生产环境务必修改FIRST_ADMIN_PASSWORD。JWT 密钥使用JWT_SECRET_KEY务必改成随机字符串。用户注册的接口默认开放生产可在app/api/v1/auth.py中关闭仅允许管理员创建。 常见问题首次启动后端连不上数据库等几秒让 PostgreSQL 完成pg_isready。depends_on: condition: service_healthy已经处理。Embedding 调用报错OpenAI 的text-embedding-3-small维度是 1536。如果换其他模型如text-embedding-3-large3072需要同步修改app/models/knowledge.py中的Vector(1536)。Ollama 在 Docker 里连不上base_url 填http://host.docker.internal:11434/v1。构建前端太慢取消frontend/Dockerfile中npm config set registry ...的注释可走国内镜像。

相关新闻

山特SK2000 UPS实战指南:从原理到配置,保障小型服务器与NAS不断电

山特SK2000 UPS实战指南:从原理到配置,保障小型服务器与NAS不断电

2026/8/25 3:14:43

最近在帮朋友的公司搭建小型服务器和监控系统时,遇到了一个很实际的问题:如何保障核心设备在市电不稳定或突然断电时,能够安全、平稳地运行或关机?尤其是在家庭办公室、小型工作室或者对数据连续性有基本要求的场景下,…

2026年AI内容安全服务选型指南:腾讯云TMS、阿里云绿网、华为云Moderation深度对比

2026年AI内容安全服务选型指南:腾讯云TMS、阿里云绿网、华为云Moderation深度对比

2026/8/25 3:14:43

1. 项目概述:为什么我们需要一份2026年的选型指南? 做内容平台也好,做社区应用也罢,甚至是企业内部的知识库、OA系统,只要涉及到用户自主生成文本的地方,“内容安全”这四个字就是悬在头顶的达摩克利斯之剑…

RocketMQ面试核心要点与分布式消息队列实践

RocketMQ面试核心要点与分布式消息队列实践

2026/8/25 3:04:43

1. RocketMQ面试核心要点解析作为阿里开源的分布式消息中间件,RocketMQ在电商、金融等大厂系统中承担着关键作用。面试官常通过它考察候选人对分布式系统设计的理解深度。我从实际面试经验中提炼出23个高频问题,这些问题覆盖了从基础概念到架构设计的各个…

实战指南:将OpenClaw智能体接入Telegram,打造对话式AI助手

实战指南:将OpenClaw智能体接入Telegram,打造对话式AI助手

2026/8/25 5:14:48

1. 项目概述:当OpenClaw遇见Telegram最近在折腾一个挺有意思的事儿,把OpenClaw这个智能体框架接入了Telegram。简单来说,就是让你在Telegram里,能像跟一个真人助手聊天一样,指挥OpenClaw去完成各种任务,比如…

Vera1.1 图像特征继承技术原理,解决角色变脸问题>

Vera1.1 图像特征继承技术原理,解决角色变脸问题>

2026/8/25 5:14:48

做 AIGC 视频的同学,大概率都踩过角色变脸这个大坑。 同样一个人物,前一帧五官正常,下一帧五官偏移、脸型走形,发型、面部细节直接 “换个人”。哪怕提示词写得再精细,帧与帧之间角色身份割裂,成片直接报废…

客户总问:ISTA 3A、3E、3H、3L 到底有啥区别?一篇讲明白

客户总问:ISTA 3A、3E、3H、3L 到底有啥区别?一篇讲明白

2026/8/25 5:14:48

做包装运输测试这么久,被问得最多的一句话就是:"我这个货到底该做哪个标准?"ISTA 3 系列名字都带个 3,看起来像四胞胎,其实管的场景完全不一样。选错了,钱花了还不顶用。今天用大白话给你捋清楚。…

华微软件参与《企业级前线部署工程(FDE)能力成熟度模型》首次研讨会

华微软件参与《企业级前线部署工程(FDE)能力成熟度模型》首次研讨会

2026/8/25 5:14:48

来源:大数据技术标准推进委员会 当前,企业应用人工智能的主要矛盾正在发生深刻变化:焦点已从“有没有 AI”转向“AI 能否进入生产环境、能否嵌入核心流程、能否持续创造价值”。企业 AI 工程化落地需要解决场景设计、流程再造、数据准备、知…

MySQL 存储空间与索引运维实战:从空间排查到在线扩容

MySQL 存储空间与索引运维实战:从空间排查到在线扩容

2026/8/25 5:14:48

MySQL 存储空间与索引运维实战:从空间排查到在线扩容 适用版本:MySQL 5.7 / 8.0(InnoDB) 读者对象:DBA、运维、后端同学 核心结论先放在这里:库空间看磁盘和 information_schema;索引不会整棵装…

奋斗叙事与幸存者偏差:全球名人成功真相与80后破局之道

奋斗叙事与幸存者偏差:全球名人成功真相与80后破局之道

2026/8/25 5:04:48

核心结论 全球名人的成功中,极端努力是真实的、普遍存在的——曼德拉27年牢狱、邓小平三落三起、马斯克睡工厂、法拉第从装订学徒自学成才,这些都有可靠记载。但努力是必要条件,不是充分条件:意大利卡塔尼亚大学 Pluchino 团队 2…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/24 19:53:32

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/24 19:56:07

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/24 21:16:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

2026/8/25 0:04:34

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

2026/8/25 0:04:35

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

2026/8/25 0:04:35

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…