Portofolio Karir Asisten Rag
Sistem Generasi Pengambilan-Pengambilan (RAG) yang memungkinkan permintaan bahasa alami dari data portofolio karier yang disimpan dalam database gagasan. Sistem ini menggunakan layanan embedding/llm Llamaindex dan Openai untuk memberikan tanggapan cerdas tentang pengalaman kerja, proyek, dan keterampilan.
Ringkasan
Sistem ini terdiri dari dua komponen utama:
ETL Pipeline : Mengekstrak data dari database NOTON, memprosesnya menjadi embeddings, dan menyimpannya dalam database vektor
Antarmuka Kueri : Aplikasi Web yang Diuntungkan yang Mengaktifkan Interaksi Bahasa Alami Dengan Data Portofolio
Fitur utama
- Permintaan bahasa alami yang cerdas tentang data portofolio
- Arsitektur dual-index (teks dan kata kunci) untuk peningkatan pengambilan
- Streaming respons real-time
- Panel debug untuk transparansi ke dalam proses kain
- Contoh kueri untuk menunjukkan kemampuan
- Dapat dikonfigurasi melalui variabel lingkungan
Struktur proyek
File inti
notion_data_etl.ipynb : Jupyter Notebook untuk mengekstraksi dan memproses data gagasan
- Menangani Koneksi Otentikasi dan Database
- Memproses dokumen menjadi node teks dan kata kunci
- Membuat indeks vektor untuk pengambilan yang efisien
streamlit_app_rag.py : antarmuka aplikasi web utama
- Mengimplementasikan UI Asisten Rag
- Mengelola riwayat obrolan dan output debug
- Menangani streaming respons waktu nyata
prompts.py : berisi permintaan sistem untuk:
- Pengaturan konteks untuk LLM
- Ekstraksi kata kunci
Komponen utama
Kelas NotionProcessor
Kelas pemrosesan data yang komprehensif yang:
- Mengekstrak data dari database gagasan
- Menangani struktur konten bersarang
- Memproses teks dan metadata
- Mendukung beberapa mode ekstraksi (header, utuh, granular)
Kelas Ragapp
Kelas aplikasi utama yang:
- Mengelola antarmuka yang diinapi
- Menangani interaksi obrolan
- Memberikan kemampuan debugging
- Mempertahankan keadaan sesi
Persyaratan Pengaturan
Variabel Lingkungan
NOTION_TOKEN=your_notion_api_token
NOTION_PROJECTS_DATABASE_ID=notion_database_id_for_projects
NOTION_EXPERIENCE_DATABASE_ID=notion_database_id_for_experiences
QDRANT_URL=your_qdrant_url
QDRANT_API_KEY=your_qdrant_api_key
OPENAI_API_KEY=your_openai_api_key
Dependensi
- Python 3.10+
- Llamaindex
- Openai
- Streamlit
- Qdrant
- Klien API Gagasan
Penggunaan
- Siapkan variabel lingkungan
- Jalankan ETL Notebook untuk memproses data gagasan
- Jalankan aplikasi streamLit untuk berinteraksi dengan data
streamlit run streamlit_app_rag.py
Arsitektur
Sistem ini menggunakan arsitektur dual-index:
- Indeks Teks : Menyimpan konten lengkap untuk pengambilan terperinci
- Indeks Kata Kunci : Toko yang Diekstraksi Kata Kunci untuk Pencocokan Semantik yang Ditingkatkan
Kueri diproses melalui kedua indeks untuk memberikan tanggapan yang komprehensif dan akurat.
Fitur debug
Sistem ini mencakup panel debug komprehensif yang menunjukkan:
- Langkah Pemrosesan Permintaan
- Detail Proses Pengambilan
- Generasi respons
- Kesalahan atau peringatan apa pun