Rumah > pembangunan bahagian belakang > Tutorial Python > GenAI: Membina Sistem RAG dengan LangChain

GenAI: Membina Sistem RAG dengan LangChain

Susan Sarandon
Lepaskan: 2025-01-27 02:14:12
asal
906 orang telah melayarinya

Pada zaman generasi AI, generasi pengambilan semula (RAG) telah muncul sebagai pendekatan yang kuat untuk membina aplikasi pintar, konteks yang menyedari. RAG menggabungkan kekuatan model bahasa besar (LLMS) dengan teknik pengambilan dokumen yang cekap untuk menjawab pertanyaan berdasarkan data tertentu. Dalam blog ini, kami meneroka cara melaksanakan saluran paip RAG menggunakan Langchain , gpt-4o , ollama , groq dan lain-lain

github repo -& gt;


Image description

Ciri -ciri utama saluran paip RAG

  1. Pengambilan Data : Ambil data dari sumber web, fail tempatan, atau API menggunakan pemuat Langchain.
  2. Pemprosesan Dokumen : Memecahkan dokumen ke dalam ketulan yang lebih kecil untuk mendapatkan semula yang cekap menggunakan splitter teks, membolehkan pengindeksan yang lebih baik dan hasil carian yang lebih cepat.
  3. Embeddings Vektor : Mewakili ketulan dokumen sebagai vektor dimensi tinggi menggunakan embeddings terbuka atau teknik penyembuhan lain untuk integrasi fleksibel.
  4. Pemprosesan pertanyaan : Ambil potongan dokumen yang paling relevan dan gunakan LLMS (seperti GPT-4O atau model yang serupa) untuk menghasilkan jawapan berasaskan konteks yang tepat.
  5. ui interaktif
  6. : antara muka pengguna yang lancar yang dibina dengan streamlit untuk memuat naik dokumen, pertanyaan, dan visualisasi hasil.
  7. Integrasi Model
  8. : Paip menyokong kedua-dua model berasaskan awan dan tempatan, memastikan kebolehsuaian berdasarkan keperluan projek.
Alat dan perpustakaan yang digunakan

Pelaksanaan ini bergantung pada pelbagai perpustakaan dan alat yang kuat:

  • langchain_openai: Untuk pembenaman dan penyepaduan OpenAI.
  • langchain_core: Utiliti teras untuk membina aliran kerja LangChain.
  • python-dotenv: Untuk mengurus kunci API dan pembolehubah persekitaran dengan selamat.
  • strimlit: Untuk mencipta antara muka pengguna interaktif.
  • langchain_community: Alat sumbangan komuniti, termasuk pemuat dokumen.
  • langserve: Untuk menggunakan saluran paip sebagai perkhidmatan.
  • fastapi: Untuk membina API yang mantap untuk aplikasi RAG.
  • uvicorn: Untuk menyediakan aplikasi FastAPI.
  • sse_starlette: Untuk mengendalikan acara yang dihantar pelayan.
  • bs4 dan beautifulsoup4: Untuk mengikis web dan mengekstrak data daripada kandungan HTML.
  • pypdf dan PyPDF2: Untuk memproses dan mengekstrak data daripada fail PDF.
  • chromadb dan faiss-cpu: Untuk menguruskan kedai vektor dan carian persamaan yang cekap.
  • groq: Untuk penyepaduan dengan GPT-4o.
  • cassio: Alat untuk operasi vektor yang dipertingkatkan.
  • wikipedia dan arxiv: Untuk memuatkan data daripada sumber dalam talian.
  • langchainhub: Untuk mengakses alatan dan komponen pra-bina.
  • pengubah_ayat: Untuk mencipta pembenaman vektor berkualiti tinggi.
  • langchain-objectbox: Untuk mengurus benam vektor dengan ObjectBox.
  • langchain: Tulang belakang saluran paip RAG, pengendalian pengambilan dokumen dan penyepaduan LLM.

Bagaimana Ia Berfungsi

  1. Menyediakan Persekitaran:

    • Gunakan alatan pengurusan persekitaran untuk memuatkan kunci API dengan selamat dan mengkonfigurasikan tetapan untuk model berasaskan awan dan tempatan.
  2. Memuatkan Data:

    • Muat data daripada berbilang sumber, termasuk dokumen dalam talian, direktori tempatan atau PDF.
  3. Pembahagian Dokumen:

    • Pisahkan dokumen besar kepada bahagian yang lebih kecil dan boleh diurus untuk memastikan perolehan lebih cepat dan ketepatan yang lebih baik semasa carian.
  4. Pembenaman Vektor dengan ObjectBox:

    • Tukar ketulan dokumen kepada vektor berangka untuk carian berasaskan persamaan.
    • Gunakan ObjectBox atau pangkalan data vektor lain untuk menyimpan pembenaman, membolehkan pengambilan data berkelajuan tinggi.
  5. Pengendalian Pertanyaan:

    • Gabungkan pengambilan dokumen dengan penjanaan tindak balas sedar konteks untuk menjawab pertanyaan dengan ketepatan dan kejelasan.

LLM Tempatan lwn Berbayar

Apabila melaksanakan saluran paip RAG, memilih antara LLM tempatan dan berbayar bergantung pada keperluan dan kekangan projek. Berikut ialah perbandingan pantas:

Feature Local LLMs Paid LLMs (e.g., OpenAI GPT)
Data Privacy High – Data stays on local machines. Moderate – Data sent to external APIs.
Cost One-time infrastructure setup. Recurring API usage costs.
Performance Dependent on local hardware. Scalable and optimized by providers.
Flexibility Fully customizable. Limited to API functionality.
Ease of Use Requires setup and maintenance. Ready-to-use with minimal setup.
Offline Capability Yes. No – Requires internet connection.
Untuk projek yang memerlukan privasi yang tinggi atau fungsi luar talian, LLM tempatan adalah ideal. Untuk berskala, pelaksanaan bebas penyelenggaraan, LLM berbayar sering menjadi pilihan yang lebih baik.


UI interaktif dengan streamlit

Aplikasi ini diintegrasikan dengan

streamlit untuk membuat antara muka intuitif di mana pengguna boleh:

    memuat naik dokumen untuk membenamkan.
  • Masukkan pertanyaan untuk mengambil dan menganalisis kandungan dokumen.
  • Lihat coretan dokumen yang relevan dan jawapan yang dihasilkan oleh LLM dalam masa nyata.

Mengapa perkara rag

RAG memberi kuasa kepada:

    menyediakan
  • respons yang tepat dan konteks yang menyedari berdasarkan data khusus pengguna.
  • mengendalikan dataset besar dengan cekap dengan mekanisme pengambilan lanjutan.
  • Gabungkan pengambilan semula dan generasi dengan lancar, meningkatkan keupayaan LLMS.
  • menyokong pilihan penempatan fleksibel untuk keperluan projek yang pelbagai.

Repositori GitHub

anda boleh meneroka pelaksanaan lengkap dalam repositori GitHub ini. Ia termasuk semua dokumentasi yang diperlukan untuk membina aplikasi berkuasa RAG anda sendiri.


Demonstrasi ini menyoroti potensi besar menggabungkan Langchain dengan pangkalan data LLM dan vektor. Sama ada anda membina chatbots, pembantu pengetahuan, atau alat penyelidikan, RAG menyediakan asas yang kukuh untuk menyampaikan hasil yang didorong oleh data yang mantap.

Atas ialah kandungan terperinci GenAI: Membina Sistem RAG dengan LangChain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan