ReadMe
يوثق هذا ReadMe عادةً أي خطوات ضرورية لتوصيل التطبيق الخاص بك وتشغيله.
كومة التكنولوجيا
- بيثون 3.9
- fastapi
- Faiss-CPU == 1.7.4
- Langchain == 0.0.207
- pinecone-client
- PGVector
تكامل الطرف الثالث
- SendGrid - إرسال رسائل البريد الإلكتروني
- YouTube-Transcript-API-الحصول على نص url youtube
- DOCX2TXT - الحصول على نص من ملف docx
- PYPDF - الحصول على نص من ملف PDF
- النص السيلينيوم من ملف URL
- لوادر مستندات أخرى ومكتبات تحليل البيانات
إعداد المشروع
تثبيت التبعيات في ملفات المتطلبات
- PIP تثبيت -r متطلبات. txt
أضف Openai ومفتاح API الآخر في ملف ENV
راجع sample.env للحصول على أسماء متغيرة واستخدم backend.env كملف env الفعلي
قم بتكوين المتغيرات الثابتة في ثابت
تكوين قاعدة بيانات المتجهات:
- قم بتكوين التطبيق وفقًا لقاعدة بيانات المتجه الخاصة بك
إرشادات أخرى:
- قم بتغيير كيفية تحليل البيانات وفقًا لتناسب متطلباتك المخصصة
- قم بتغيير المتغيرات الثابتة وفقًا لحالات الاستخدام
- قم بتعديل رمز Boilerplate لحالات الاستخدام المحددة لمشروعك
سمات
- نقاط النهاية و utilites للوظائف العامة
- إنشاء ضمانات ناقلات - من فيديو YouTube أو صفحة HTML أو Litemap أو URL أو PDF أو DOCX أو JSON أو ملف نصي أو CSV أو قاعدة بيانات علائقية
- السؤال والإجابة بناءً على بيانات مخصصة مع مصادر دقيقة
- تجاوز عدد الرمز المميز والرمز المميز معالجة الأخطاء مع tiktoken
- دعم ناقل DB مختلف لنقاط نهاية الاختلاف
تعزيز المستقبل
- تدفق استجابة Openai في الوقت الفعلي للواجهة الأمامية
- أضف بعض وظيفة الأدوات المساعدة وتحسين وظائف تلك الموجودة.
- جعل الكود أكثر وحدات وقابلة للتكوين
IDE
- pycharm
- مقابل الكود
- نص سامي
إعداد المشروع
- ملخص الإعداد
- إعدادات
- التبعيات
- تكوين قاعدة البيانات
- كيفية إجراء الاختبارات
- تعليمات النشر
اتفاقيات الترميز
- PEP8
- اكتب رمزًا معياريًا وقابل للتكوين
- لا تضع رمزًا معتمدًا أو الواردات غير المستخدمة في الرمز الرئيسي
- يجب استخدام الواردات المطلقة بدلاً من الواردات النسبية
- استخدام السلاسل f بدلاً من .Format () أو ٪ s
- يجب أن تكون أسماء الفصل في Camelcase
- يجب أن تكون أسماء الوظائف والأسماء المتغيرة في Snake_Case
- استخدام تلميحات النوع
- استخدام docstrings
- استخدام التسجيل
إرشادات المساهمة
- اختبارات الكتابة
- مراجعة الكود
- إرشادات أخرى
إعادة تمييز
- تثبيت redis: إعادة تثبيت pip redis aioredis
- تجميد المتطلبات: تجميد PIP> المتطلبات. txt
- إضافة REDIS_HOST_URL في ملف .env
- يتم إنشاء مثيل Redis في ملف Main.py ، في حدث ON_STARTUP
تكامل الكرفس
- تثبيت الكرفس: PIP تثبيت الكرفس
- تجميد المتطلبات: تجميد PIP> المتطلبات. txt
- أضف celery_broker_url في ملف .env
- يتم إنشاء مثيل الكرفس في الوحدة الأساسية ، في celery_app
- يتم إنشاء مهام الكرفس في وحدة العمال في دليل الجذر
- بدأ عامل الكرفس باستخدام الأمر: celery -a app.worker worker -l info -c 1
الكرفس فوز التكامل
- تثبيت الكرفس: PIP تثبيت الكرفس
- تجميد المتطلبات: تجميد PIP> المتطلبات. txt
- يتم إنشاء مثيل Beat Celery في وحدة العمال في الدليل الجذر
- أثناء إضافة مهام جديدة ، أضفها في وحدة العمال في دليل الجذر مع الوقت المحدد في الثواني
- بدأ Beat Celery باستخدام Command: Celery -A App.worker Beat -L Info
تكامل الحارس
- تثبيت Sentry SDK: PIP تثبيت Sentry-SDK
- تجميد المتطلبات: تجميد PIP> المتطلبات. txt
- يتم إنشاء مثيل Sentry في ملف Main.py