私たちの不一致に参加してください - 私たちは生成AIで最も友好的で素敵な開発グループの一人です!
多くのフレームワークとは異なり、HonojsとJSonnetの上にそれを構築しました。どちらもそれぞれCloudFlareとGoogleによって構築されています。だからあなたが私を信頼していなくても...あなたは彼らを信頼することができます;)
JSONのフレーバーや特定のDSL(本質的に壊れやすい)を構築し、uコンピレーションの手順を実行しません。私たちの基礎となるライブラリは、堅実で安定しています。
EdgeChainsでは、生成AIに対して独自のアプローチをとっています。GenerativeAIは、UIおよびライブラリデザインパターンの課題ではなく、展開および構成管理の課題であると思います。この問題を別のドメイン(Kubernetes Config Management)で解決した技術の上に構築し、それを生成AIにもたらします。 EdgeChainsは、BORGインフラストラクチャで膨大な量の構成コードを管理している経験に基づいて、もともとGoogleによって構築されたJSonnetの上に構築されています。
edgechainsはあなたに与えます:
生成AIに慣れていないほとんどの人は、Openaiまたは他のLLMを使用する方法は、単に質問をして魔法のように返信することだと考えています。答えは非常に異なって複雑です。
生成AI、OpenAI、およびLLMSは、非常に具体的な方法でプロンプトを作成する必要があります。プロンプトを書くこれらのそれぞれの方法は非常に複雑で非常に複雑であり、実際には非常に複雑であるため、このために公開されている研究論文があります。例えば:
さらに、これらの迅速な手法は1つの種類のLLMで機能しますが、他のLLMでは動作しません。 GPT-3.5に対して特定の方法で記述されているプロンプトとチェーンの場合、同じ目標を達成するためにLLAMA2のために書き直す必要があります。これにより、プロンプトが数が爆発し、バージョンと管理が困難になります。
プロンプトは時間とともに変化します。これは迅速なドリフトと呼ばれます。 ChatGptの行動がどのように変化するかを示すのに十分な公開された研究があります。インフラストラクチャは、このドリフトでバージョン/変更するのに十分な能力がある必要があります。プロンプトが多くのレイヤーの下に隠されているライブラリを使用する場合、これを行うことは不可能になります。あなたが何もしなかったとしても、あなたの制作コードは時間の経過とともに腐敗します。
- ChatGptの動作は時間とともにどのように変化していますか?
生産における大きな課題の1つは、プロンプトとチェーンのテストを続け、それらを迅速に繰り返す方法です。あなたのプロンプトが多くのライブラリと抽象化の下に座っている場合、これは不可能です。しかし、あなたのプロンプトがコードの外側に住み、宣言的である場合、これは簡単です。実際、EdgeChainsでは、プロンプトとチェーンのロジック全体をS3またはAPIに置くことができます。
各プロンプトまたはチェーンには、それに関連するトークンコストがあります。特定のプロンプトは非常に良いと思うかもしれません...しかし、それは膨大な量のトークンを消費しているかもしれません。たとえば、チェーンオブテルスタイルのプロンプトは、少なくとも3倍の量の出力トークンを通常のプロンプトと同じくらい多く消費します。これを管理できるように、フレームワークに細粒の追跡と測定が組み込まれている必要があります。 EdgeChainsにはこれが組み込まれています。
git clone https://github.com/arakoodev/EdgeChains/
cd EdgeChains
このセクションでは、PDF機能を使用してチャットを利用する方法について、開発者に指示を提供します。これらの手順に従うことにより、機能をプロジェクトにシームレスに統合できます。
cd JS/edgechains/examples/chat-with-pdf/
npm install
secrets.jsonnetをセットアップします local SUPABASE_API_KEY = "your supabase api key here";
local OPENAI_API_KEY = "your openai api key here";
local SUPABASE_URL = "your supabase url here";
{
"supabase_api_key":SUPABASE_API_KEY,
"supabase_url":SUPABASE_URL,
"openai_api_key":OPENAI_API_KEY,
}
create table if not exists documents (
id bigint primary key generated always as identity,
content text,
embedding vector (1536)
);
create or replace function public.match_documents (
query_embedding vector(1536),
similarity_threshold float,
match_count int
)
returns table (
id bigint,
content text,
similarity float
)
language sql
as $$
select
id,
content,
1- (documents.embedding <=> query_embedding) as similarity
from documents
where 1 - (documents.embedding <=> query_embedding) > similarity_threshold
order by documents.embedding <=> query_embedding
limit match_count;
$$;
サーバーを開始します:
npm run start GET Endpointを押します。
http://localhost:3000/chatWithpdf ? question=who is nirmala sitarama
EdgeChainsに貢献したい場合は、貢献CLAを必ずお読みください。このプロジェクトは、EdgeChainsの行動規範に準拠しています。参加することで、このコードを維持することが期待されます。
リクエストとバグを追跡するためにGitHubの問題を使用します。
私たちは、次の個人と彼らの貢献とインスピレーションのために、私たちの心からの感謝を表明したいと思います。
EdgeChainsは、GNU Affero General Public License v3.0および商業ソフトウェアとしてライセンスされています。商業ライセンスについては、このgithubでお問い合わせいただくか、問題を提起してください。