Ai-assistant-ollama
Deskripsi proyek
Proyek ini menunjukkan cara menggunakan berbagai komponen dari perpustakaan langchain_community dan langchain_core untuk memuat, mentransformasikan, menanamkan, dan mengambil dokumen dari database PostgreSQL dengan PGVector diaktifkan. Dokumen -dokumen tersebut bersumber dari URL, diubah menjadi teks, dibagi menjadi potongan -potongan yang dapat dikelola, dan disimpan sebagai vektor dalam database untuk pengambilan. Proyek ini juga menampilkan cara membuat rantai Rag (Retrieval-Augmmented Generation) menggunakan model bahasa Ollama untuk menjawab pertanyaan berdasarkan konteks yang diambil dari toko vektor.
Prasyarat
- Python 3.7+
- PostgreSQL dengan pgvector diaktifkan
- Docker (opsional, untuk menjalankan postgresql dengan pgvector)
Instalasi
- Klon Repositori:
git clone https://github.com/Atomic-man007/AI-assistant-ollama.git
- Buat lingkungan virtual dan aktifkan:
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
- Pasang paket yang diperlukan:
pip install -r requirements.txt
- Siapkan PostgreSQL dengan PGVector diaktifkan. Anda dapat menggunakan Docker untuk dengan cepat memutar instance PostgreSQL dengan PGVector:
docker run --name pgvector -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 ankane/pgvector
- Atur variabel lingkungan
DB_URL untuk menunjuk ke instance postgresql Anda:
export DB_URL=postgresql://postgres:mysecretpassword@localhost:5432/postgres
Penggunaan
Perbarui daftar urls di fungsi main dengan URL dokumen yang ingin Anda proses.
Jalankan skrip:
Komponen
- AsynchtmlLoader : Asynchron memuat konten HTML dari URL yang disediakan.
- HTML2TEXTRANSFORMER : Mengubah dokumen HTML menjadi teks biasa.
- Ollamaembeddings : Menanamkan dokumen teks ke dalam ruang vektor.
- PGVektor : Implementasi toko vektor menggunakan PostgreSQL dengan ekstensi pgvektor.
- RecursivecharactertextSplitter : Memecah dokumen teks menjadi potongan -potongan dengan ukuran tertentu.
- ChatPromptTemplate : Membuat templat prompt obrolan untuk menghasilkan tanggapan.
- RunnablePassthrough : Passthrough runnable untuk merantai komponen.
- Ollama : Model bahasa yang digunakan untuk menghasilkan jawaban berdasarkan konteks yang diambil.
Contoh
Script menunjukkan langkah -langkah berikut:
- Muat dokumen HTML dari URL yang disediakan.
- Ubah dokumen HTML menjadi teks biasa.
- Pisahkan dokumen teks menjadi potongan yang lebih kecil.
- Semburkan potongan teks ke ruang vektor dan simpan di database PostgreSQL.
- Ambil konteks yang relevan dari toko vektor.
- Gunakan konteks yang diambil untuk menghasilkan respons terhadap pertanyaan menggunakan model bahasa Ollama.
Lisensi
Proyek ini dilisensikan di bawah lisensi MIT. Lihat file lisensi untuk detailnya.
Ucapan Terima Kasih
- Perpustakaan
langchain_community dan langchain_core untuk menyediakan komponen yang digunakan dalam proyek ini. - PostgreSQL dan PGVector untuk implementasi toko vektor.
- Ollama untuk model bahasa yang digunakan untuk menghasilkan respons.