ป้อนภาพยนตร์ที่ดูล่าสุดของคุณลงในเครือข่าย 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
recommendations
ฐานข้อมูล Postgres แนบอยู่ที่ ./pg-data
และใช้เพื่อแคชคำแนะนำ ชื่อเรื่องที่ให้มาจากการดูล่าสุดจะได้รับการเข้ารหัสและจัดเก็บแบบ base-64 พร้อมกับคำแนะนำแบบปกติที่ LLM มอบให้ แคชนี้จะถูกค้นหาก่อนที่จะขอคำแนะนำ LLM และจะถูกส่งกลับเหมือนกับที่พบ
สภาพแวดล้อม Postgres เริ่มต้นเป็นดังนี้:
POSTGRES_PASSWORD=postgres
POSTGRES_USER=postgres
POSTGRES_DB=caches
POSTGRES_PORT=5432
POSTGRES_HOST=postgres
คุณสามารถแทนที่สิ่งนี้ได้โดยระบุค่าของคุณเองให้กับตัวแปรสภาพแวดล้อมเหล่านี้
มีไฟล์ docker-compose.yml
อยู่ในรูทของ repo นี้ คุณสามารถเรียกใช้ Recommendation Engine และฐานข้อมูล Weaviate ที่เกี่ยวข้องได้โดยการออกคำสั่ง TAG_VERSION=foo docker compose up --build
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Docker และ Docker Compose แล้ว
มีการทดสอบหลายอย่างในแพ็คเกจภายในที่เกือบทั้งหมดเขียนโดย LLM คุณสามารถทดสอบโปรแกรมนี้ได้โดยใช้ go test ./...
จากรูทของ repo นี้ การทดสอบเหล่านี้จะดำเนินการโดยอัตโนมัติเมื่อคุณสร้างด้วย Docker
การติดตาม Open Telemetry ติดตั้งอยู่ในแบ็กเอนด์ หากต้องการใช้สิ่งนี้ทันที ให้ตั้งค่า OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=otlp://jaeger:4317
ในสภาพแวดล้อม และตรวจสอบให้แน่ใจว่าบริการ Jaeger เริ่มต้นจาก Docker Compose ร่องรอยจะถูกรวบรวมใน Jaeger และเข้าถึงได้ที่ http://localhost:16686
เมตริกพร้อมที่จะขยายได้โดยการส่งตัวเลือก telemetry.WithMeter
telemetry.InitOtel()
คุณจะต้องใช้เครื่องมือวัดด้วยตนเอง
Telemetry สามารถปิดใช้งานได้โดยการตั้งค่า DISABLE_TELEMETRY=true
ในสภาพแวดล้อมของคุณ โปรดทราบว่าหากใช้ docker compose up
คอนเทนเนอร์ Jaeger จะยังคงเริ่มทำงาน