Butterbase 原生 RAG 教程:只需 2 次 API 调用实现文档语义搜索与智能问答
Butterbase 原生 RAG 教程只需 2 次 API 调用实现文档语义搜索与智能问答【免费下载链接】butterbase-ossOpen-source backend-as-a-service. Postgres, auth, storage, functions, AI gateway, MCP.项目地址: https://gitcode.com/gh_mirrors/bu/butterbase-ossButterbase 原生 RAG是这款开源 BaaS 平台内置的检索增强生成Retrieval-Augmented Generation能力你只需两次 API 调用——ingest导入文档、query语义搜索即可让应用拥有读懂自己的文档的智能问答能力。分块、向量化text-embedding-3-small、pgvector 存储全部由平台托管新手无需搭建任何 ML 基础设施。本文带你用最短路径跑通 Butterbase RAG从创建集合、导入文档到带 AI 生成的语义问答并附常用参数调优技巧 什么是 Butterbase 原生 RAGRAG 的核心理念先用语义检索从文档库中捞出最相关的片段再交给大模型生成答案。相比把文档全部塞进提示词RAG 更省 token、答案可溯源、知识库可随时更新。Butterbase 把整条 RAG 流水线做成了平台原语官方文档一句话总结见 RAG (Native) 概念文档Ingest documents and query them with natural language. The platform handles chunking, embedding, and vector storage — no ML infrastructure required.它的三步工作原理Ingest 导入—— 上传文件或直接传文本平台自动解析、切分成带重叠的 chunk 并生成向量Store 存储—— chunk 与向量写入你应用自己的 Postgrespgvector HNSW 索引不经过第三方向量数据库Query 查询—— 自然语言提问平台将其向量化后做余弦相似度检索可选地再调用 LLM 合成带引用的答案。对应的底层表结构定义在 010_rag_tables.sql其中_rag_chunks表上的 HNSW 索引保证了检索速度。2 次 API 调用Ingest 与 QueryButterbase RAG 的所有端点都在/v1/{app_id}/rag/下完整参数见 RAG API 参考。核心只有两个动作调用端点作用① 导入POST /v1/{app_id}/rag/collections/{name}/ingest把文件PDF/TXT/MD/DOCX/XLSX/PPTX/HTML/CSV或纯文本变成向量 chunk② 查询POST /v1/{app_id}/rag/collections/{name}/query语义搜索可选synthesize: true直接返回 AI 答案第 1 步Ingest 导入文档导入前需要有一个**集合Collection**作为文档的命名空间。支持两种导入来源纯文本body 里传text 可选的filename已上传的文件先通过 Storage 上传拿到objectId再把它作为storage_object_id传给 ingest 端点。POST /v1/{app_id}/rag/collections/support-docs/ingest { text: Refunds are accepted within 30 days of purchase..., filename: refund-policy.txt }导入是异步的接口立即返回status: pending和documentId之后文档会经历pending → processing → ready失败则进入failed轮询文档状态端点即可。第 2 步Query 语义搜索 智能问答POST /v1/{app_id}/rag/collections/support-docs/query { query: What is the refund policy?, topK: 5, threshold: 0.7, synthesize: true }响应会返回按相似度排序的chunks含score、来源filename、metadata开启synthesize后还会多一个answer字段由 LLM 基于检索到的片段生成并引用[Source N]。TypeScript SDK10 行代码接入 RAG不想手写 fetch官方 SDK 的 RagClient 已封装好全部能力类型定义见 types.tsimport { createClient } from butterbase/sdk; const bb createClient({ appId: app_abc123, apiUrl: https://api.butterbase.ai }); // 创建共享集合 await bb.rag.createCollection({ name: support-docs, accessMode: shared }); // 导入文档file 或 text 二选一 await bb.rag.ingest(support-docs, { text: Refunds are accepted within 30 days..., filename: refund-policy.txt }); // 语义查询 AI 合成答案 const { data } await bb.rag.query(support-docs, { query: What is the return policy?, synthesize: true, }); console.log(data.answer);SDK 的ingest方法还很贴心传file时会自动先走 Storage 上传、再携带storage_object_id调用 ingest两步合并为一步。CLI 一键操作collections、ingest、query命令行党可以用 CLI 的 rag 命令 在终端里完成同样的事butterbase rag collections create support-docs --access-mode shared—— 创建集合butterbase rag ingest ./manual.pdf --collection support-docs—— 自动上传并导入本地文件butterbase rag query support-docs -q 如何退货 --synthesize—— 终端直接打印 AI 答案与来源分数加--json可输出原始 JSON方便接入自己的脚本。访问控制3 种 accessMode 与 RLSRAG 集合与普通表共用同一套 RLS行级安全模型创建集合时选定模式行为private默认每个用户只能检索自己导入的文档RLS 策略自动创建shared所有已登录用户可检索集合内全部文档适合帮助文档等公共知识库custom不自动生成策略你可以自己写CREATE POLICY定制规则这意味着多租户隔离是白送的private模式下用户 A 的私有文档绝不会出现在用户 B 的检索结果里——无需写一行安全代码。策略的创建逻辑可在 RAG 路由源码 中查看。参数调优topK、threshold 与 filter想让检索更准调好这三个参数topK默认 5返回最相关的 chunk 数量。文档较长、答案分散时可调大到 8~10threshold0–1最低余弦相似度。设成0.7左右可以过滤掉似是而非的片段宁缺毋滥filter按 metadata 键值对过滤。导入时用metadata: { category: billing }打标查询时传filter: { category: billing }就能只搜账单类文档——用一套集合管理多类知识库。费用提示embedding 调用与synthesize的 LLM 调用都计入你的 AI 积分额度上传文件计入存储配额没有额外的 RAG 专项收费。常见问题FAQ问支持哪些文件格式答.txt、.md、.pdf、.docx、.xlsx、.pptx、.html、.csv以及直接传纯文本。问导入要等多久答ingest 接口立即返回pending处理是异步的。轮询GET .../documents/{id}直到状态变为readySDK 中为bb.rag.getDocument。问向量存在哪里答存在你应用自己的 Postgres 里pgvectorHNSW 索引数据不出你的库删除文档或集合即级联删除全部向量不可恢复、请谨慎。相关源码与文档概念文档RAG (Native)API 参考RAG API服务端实现services/control-api/src/routes/rag.tsSDK 客户端packages/sdk/src/rag/rag-client.ts数据表结构db/data-plane/010_rag_tables.sql从ingest到query两次调用就把语义搜索和智能问答装进你的应用——这就是 Butterbase 原生 RAG 的全部 【免费下载链接】butterbase-ossOpen-source backend-as-a-service. Postgres, auth, storage, functions, AI gateway, MCP.项目地址: https://gitcode.com/gh_mirrors/bu/butterbase-oss创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

