Este repositório contém código para como armazenar e consultar seus próprios dados usando o OpenAi incorpeddings e supabase usando JavaScript.
Antes de começar, verifique se você tem o seguinte configuração:
Clone o repositório:
git clone https://github.com/muzammildafedar/custom-chatgpt-using-js.git
cd your-repoInstale dependências:
npm install openai
npm install @supabase/supabase-jsSubstitua os valores de espaço reservado no código pelas suas credenciais reais de supabase e openai:
const supabaseUrl = 'Your Supabase URL' ;
const supabaseKey = 'Your Supabase API Key' ;
const openaiConfig = {
apiKey : 'Your OpenAI API Key' ,
} ; Storeembedding (título, corpo, incorporação) Descrição: armazena o título fornecido, o corpo e a incorporação no banco de dados supabase.
Queryembeddings (consulta, matchthreshold, MatchCount) Descrição: Consultas supabase para incorporações que correspondem à consulta, limite e contagem fornecidos.
GetAnswer (consulta, postagens) Descrição: Gera uma resposta do OpenAI GPT-3.5 com base na consulta fornecida e nos documentos correspondentes.
Crie a tabela para armazenar incorporação
create table posts (
id serial primary key,
title text not null,
body text not null,
embedding vector(1536)
);
Para "conectar" o OpenAI de nossas incorporações, precisamos criar uma função no Postgres, encontre os valores correspondentes mais próximos quando recebidos um vetor.
create or replace function match_posts (
query_embedding vector(1536),
match_threshold float,
match_count int
)
returns table (
id bigint,
body text,
title text,
similarity float
)
language sql stable
as $$
select
posts.id,
posts.body,
posts.title,
1 - (posts.embedding <=> query_embedding) as similarity
from posts
where 1 - (posts.embedding <=> query_embedding) > match_threshold
order by similarity desc
limit match_count;
$$;
Além disso, podemos criar um índice em nossa tabela de postagens para acelerar a consulta.
create index on posts using ivfflat (embedding vector_cosine_ops)
with
(lists = 100);