Building search-based RAG using Claude, Datasette and Val Town
Retrieval Augmented Generation (RAG) is a technique for adding extra “knowledge” to systems built on LLMs, allowing them to answer questions against custom information not included in their training data. …
这篇文章 详细阐述了如何用 Anthropic 结合 SQLite 的 full-text search 来实现 RAG,流程如下:
- 通过 Anthropic 的 tools 功能,将用户的搜索拆分为查询关键字。
- 通过这些关键字对 SQLite 进行全文检索得到按 rank 排序的匹配结果。
- 将匹配结果作为 assistant 的内容(即私有数据)结合用户的初始问题发送给 Anthropic。
- 返回的结果即包含了私有数据集的 LLM 回答结果。
主要使用到了 tools 将语义化的内容结构化,然后用了 full-text search 而不是 vector search,相对其他的 RAG 实现,这种方式好像更简单,不知道效果怎么样。(中文的效果一定不太好,因为 SQLite 的全文索引对中文不友好)。