内容提要
ChatGPT面临的挑战之一是如何处理私有数据集。通过“检索插件”,ChatGPT能够访问数据库信息。Supabase为OpenAI提供Postgres和Supabase实现,帮助开发者构建插件。该插件允许ChatGPT动态提取外部数据,如PDF文档和知识库,用户可以将Postgres文档上传至Supabase数据库,并通过插件与ChatGPT互动,获取相关信息。
延伸解读
Postgres与Supabase实现的差异
文章指出,Postgres版本使用psycopg2库直接连接数据库,而Supabase版本通过PostgREST交互。后者适合需要行级安全或计划在ChatGPT之外使用检索数据的场景。两者共享相同的数据库模式,因此可以轻松切换。
检索插件的工作原理
检索插件将文档分割成小块,使用OpenAI的text-embedding-ada-002模型转换为嵌入向量,并存入向量数据库。当用户提问时,插件查询数据库,通过内积距离函数找到最相关的文档片段,并返回给ChatGPT生成回答。
构建示例的步骤与注意事项
文章演示了将Postgres文档上传至Supabase数据库,并通过插件让ChatGPT回答相关问题。步骤包括:fork检索插件仓库、安装依赖、创建Supabase项目、设置环境变量、运行插件、上传文档。上传后,文档被自动分块并嵌入,共产生7904条记录。为提升查询速度,可创建ivfflat索引,但需注意这是近似最近邻搜索。
扩展应用与潜在用途
除了ChatGPT,检索插件还可嵌入网站或文档,或构建Slack、Telegram机器人来回答公司或产品相关问题。只需调用OpenAI API对检索到的数据生成摘要即可。这为知识库的利用提供了更多可能性。
Q&A
ChatGPT如何处理私有数据集?
ChatGPT通过“检索插件”访问数据库信息,从而处理私有数据集。
Supabase在ChatGPT插件中起什么作用?
Supabase为OpenAI提供Postgres和Supabase实现,帮助开发者构建插件。
如何将Postgres文档上传至Supabase数据库?
用户可以下载Postgres文档并使用插件的/upsert-file端点上传至Supabase数据库。
检索插件是如何提取外部数据的?
检索插件将文档分成小块,并使用OpenAI的文本嵌入模型将其转换为嵌入,存储在向量数据库中。
使用ChatGPT插件时需要哪些环境变量?
需要设置OPENAI_API_KEY、DATASTORE、SUPABASE_URL和SUPABASE_SERVICE_ROLE_KEY等环境变量。
如何在ChatGPT中集成自定义插件?
在ChatGPT仪表板中注册插件,输入localhost:3333作为域名即可将插件集成到ChatGPT中。