CHATPDF-GPTは、言語モデルを搭載したアプリケーションを開発するための変換ツールであるLangchain Frameworkの力を活用する革新的なプロジェクトです。このユニークなアプリケーションは、Langchainを使用して、Openaiの言語モデルの機能によって駆動されるPDFドキュメントと通信するチャットインターフェイスを提供します。
このプロジェクトでは、言語モデルは他のデータソースに接続されており、その環境との相互作用を可能にするため、Langchainフレームワークの原則を具体化します。ユーザーはPDFドキュメントをアップロードできます。これは、Pinecone、Vectorデータベース、およびSupabaseストレージで処理および保存されます。その後、ユーザーはアップロードされたPDFとチャットでき、AIはドキュメントのコンテンツを利用して意味のある会話を行うことができます。
このプロジェクトは、Next.JSフレームワークに依存しています。これは、堅牢でフルスタックのWebアプリケーションを作成するための主要な選択肢です。 UIコンポーネントは、RADIX UIライブラリを使用して美しく作られ、ShadCN/UIが提供するエレガントなテンプレートに基づいて、Tailwind CSSでスタイル化されています。
CHATPDF-GPTには、次のようなさまざまな操作を示す例が装備されています。
デモを使用してこのプロジェクトの機能をテストするには、Openai、Supabase、およびPineconeに独自の資格情報を提供する必要があります。 Supabaseの場合、必要な資格情報をセットアップおよび取得するために、以下に示されているステップバイステップガイドに従うことができます。 OpenaiおよびPineconeの資格情報を取得するには、段階的なガイドが利用できない場合があるため、対応するドキュメントを参照してください。それぞれのサービスが提供する最新の指示に従っていることを常に確認してください。
Openai
Supabaseで新しいプロジェクトの作成:
データベース接続URLの取得:
この接続文字列は、アプリケーションのDATABASE_URL環境変数に使用されます。
このURLは、アプリケーションのDIRECT_URL環境変数に使用されます。
SUPABASE_URLとSUPABASE_KEYあります。これらの値をコピーします。 SUPABASE_URLはプロジェクトのURLですが、 SUPABASE_KEYはプロジェクトの公開匿名キーです。
Supabaseバケツのセットアップ:
SUPABASE_BUCKETとして使用されます。アプリケーションで環境変数を設定します:
DATABASE_URLDIRECT_URLSUPABASE_KEYSUPABASE_URLSUPABASE_BUCKETこれらのキーを使用すると、アプリケーションがSupabaseサービスと対話できます。
ストレージバケットを公開できるようにするポリシーを設定することは可能ですが、これを慎重に行う必要があります。バケツを公開しやすくすることは、オブジェクトにURLを持っている人なら誰でもアクセスできることを意味します。これはテストに役立つかもしれませんが、生産アプリケーションでは、データのセキュリティを確保するために、より制限的なポリシーを検討する必要があります。さまざまなポリシーの意味を理解するために、常にSupabaseのドキュメントまたはセキュリティの専門家に相談してください。
これにより、要件に従ってプロジェクトのためにSupabaseを設定し、ストレージポリシーを管理できるはずです。
松ぼっくり
ローカルマシンでCHATPDF-GPTをセットアップして実行するには、以下の手順に従ってください。
プロジェクトリポジトリをクローンします:
git clone https://github.com/anis-marrouchi/chatpdf-gpt.git
プロジェクトディレクトリに移動し、PNPMを使用して依存関係をインストールします。
cd chatpdf-gpt
pnpm install
ルートディレクトリに.envファイルを作成し、 .env.exampleファイルに示されているように、資格情報(Openai、Pinecone、Supabase)に入力します。
Prismaを使用してデータベーススキーマを作成します。あなたはあなたがプリスマ生成コマンドprisma generateを実行させる必要があります
npx prisma migrate dev --name init
サーバーを開始します:
npm run dev
chatpdf-gptはオープンソースプロジェクトであり、すべての人からの貢献を温かく歓迎します。開始方法の詳細については、寄稿ガイドをご覧ください。
このプロジェクトは、巨人の肩に立っています。オープンソースコミュニティが生み出したライブラリ、フレームワーク、ツールの膨大な配列がなければ、私たちの仕事は不可能です。具体的には、次のように感謝したいと思います。
Langchainチームは、言語モデルを搭載したアプリケーションの画期的なフレームワークのためのチームです。
最先端の言語モデルについては、チャット機能を可能にします。
Supabaseセキュアとパフォーマンスのバックエンドを構築するために使用したオープンソースファイアベースの代替品。
ベクトル埋め込みの簡単で効率的な保存と取得を可能にするベクトルデータベースのPinecone。
next.jsとvercelは、このフルスタックのWebアプリケーションを簡単に構築できるようにしました。
美しくユーザーフレンドリーなインターフェイスを作成するために構築したエレガントなUIコンポーネント用のShadCN。
UIのバックボーンを形成する、堅牢でアクセス可能なカスタマイズ可能なコンポーネントライブラリ用のRADIX UI。
@React-PDF-Viewerの強力なReactコンポーネントについては、ユーザーが相互作用している実際のPDFドキュメントをプレビューできます。
そして、このプロジェクトの実現に貢献した他のすべての依存関係は、リストされているものとリストされていません。私たちの貢献は、彼らの集合的な努力と比較して控えめです。
CHATPDF-GPTは、MITライセンスに基づいてライセンスされているオープンソースソフトウェアです。