如何为AlphaGBM Skills贡献代码:从mock数据到提交PR的完整开发者指南

如何为AlphaGBM Skills贡献代码:从mock数据到提交PR的完整开发者指南

如何为AlphaGBM Skills贡献代码:从mock数据到提交PR的完整开发者指南 【免费下载链接】skills Bring realtime market data and research workflows into Claude Code, Cursor & beyond — 29 open-source Skills for stocks, options and commodities. 项目地…

2026/9/26 21:00:23 阅读更多 →
统一管理!一个给 AI Agent 用的可视化技能管理器!

统一管理!一个给 AI Agent 用的可视化技能管理器!

大家好,我是 Java陈序员。 现在同时用好几个 AI 编程助手的人不少。写代码开着 Cursor, 命令行里跑 Claude Code, 公司那边还有一套 Copilot。这些工具都支持技能,也就是一个个 SKILL.md 文件,放进各自的技能目录,助手就会按里面的…

2026/9/26 21:03:50 阅读更多 →
AI出海全链路实战:从算力调度到大模型部署与生态协同

AI出海全链路实战:从算力调度到大模型部署与生态协同

1. 从算力到生态:AI出海这件事到底在做什么2025年过半,我身边做AI的朋友几乎都在聊同一个话题:出海。不是那种“把产品翻译成英文挂个落地页”的出海,而是从算力调度、模型部署到本地化生态协同的全链路出海。这个词听起来很大&am…

