قم بتغذية أفلام Plex التي شاهدتها مؤخرًا في سلسلة LLM التي تدعم RAG للحصول على توصيات بناءً على سجل المشاهدة الخاص بك.
ستحتاج إلى شيئين:
preferences.xml
في مسار التثبيت. أقوم بتشغيل Plex على Synology NAS باستخدام Package Center، لذلك وجدت ما لدي في /PlexMediaServer/AppData/Plex Media Server/Preferences.xml
. قم بتوفير كل منهما لمتغيرات البيئة PLEX_ADDRESS
و PLEX_TOKEN
.
عند التمهيد الأولي، سيكتشف النظام ما إذا كانت مكتبة Plex الخاصة بك مخزنة في قاعدة بيانات المتجهات. إذا لم يكن الأمر كذلك، فسيتم استرداد الوسائط الخاصة بك. تحتاج إلى توفير المكتبة الافتراضية لتنزيل الوسائط من خلال متغير البيئة PLEX_DEFAULT_LIBRARY_SECTION
. سوف تحتاج إلى الاستعلام عن Plex بنفسك للحصول على هذا، ولكن بالنسبة لي، أفلامي موجودة في القسم 3. وسأعود إلى هذا القسم إذا لم تقدم واحدًا.
يتصل محرك التوصية هذا بـ Ollama. يمكنك إحضارها بنفسك أو تشغيلها على السحابة. ما عليك سوى توفير OLLAMA_ADDRESS
و OLLAMA_EMBEDDING_MODEL
و OLLAMA_LANGUAGE_MODEL
كمتغيرات بيئة.
يمكنك العثور على مطالبة RAG في backend/internal/pkg/langchain/generate.go
. هذا مكتوب لاحتياجاتي المحددة. إذا كانت احتياجاتك ليست احتياجاتي، فاضبط موجه التأريض وفقًا لذلك. لاحظ أنه إذا كان لديك مجموعة وسائط كبيرة جدًا، فقد تتجاوز نافذة السياق الخاصة بالنموذج الذي تستخدمه. يمكنك ضبط كمية العناوين التي تستعيدها عن طريق ضبط الحدود التي تم تمريرها إلى رسائل الوسائط في backend/internal/pkg/plex/api.go
.
قم بتنزيل هذا المستودع وقم بإنشاء التطبيق باستخدام go build -o recommendations .backend/cmd/main.go
. يؤدي هذا إلى إنشاء ثنائي يسمى recommendations
التي يمكنك تشغيلها باستخدام ./recommendations
.
يتم إرفاق قاعدة بيانات Postgres على ./pg-data
ويتم استخدامها لتخزين التوصيات مؤقتًا. العناوين المقدمة من التي تم عرضها مؤخرًا يتم تشفيرها بالأساس 64 وتخزينها جنبًا إلى جنب مع التوصية القياسية المقدمة من LLM. يتم البحث عن ذاكرة التخزين المؤقت هذه قبل طلب توصية LLM ويتم إعادتها كما هي إذا تم العثور عليها.
بيئة Postgres الافتراضية هي كما يلي:
POSTGRES_PASSWORD=postgres
POSTGRES_USER=postgres
POSTGRES_DB=caches
POSTGRES_PORT=5432
POSTGRES_HOST=postgres
يمكنك تجاوز هذا من خلال توفير القيم الخاصة بك لمتغيرات البيئة هذه
يوجد ملف docker-compose.yml
في جذر هذا الريبو. يمكنك تشغيل محرك التوصيات وقاعدة بيانات Weaviate المرتبطة عن طريق إصدار الأمر TAG_VERSION=foo docker compose up --build
الأمر. تأكد من تثبيت Docker وDocker Compose.
هناك العديد من الاختبارات في الحزم الداخلية التي تمت كتابتها جميعًا تقريبًا بواسطة LLM. يمكنك اختبار هذا البرنامج باستخدام go test ./...
من جذر هذا الريبو. يتم تشغيل هذه الاختبارات تلقائيًا عند الإنشاء باستخدام Docker.
يتم استخدام تتبع القياس عن بعد المفتوح في الواجهة الخلفية. لاستخدام هذا خارج الصندوق، قم بتعيين OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=otlp://jaeger:4317
في البيئة وتأكد من بدء تشغيل خدمة Jaeger من Docker Compose. يتم جمع الآثار في Jaeger ويمكن الوصول إليها على http://localhost:16686
. تتوفر المقاييس للتوسيع عن طريق تمرير خيار telemetry.WithMeter
WithMeter telemetry.InitOtel()
. سيكون عليك استخدام المقاييس بنفسك.
يمكن تعطيل القياس عن بعد عن طريق تعيين DISABLE_TELEMETRY=true
في بيئتك. لاحظ أنه في حالة استخدام docker compose up
، ستظل حاوية Jaeger قيد التشغيل.