Этот репозиторий содержит код для хранения и запроса ваших собственных данных, используя Enterdings и Supabase Openai, используя JavaScript.
Прежде чем начать, убедитесь, что у вас есть следующая настройка:
Клонировать репозиторий:
git clone https://github.com/muzammildafedar/custom-chatgpt-using-js.git
cd your-repoУстановить зависимости:
npm install openai
npm install @supabase/supabase-jsЗамените значения заполнителей в коде вашим фактическим учетным данным Supabase и Openai:
const supabaseUrl = 'Your Supabase URL' ;
const supabaseKey = 'Your Supabase API Key' ;
const openaiConfig = {
apiKey : 'Your OpenAI API Key' ,
} ; Столевое (заголовок, тело, внедрение) Описание: хранит предоставленное название, тело и встраивание в базу данных Supabase.
Queryembeddings (Query, MatchThreshold, MatchCount) Описание: Запросы Supabase для вторжений, которые соответствуют предоставленному запросу, порогу и подсчету.
GetaNswer (запрос, сообщения) Описание: генерирует ответ от OpenAI GPT-3.5 на основе предоставленного запроса и соответствующих документов.
Создать таблицу для хранения вторжений
create table posts (
id serial primary key,
title text not null,
body text not null,
embedding vector(1536)
);
Чтобы «подключить» Openai к нашим вставкам, нам нужно создать функцию в Postgres, найти наиболее близкие значения, когда дают вектор.
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;
$$;
Кроме того, мы можем создать индекс в нашей таблице сообщений, чтобы ускорить запрос.
create index on posts using ivfflat (embedding vector_cosine_ops)
with
(lists = 100);