Masukkan film Plex Anda yang baru-baru ini ditonton ke dalam rantai LLM yang didukung RAG untuk mendapatkan rekomendasi berdasarkan riwayat tontonan Anda.
Anda memerlukan dua hal:
preferences.xml
di jalur instalasi Anda. Saya menjalankan Plex pada NAS Synology menggunakan Pusat Paket, jadi saya menemukan milik saya di /PlexMediaServer/AppData/Plex Media Server/Preferences.xml
. Berikan keduanya ke variabel lingkungan PLEX_ADDRESS
dan PLEX_TOKEN
.
Saat boot awal, sistem akan mendeteksi apakah perpustakaan Plex Anda disimpan dalam database vektor. Jika tidak, media Anda akan diambil. Anda perlu menyediakan perpustakaan default untuk mengunduh media melalui variabel lingkungan PLEX_DEFAULT_LIBRARY_SECTION
. Anda perlu menanyakan Plex sendiri untuk mendapatkan ini, tetapi bagi saya, film saya ada di bagian 3. Saya akan kembali ke bagian ini jika Anda tidak menyediakannya.
Mesin rekomendasi ini terhubung ke Ollama. Anda dapat membawanya sendiri atau menjalankannya di cloud. Cukup sediakan OLLAMA_ADDRESS
, OLLAMA_EMBEDDING_MODEL
, dan OLLAMA_LANGUAGE_MODEL
sebagai variabel lingkungan.
Anda dapat menemukan perintah RAG di backend/internal/pkg/langchain/generate.go
. Ini ditulis untuk kebutuhan spesifik saya. Jika kebutuhan Anda bukan kebutuhan saya, sesuaikan perintah grounding. Perhatikan bahwa jika Anda memiliki koleksi media yang sangat besar, koleksi tersebut mungkin melebihi jendela konteks model yang Anda gunakan. Anda dapat menyesuaikan jumlah judul yang diambil dengan menyesuaikan batas yang diteruskan ke pengambil media di backend/internal/pkg/plex/api.go
.
Unduh repositori ini dan buat aplikasinya menggunakan go build -o recommendations .backend/cmd/main.go
. Ini membangun biner yang disebut recommendations
yang dapat Anda jalankan dengan ./recommendations
.
Basis data Postgres dilampirkan di ./pg-data
dan digunakan untuk menyimpan rekomendasi dalam cache. Judul yang disediakan dari yang baru dilihat mendapatkan kode base-64 dan disimpan bersama dengan rekomendasi normal yang disediakan oleh LLM. Cache ini dicari sebelum meminta rekomendasi LLM dan dikembalikan sebagaimana adanya jika ditemukan.
Lingkungan Postgres default adalah sebagai berikut:
POSTGRES_PASSWORD=postgres
POSTGRES_USER=postgres
POSTGRES_DB=caches
POSTGRES_PORT=5432
POSTGRES_HOST=postgres
Anda dapat menggantinya dengan memberikan nilai Anda sendiri ke variabel lingkungan ini
Ada file docker-compose.yml
di root repo ini. Anda dapat menjalankan Mesin Rekomendasi dan database Weaviate terkait dengan mengeluarkan perintah TAG_VERSION=foo docker compose up --build
. Pastikan Anda telah menginstal Docker dan Docker Compose.
Ada beberapa tes dalam paket internal yang hampir semuanya ditulis oleh LLM. Anda dapat menguji program ini menggunakan go test ./...
dari root repo ini. Pengujian ini dijalankan secara otomatis saat Anda membangun dengan Docker.
Penelusuran Telemetri Terbuka diinstrumentasikan di backend. Untuk menggunakannya secara langsung, atur OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=otlp://jaeger:4317
di lingkungan dan pastikan bahwa layanan Jaeger dimulai dari Docker Compose. Jejak dikumpulkan di Jaeger dan dapat diakses di http://localhost:16686
. Metrik tersedia untuk diperluas dengan meneruskan opsi telemetry.WithMeter
telemetry.InitOtel()
. Anda harus mengatur sendiri metriknya.
Telemetri dapat dinonaktifkan dengan mengatur DISABLE_TELEMETRY=true
di lingkungan Anda. Perhatikan bahwa jika menggunakan docker compose up
, container Jaeger akan tetap dimulai.