API RAG (Obrolan dengan File)
API Retrieval-Augmented Generation (RAG) untuk pengindeksan dan pengambilan dokumen menggunakan Langchain dan FastAPI. API ini terintegrasi dengan LibreChat untuk memberikan respons berbasis konteks berdasarkan file yang diunggah pengguna.
RAG (Retrieval-Augmented Generation) API adalah alat canggih yang terintegrasi dengan LibreChat untuk memberikan respons yang sadar konteks berdasarkan file yang diunggah pengguna.
Ini memanfaatkan LangChain, PostgresQL + PGVector, dan Python FastAPI untuk mengindeks dan mengambil dokumen yang relevan, sehingga meningkatkan pengalaman percakapan.
Untuk detail lebih lanjut, silakan merujuk ke panduan konfigurasi yang disediakan di sini: RAG API Configuration
Saat ini, fitur ini tersedia melalui Agents, serta melalui Custom Endpoints, OpenAI, Azure OpenAI, Anthropic, dan Google.
OpenAI Assistants memiliki implementasi RAG mereka sendiri melalui kapabilitas "Retrieval". Pelajari lebih lanjut tentang hal ini di sini.
Masih akan berguna untuk mengimplementasikan penggunaan RAG API dengan Assistants API karena OpenAI mengenakan biaya untuk penyimpanan file maupun penggunaan "Retrieval," dan fitur ini akan diperkenalkan dalam pembaruan mendatang.
Masih bingung tentang RAG? Baca bagian yang saya tulis di bawah yang menjelaskan konsep umum secara lebih rinci dengan tautan ke video yang bermanfaat.
Apa itu RAG?
RAG, atau Retrieval-Augmented Generation, adalah kerangka kerja AI yang dirancang untuk meningkatkan kualitas dan akurasi respons yang dihasilkan oleh large language models (LLMs). Hal ini dicapai dengan mendasarkan LLM pada sumber pengetahuan eksternal, yang melengkapi representasi informasi internal model tersebut.
Fitur
- Pengindeksan Dokumen: API RAG mengindeks file yang diunggah pengguna, membuat embedding untuk pengambilan yang efisien.
- Semantic Search: Melakukan pencarian semantik pada dokumen yang telah diindeks untuk menemukan informasi yang paling relevan berdasarkan input pengguna.
- Respons yang Sadar Konteks: Dengan menambah prompt pengguna menggunakan informasi yang diambil, API memungkinkan LibreChat untuk menghasilkan respons yang lebih akurat dan relevan secara kontekstual.
- Pemrosesan Asinkron: API mendukung operasi asinkron untuk peningkatan performa dan skalabilitas.
- Konfigurasi Fleksibel: Ini memungkinkan penyesuaian berbagai parameter seperti ukuran potongan (chunk size), tumpang tindih (overlap), dan model embedding.
Manfaat Utama RAG
- Akses ke fakta yang terkini dan tepercaya: RAG memastikan bahwa LLM memiliki akses ke informasi yang paling mutakhir dan tepercaya dengan mengambil fakta-fakta relevan dari basis pengetahuan eksternal.
- Transparansi dan kepercayaan: Pengguna dapat mengakses sumber model, yang memungkinkan mereka untuk memverifikasi akurasi respons yang dihasilkan dan membangun kepercayaan terhadap sistem.
- Mengurangi kebocoran data dan halusinasi: Dengan mendasarkan LLM pada sekumpulan fakta eksternal yang dapat diverifikasi, RAG mengurangi kemungkinan model membocorkan data sensitif atau menghasilkan informasi yang tidak akurat atau menyesatkan.
- Biaya komputasi dan finansial yang lebih rendah: RAG mengurangi kebutuhan untuk pelatihan berkelanjutan dan pembaruan parameter model, yang berpotensi menurunkan biaya komputasi dan finansial dalam menjalankan chatbot berbasis LLM di lingkungan perusahaan.
Cara Kerja RAG
RAG terdiri dari dua fase utama: pengambilan (retrieval) dan pembuatan konten (content generation).
- Fase Retrieval: Algoritma mencari dan mengambil potongan informasi yang relevan dengan prompt atau pertanyaan pengguna dari basis pengetahuan eksternal. Dalam pengaturan konsumen domain terbuka, fakta-fakta ini dapat berasal dari dokumen yang terindeks di internet. Dalam pengaturan perusahaan domain tertutup, sekumpulan sumber yang lebih terbatas biasanya digunakan untuk keamanan dan keandalan tambahan.
- Fase Generatif: Pengetahuan eksternal yang diambil ditambahkan ke prompt pengguna dan diteruskan ke LLM. LLM kemudian menarik informasi dari prompt yang telah diperkaya tersebut dan representasi internal dari data pelatihannya untuk menyintesis jawaban yang disesuaikan dan menarik bagi pengguna. Jawaban tersebut dapat diteruskan ke chatbot dengan tautan ke sumber-sumbernya.
Tantangan dan Penelitian yang Sedang Berlangsung
Meskipun RAG saat ini merupakan salah satu alat yang paling dikenal untuk memberikan landasan bagi LLM pada informasi terbaru yang dapat diverifikasi serta menekan biaya pelatihan ulang dan pembaruan yang konstan, teknologi ini tidaklah sempurna. Beberapa tantangannya meliputi:
- Mengenali pertanyaan yang tidak dapat dijawab: LLM perlu dilatih secara eksplisit untuk mengenali pertanyaan yang tidak dapat mereka jawab berdasarkan informasi yang tersedia. Hal ini mungkin memerlukan fine-tuning pada ribuan contoh pertanyaan yang dapat dijawab dan tidak dapat dijawab.
- Meningkatkan pengambilan dan pembuatan: Penelitian yang sedang berlangsung berfokus pada inovasi di kedua ujung proses RAG: meningkatkan pengambilan informasi yang paling relevan untuk diberikan kepada LLM, dan mengoptimalkan struktur informasi tersebut untuk mendapatkan respons yang paling kaya dari LLM.
Singkatnya, RAG adalah kerangka kerja canggih yang meningkatkan kemampuan LLM dengan mendasarkannya pada pengetahuan eksternal yang dapat diverifikasi. Hal ini membantu memastikan respons yang lebih akurat, terkini, dan tepercaya sekaligus mengurangi biaya yang terkait dengan pelatihan ulang model secara terus-menerus. Seiring dengan kemajuan penelitian di bidang ini, kita dapat mengharapkan peningkatan lebih lanjut dalam kualitas dan efisiensi sistem AI percakapan yang didukung oleh LLM.
Untuk penjelasan yang lebih mendetail mengenai RAG, Anda dapat menonton video informatif dari IBM di Youtube ini:
Kesimpulan
RAG API adalah tambahan yang kuat untuk LibreChat, yang memungkinkan respons berbasis konteks berdasarkan file yang diunggah pengguna. Dengan memanfaatkan Langchain dan FastAPI, API ini menyediakan kemampuan pengindeksan, pengambilan, dan pembuatan dokumen yang efisien. Dengan opsi konfigurasi yang fleksibel dan integrasi yang mulus, RAG API meningkatkan pengalaman percakapan di LibreChat.
Untuk informasi lebih rinci mengenai RAG API, termasuk endpoint API, format permintaan/tanggapan, dan konfigurasi tingkat lanjut, silakan merujuk ke dokumentasi resmi RAG API.
Bagaimana panduan ini?