{"repo":"luochang212/CKBI","free":true,"listed":false,"github":"https://github.com/luochang212/CKBI","clone":"git clone https://github.com/luochang212/CKBI.git","description":"基于 ClickHouse 的 ChatBI 应用","language":"TypeScript","stars":13,"topics":["agent","clickhouse","nextjs","webapp"],"license":"MIT","category":"deployment-docker-iac","readme_excerpt":"CKBI 基于 ClickHouse 数据库的 ChatBI 应用。 你可以导入任何感兴趣的数据，以对话的方式探索数据。应用内预置了一个动漫数据库，如果不知道问什么，可以用预设的四个 Prompt 与之交互。 一、技术栈 - 前端 : Next.js （模板） - 后端 : Qwen Agent - 数据库 : ClickHouse - MCP : mcp-clickhouse - 部署 : docker compose 二、特性 - 容器化部署 ：docker compose 一键启停 - OLAP 引擎 ：内置 ClickHouse，支持千万级数据的高速查询 - 推理 Agent ：开启 ReAct 模式，Agent 具备更强的规划与工具调用能力 - 现代化前端 ：基于深受 startup 们喜爱的 Next.js 框架开发 三、配置文件 docker compose 的环境变量在 .env 文件，按律不上传，其格式如下： 上述配置可能更新不及时，亦可参考 .env.example 中的配置。 [!NOTE] 请前往 阿里云百炼 申请 DASHSCOPE API KEY 。 四、本地运行 1）配置 .env 文件 在当前路径下，创建并配置 .env ： 2）启动 Docker 这包括： - 下载并启动 Docker Desktop - 对于中国大陆用户，需要 配置镜像源 在 terminal 运行以下命令，确认 docker 的客户端和服务端均成功启动： 3）启动服务 [!WARNING] 对于 Windows 用户，若 .sh 文件为 CRLF 格式，需转换成 LF 格式，否则 docker compose 将无法正常启动。为处理这种情况，请在当前目录打开 PowerShell，执行转换程序： 在当前路径下运行以下命令，启动 docker compose： 上述命令将一次性拉起 ChatBI 服务依赖的 5 个容器： - nextjs-dev ：前端服务 - mcp-openai-service ：MCP SSE 和 FastAPI 后端服务 - clickhouse-dev ：ClickHouse 数据库 - postgres-db ：Postgres 数据库（前端依赖） - redis-cache ：Redis 服务（前端依赖） 检查容器是否正常运行： 待前端初始化完成后，打开浏览器访问应用 http://localhost:3000/ [!NOTE] 如以 guest 身份提问，应用无回复，请尝试清除浏览器 cookie 后重试。 如果你像我一样，导入了动漫数据集 top-popular-anime，可以这样提问： - 所有动漫的平均评分是多少？ - ID 为 100 的动画的出品方是？ - 评分大于 9.0 的动画有多少？ - 评分人数最多的十部动漫是？ - 评分人数超过一万人的动画中，排名前 5 的是？ - 2023 年开始播出的动画有多少？ - 制作超过 15 部动漫的工作室有哪些？ - 2024 年开始播出的动画中，评分最高的是？ [!NOTE] 囿于 GitHub 对文件大小的限制，本仓库只上传了动漫数据库的前一千行，作为样例。如果希望探索完整的动漫数据，从 top-popular-anime 下载 popular anime.csv 文件，然后替换掉本仓库的 ./backend/init/data/popular anime.csv 文件即可。 4）关闭并删除容器 在当前路径下执行： 五、changelog - [x] 开","default_branch":null,"files":null,"tree":[],"storefront":"/r/luochang212","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/luochang212/CKBI/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}