store GetQuery vectors openai js
1.0.0
このリポジトリには、openai埋め込みとJavaScriptを使用してSupabaseを使用して独自のデータを保存および照会する方法に関するコードが含まれています。
開始する前に、次のセットアップがあることを確認してください。
リポジトリをクローンします:
git clone https://github.com/muzammildafedar/custom-chatgpt-using-js.git
cd your-repo依存関係をインストールします:
npm install openai
npm install @supabase/supabase-jsコードのプレースホルダー値を実際のサパバーズとOpenai資格情報に置き換えます。
const supabaseUrl = 'Your Supabase URL' ;
const supabaseKey = 'Your Supabase API Key' ;
const openaiConfig = {
apiKey : 'Your OpenAI API Key' ,
} ; storeembeding(タイトル、ボディ、埋め込み)説明:提供されたタイトル、ボディ、および埋め込みをサパベースデータベースに保存します。
queryembedings(query、matchthreshold、matchcount)説明:提供されたクエリ、しきい値、およびcountに一致する埋め込みのためのsupabase supabase。
GetAnswer(Query、投稿)説明:提供されたクエリとマッチングドキュメントに基づいて、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);