Site RAG
插件介绍
网站上问答的镀铬扩展
#网站抹布
[演示视频](https://www.loom.com/share/2EE8496A1777774577B2684D6B2981BD1A)

用于网站提出问题的镀铬扩展。网站抹布可以索引网站的一页,也可以爬行整个网站。然后,它为索引文档生成嵌入式,并将它们存储在矢量存储数据库中。
当用户提出问题时,网站抹布将从当前页面中获取相关文档,或者整个站点(可自定义)。
## 要求
- [拟人API键](https://console.anththropic.com/) - for llm聊天一代
- [openai api键](https://platform.openai.com/) - 用于嵌入
- [supabase帐户](https://supabase.com/) - vector Store
## 设置
首先,克隆存储库:
``bash
git克隆https://github.com/bracesproul/site-rag.git
````````
``bash
CD位置摊位
````````
然后,安装依赖项:
``bash
纱线安装
````````
并构建:
``bash
纱线构建
````````
###矢量商店
要设置矢量存储,您需要创建一个supabase数据库。然后,在SQL编辑器中,运行以下内容:
````sql
- 启用PGVECTOR扩展以与嵌入向量一起工作
创建扩展向量;
- 创建一个表来存储您的文档
创建表文档(
ID BigSerial主钥匙,
内容文本, - 对应于document.pagecontent
元数据JSONB,对应于document.metadata
嵌入向量(3072)-3072适用于OpenAI嵌入,如果需要,请更改
);
- 创建一个函数以搜索文档
创建函数match_documents(
query_embedding vector(3072),
match_count int默认null,
filter jsonb默认'{}'
)返回表(
id bigint,
内容文字,
元数据JSONB,
嵌入JSONB,
相似性浮动
)
语言PLPGSQL
作为$$
#variable_conflict use_column
开始
返回查询
选择
ID,
内容,
元数据,
(嵌入:: text):: jsonb作为嵌入,
1-(documents.embedding <=> query_embedding)作为相似性
从文件
元数据 @>过滤器
通过文档订购<=> query_embedding
限制match_count;
结尾;
$$;
````````
## 用法
要使用扩展名,请转到[Chrome:// extensions/](Chrome:// extensions/),然后单击“加载打开包装”。从那里,选择此存储库的“ Dist”目录。
加载后,打开扩展名并访问设置页面。在这里,您可以添加API键和Supabase凭据。您还可以自定义索引设置,例如块大小和重叠。