Repositori ini berisi proyek yang menunjukkan cara menggunakan kerangka kerja generasi pengambilan (RAG) dengan model GPT-4O OpenAI dan database vektor Pinecone untuk menanyakan dataset CSV. Proyek ini melibatkan pembuatan embeddings vektor dari data dalam file CSV, menyimpan embeddings dalam database Pinecone, dan kemudian menanyakan data embeddings vektor menggunakan kueri bahasa alami.
Daftar isi
Perkenalan
Prasyarat
Platform dan paket yang diuji
Penggunaan
Menelan data dan membuat embeddings
Menanyakan data
Cara kerjanya
Lisensi
Proyek ini menampilkan penggunaan teknik pemrosesan bahasa alami untuk meminta data yang disimpan dalam file CSV. Dengan memanfaatkan model GPT-4 OpenAI dan database vektor Pinecone, kami dapat membuat embeddings untuk data dan menggunakan embeddings ini untuk mengambil respons yang akurat terhadap kueri pengguna.
Sebelum Anda mulai, pastikan Anda memiliki yang berikut:
Integrasi API : Untuk berintegrasi dengan OpenAi dan Pinecone, Anda perlu memperoleh dan mengonfigurasi informasi API masing -masing, host (Pinecone) informasi untuk platform ini. Atur tombol API OpenAi dan Pinecone Anda, dan host Pinecone sebagai variabel lingkungan di Linux. Gunakan perintah Linux berikut untuk mengekspor variabel -variabel ini:
Ekspor openai_api_key = 'Anda-openai-api-key'
Ekspor Pinecone_API_Key = 'YourCone-APi-Key'
Ekspor pinecone_host = 'pinecone-host'
OpenAI API: Model OpenAI "Text-Embedding-DAGA-002" dan "GPT-4O" yang digunakan untuk menghasilkan embeddings, dan dukungan LLM. Pastikan Anda memiliki akun OpenAI dengan kunci API yang valid. Anda dapat memperoleh kunci API Anda dari platform OpenAI (https://platform.openai.com/) dan mengelolanya (https://platform.openai.com/organization/api-keys). Selain itu, pastikan bahwa akun Anda memiliki kuota penggunaan yang cukup, karena contoh ini memerlukan akun Openai berbayar.
Pinecone Environment (Pinecone Free Account Digunakan https://www.pinecone.io/): 1) Indeks Pinecone digunakan 2) Dimensi: 1536 3) Jenis Host: Serverless.
Rilis Centos Linux 8.5.2111. Buat lingkungan virtual (opsional tetapi disarankan) untuk mengisolasi dependensi proyek.
Python 3.8.8
PANDAS 2.0.3
OpenAI 1.30.3
Pinecone 4.0.0
Numpy 1.24.4
Argparse 1.1
Menelan data dan membuat embeddings
csv_path = "your_csv_file_path" [create-chunks-embeddings-store-vectorbb-csv-dataset.py]
pinecone_index_name = "your_pinecone_index_name" [create-chunks-embeddings-store-vectorb-csv-dataset.py]
index_name = "your_pinecone_index_name" [query-prompt-for- vector-embeddings.py]
Ubah judul kolom dalam fungsi read_csv_data untuk mencocokkan kolom dalam file CSV Anda. Lihat Kustomisasi untuk Bagian File CSV Anda untuk detailnya.
Anda dapat menggunakan model OpenAI LLM berdasarkan kebutuhan Anda:
Model = "GPT-4O", # Anda dapat menggunakan GPT-4 atau GPT-3.5-Turbo atau model LLM OpenAI lainnya. [query-prompt-for-vector-embeddings.py]
Jalankan skrip untuk membaca data, menghasilkan embeddings, dan menyimpannya di Pinecon
#python create-chunks-embeddings-store-vectorbb-csv-dataset.py
Menanyakan data
#python kueri-prompt-for-vector-embeddings.py "kueri Anda di sini"
Contoh: Python Query-prompt-for-vector-embeddings.py "Tell Me About the Plot film XYZ"
Masukkan kueri Anda berikutnya (atau ketik 'keluar' untuk berhenti): tahun mana film ini dirilis?
Chunking data CSV, buat embeddings vektor, dan menyimpan embeddings di database Pinecone
Script "create-chunks-embeddings-store-vectorbb-csv-dataset.py" membaca file CSV dan menggabungkan kolom yang relevan menjadi satu string teks untuk setiap baris. String teks ini mencakup detail kolom untuk setiap baris - setiap baris berisi informasi yang berbeda (misalnya, informasi untuk film). Teks gabungan untuk setiap baris kemudian digunakan untuk menghasilkan embeddings menggunakan API OpenAI. Emector embeddings disimpan dalam indeks pinecone.
Memanfaatkan Openai's GPT-4 LLM
Proyek ini memanfaatkan Model Bahasa Besar (LLM) GPT-4 Openai dalam dua cara utama:
Menghasilkan Embeddings: Data teks dari setiap baris file CSV digunakan sebagai input untuk model embedding OpenAI (teks-embedding-002). Model ini mengubah teks menjadi embedding vektor dimensi tinggi yang menangkap makna semantik teks. Embeddings ini kemudian disimpan dalam database vektor Pinecone untuk pengambilan yang efisien.
Permintaan bahasa alami: Ketika pengguna mengirimkan kueri, skrip menghasilkan penyematan untuk teks kueri menggunakan model embedding yang sama. Embedding kueri ini kemudian digunakan untuk mencari database vektor Pinecone untuk potongan teks yang paling mirip semantik (yaitu, baris dari file CSV). Potongan teks yang relevan diambil dan diteruskan ke model GPT-4 Openai untuk menghasilkan respons yang komprehensif dan akurat secara kontekstual terhadap kueri pengguna.
Menggabungkan konteks untuk respons yang ditingkatkan
Untuk memastikan tanggapan akurat dan relevan, skrip mempertahankan konteks pertanyaan dan tanggapan sebelumnya. Konteks ini dikombinasikan dengan potongan teks yang diambil untuk memberikan GPT-4 pandangan yang komprehensif tentang informasi tersebut. Pendekatan ini meningkatkan kemampuan model untuk menghasilkan jawaban terperinci dan akurat yang didasarkan pada data yang disediakan dalam file CSV.
Menyesuaikan untuk file CSV Anda
Untuk memastikan skrip berfungsi dengan benar dengan file CSV Anda, perbarui kolom "create-chunks-embeddings-store-vectorbb-csv-dataset.py" untuk mencocokkan kolom dalam file CSV Anda. Berikut adalah contoh bagaimana Anda dapat menyesuaikan fungsi:
#Users harus mengganti kolom dengan daftar nama kolom yang ingin mereka gunakan - contoh di bawah ini
kolom = ["peringkat", "sutradara", "genre", "plot", "aktor", "peringkat"] # ganti kolom dengan nama kolom file CSV Anda
Proyek ini dilisensikan di bawah lisensi Apache 2.0. Lihat file lisensi untuk detailnya.