يأخذ هذا المبتدئ جميع ملفات .mdx في دليل pages ويعالجها لاستخدامها كسياق مخصص في مطالبات إكمال نص Openai.
نشر هذا المبتدئ إلى Vercel. سيقوم تكامل Supabase تلقائيًا بتعيين متغيرات البيئة المطلوبة وتكوين مخطط قاعدة البيانات الخاص بك. كل ما عليك فعله هو تعيين OPENAI_KEY الخاص بك وأنت مستعد للذهاب!
[
يتضمن بناء chatgpt المخصص الخاص بك أربع خطوات:
.mdx في مجلد pages الخاص بك). الخطوة 1. و 2. تحدث في وقت البناء ، على سبيل المثال عندما يقوم Vercel بإنشاء تطبيق Next.js. خلال هذا الوقت ، يتم تنفيذ البرنامج النصي generate-embeddings الذي يؤدي المهام التالية:
Sequencediagram
المشارك فيل
المشارك DB (PGVector)
المشارك Openai (API)
الحلقة 1. قبل العملية قاعدة المعرفة
Vercel->> Vercel: chunk .mdx pages في أقسام
الحلقة 2. إنشاء وتخزين التضمينات
Vercel->> Openai (API): إنشاء التضمين لقسم الصفحة
Openai (API)->> Vercel: ناقل تضمين (1536)
Vercel->> DB (PGVector): تخزين التضمين لقسم الصفحة
نهاية
نهاية
بالإضافة إلى تخزين التضمينات ، يقوم هذا البرنامج النصي بإنشاء فحوصات لكل ملف من ملفات .mdx ويخزن هذا في جدول قاعدة بيانات آخر للتأكد من تجديد التضمين فقط عند تغيير الملف.
الخطوة 3. و 4. يحدث في وقت التشغيل ، في أي وقت يقدم المستخدم سؤالًا. عندما يحدث هذا ، يتم تنفيذ التسلسل التالي للمهام:
Sequencediagram
عميل المشارك
وظيفة حافة المشاركين
المشارك DB (PGVector)
المشارك Openai (API)
عميل->> وظيفة الحافة: {query: lorem ispum}
حرج 3. إجراء البحث في المتجه
وظيفة الحافة->> Openai (API): إنشاء تضمين للاستعلام
Openai (API)->> وظيفة الحافة: ناقل التضمين (1536)
دالة الحافة->> DB (PGVector): بحث التشابه المتجه
DB (PGVector)->> وظيفة الحافة: محتوى المستندات ذات الصلة
نهاية
4 حرج. حقن المحتوى في موجه
وظيفة EDGE->> Openai (API): موجه طلب الإكمال: استعلام + محتوى المستندات ذات الصلة
Openai (API)->> العميل: نص/حدث الحدث: استجابة الإكمال
نهاية
الملفات ذات الصلة لهذا هو مكون SearchDialog (العميل) vector-search (وظيفة الحافة).
يتم تخزين تهيئة قاعدة البيانات ، بما في ذلك إعداد امتداد pgvector في مجلد supabase/migrations الذي يتم تطبيقه تلقائيًا على مثيل Postgres المحلي عند تشغيل supabase start .
cp .env.example .envOPENAI_KEY في ملف .env الذي تم إنشاؤه حديثًا.NEXT_PUBLIC_SUPABASE_ANON_KEY و SUPABASE_SERVICE_ROLE_KEY run:ملاحظة: عليك تشغيل Supabase لاسترداد المفاتيح.
تأكد من تثبيت Docker وتشغيله محليًا. ثم ركض
supabase start لاسترداد NEXT_PUBLIC_SUPABASE_ANON_KEY و SUPABASE_SERVICE_ROLE_KEY run:
supabase statusفي نافذة طرفية جديدة ، قم بتشغيل
pnpm dev.mdx . يمكن القيام بذلك عن طريق إعادة تسمية ملف .md الحالي (أو متوافق).pnpm run embeddings لتجديد التضمينات.ملاحظة: تأكد من تشغيل Supabase. للتحقق ، تشغيل
supabase status. إذا لم يتم تشغيلsupabase start.
pnpm dev مرة أخرى لتحديث NextJS LocalHost: 3000 صفحة تم تقديمها. Apache 2.0