chatpdf-gpt هو مشروع مبتكر يسخر قوة إطار Langchain ، وهو أداة تحويلية لتطوير التطبيقات التي تعمل بنماذج اللغة. يستخدم هذا التطبيق الفريد Langchain لتقديم واجهة دردشة تتصل بمستندات PDF ، مدفوعة بقدرات نماذج لغة Openai.
في هذا المشروع ، يرتبط نموذج اللغة بمصادر بيانات أخرى ويسمح بالتفاعل مع بيئته ، وبالتالي يجسد مبادئ إطار Langchain. يمكن للمستخدمين تحميل مستند PDF ، الذي يتم معالجته وحفظه بعد ذلك في Pinecone ، وقاعدة بيانات المتجهات ، وتخزين supabase. يمكن للمستخدمين بعد ذلك الدردشة مع PDF المحمّل ، مع استخدام الذكاء الاصطناعي لمحتوى المستند للانخراط في محادثة ذات معنى.
يعتمد المشروع على Framework Next.js ، وهو خيار رائد لإنشاء تطبيقات ويب قوية وكاملة. تم تصميم مكونات واجهة المستخدم بشكل جميل باستخدام مكتبة Radix UI وتصميمها مع CSS Tailwind ، استنادًا إلى القالب الأنيق الذي توفره Shadcn/UI.
تم تجهيز 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 في دليل الجذر وملء بيانات الاعتماد الخاصة بك (Openai ، Pinecone ، Supabase) كما هو موضح في ملف .env.example .
إنشاء مخطط قاعدة البيانات باستخدام Prisma. يجب أن تجعلك قد قمت بتشغيل Prisma prisma generate
npx prisma migrate dev --name init
بدء الخادم:
npm run dev
Chatpdf-GPT هو مشروع مفتوح المصدر ونرحب بحرارة المساهمات من الجميع. يرجى قراءة دليل المساهمة لدينا لمزيد من التفاصيل حول كيفية البدء.
هذا المشروع يقف على أكتاف العمالقة. لن يكون عملنا ممكنًا بدون مجموعة واسعة من المكتبات والأطر والأدوات التي أنتجها مجتمع المصدر المفتوح. على وجه التحديد ، نود أن نعرب عن تقديرنا ل:
فريق Langchain لإطاره الرائد للتطبيقات التي تعمل بنماذج اللغة.
Openai لنماذج اللغة الحديثة الخاصة بهم ، والتي تجعل وظائف الدردشة ممكنة.
Supabase لبديل Firebase مفتوح المصدر والذي استخدمناه لبناء الخلفية الآمنة والأداء.
Pinecone لقاعدة بيانات المتجهات الخاصة بهم والتي تتيح تخزين واسترجاع سهلة وفعالة من التضمينات المتجهات.
Next.js و Vercel لإطارهما الشامل الذي سمح لنا ببناء تطبيق الويب الكامل هذا بسهولة.
Shadcn لمكونات واجهة المستخدم الأنيقة التي بنينا عليها لإنشاء واجهة جميلة وسهلة الاستخدام.
RADIX UI لمكتبة مكونة قوية ويمكن الوصول إليها وقابلة للتخصيص التي تشكل العمود الفقري لواجهة المستخدم الخاصة بنا.
@React-PDF-Viewer لمكون React القوي ، والذي يتيح للمستخدمين معاينة وثيقة PDF الفعلية التي يتفاعلون معها.
وجميع التبعيات الأخرى ، المدرجة وغير المدرجة على حد سواء ، والتي ساهمت في تحقيق هذا المشروع. مساهمتنا متواضعة مقارنة بجهدهم الجماعي.
chatpdf-gpt هو برنامج مفتوح المصدر مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.