2026/9/26 20:59:10 阅读更多 →

最新新闻

DeskcommCRM系统设计与落地实践:从坐席台到客户全生命周期管理

DeskcommCRM系统设计与落地实践:从坐席台到客户全生命周期管理

直接说结论:DeskcommCRM 这个名字,第一眼看上去像是某个企业自研的客户管理系统代号,但拆开来看就很有意思。Desk 代表桌面作业场景,comm 是 communication 的缩写,强调沟通能力,后面的 CRM 才是客户关系管…

2026/9/26 21:03:43 阅读更多 →
全国30m土地利用数据实战:从坐标投影到变化检测的Python全链路

全国30m土地利用数据实战:从坐标投影到变化检测的Python全链路

简介:这份资源为2018年全国土地利用30米分辨率遥感数据,面向GIS、遥感、城乡规划、生态环保等方向的研究人员与学生,用于土地覆盖分类、时空变化分析与制图实践。数据以30米栅格像元刻画耕地、林地、草地、建设用地、水域等地类,遵…

2026/9/26 21:03:43 阅读更多 →
SpringBoot+Vue实现城市轨道交通安全管理系统:闭环、权限与可视化

SpringBoot+Vue实现城市轨道交通安全管理系统:闭环、权限与可视化

毕设选了《基于SpringBootVue的城市轨道交通安全管理系统》,十个同学里八个第一反应是同一个问题:这不就是一个后台管理CRUD加上几张统计图表吗?说实话,做之前我也这么想,直到把应急预案、隐患排查、巡检整改这些流程真…

2026/9/26 21:03:43 阅读更多 →
Navicat for MySQL 10.1.7 绿色中文版原理与实战指南

Navicat for MySQL 10.1.7 绿色中文版原理与实战指南

简介:本资源为Navicat for MySQL 10.1.7绿色中文版完整安装包,面向数据库初学者、运维人员及开发工程师,解决MySQL可视化管理工具的快速部署与本地化使用需求,无需安装即可运行,特别适合离线环境或权限受限的开发测试场…

2026/9/26 21:03:43 阅读更多 →
Agent-native实战:让AI代理真正能调用你的业务系统

Agent-native实战:让AI代理真正能调用你的业务系统

把大模型接到一个真实业务系统时,我第一反应是“对话框一放,问题不大”。可真做起“让AI代理自动完成一单操作”时,才发现完全不是这么回事。系统有界面、有接口、有数据,但代理进去之后四处碰壁——不是模型笨,而是这…

2026/9/26 21:03:43 阅读更多 →
NVMe全闪存储阵列选型与性能调优实战指南

NVMe全闪存储阵列选型与性能调优实战指南

1. 为什么2026年大家都在追NVMe全闪存储阵列过去一年多,我陆续帮几个团队做过存储方案选型和落地,一个是搞AI大模型训练的,一个是做芯片前端验证的,还有一个是影视后期的工作室。他们碰到的瓶颈出奇一致——计算资源早就堆上去了&…

2026/9/26 21:02:43 阅读更多 →

日新闻

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、…

2026/9/26 0:00:25 阅读更多 →
学校官网模拟全流程实践:从页面布局到后端接口与部署

学校官网模拟全流程实践:从页面布局到后端接口与部署

如果你正在找一门 Web 大作业的题目,或者刚开始接触 Web 前端开发想做点能拿来展示的东西,“学校官网模拟”几乎是最稳的选择。题目看着简单,但要把导航、新闻列表、轮播 Banner、二级页面、后台数据都串起来,其实已经把前端布局、…

2026/9/26 0:00:25 阅读更多 →
超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

简介:这是一份面向游戏开发初学者与C进阶学习者的超级玛丽(超级马里奥)游戏源码,基于C面向对象编程实现,适合想通过经典项目理解游戏主循环、角色类设计、地图关卡加载与物理碰撞检测的读者参考。压缩包共49个文件&…

2026/9/26 0:00:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/26 20:27:29 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →