Maksud dari repo ini adalah menggunakan OpenAi untuk menjawab pertanyaan berdasarkan database SQL dan beberapa tugas penjawaban pertanyaan berbasis pengambilan lainnya menggunakan Langchain.
Film-Dialog-Corpus dari Cornell digunakan dalam repo ini dan pra-pemrosesannya dilakukan bersama dengan konversi ke database SQL relasional dengan penambahan kendala DB relasional seperti kunci utama, kunci asing dll.
Preprocessing dilakukan pada corpus awal (Direktori Film-Dialog-Corpus) dan database diekspor sebagai database SQLITE di Direktori Database. Notebook tersedia di direktori notebook untuk preprocessing dan konversi (preprocess_and_convert_to_sqlite_db.ipynb). (Buku catatan ini dapat dilewati karena file SQLite DB tersedia di REPO dan dapat langsung digunakan dalam buku catatan berikutnya)
PERTANYAAN PERTANYAAN DILAKUKAN MENGGUNAKAN MODEL DAV OPENAI bersama dengan Langchain, pendekatan ini dijelaskan dalam buku catatan. question_answering_on_sql_database.ipynb. Notebook ini menggunakan database SQLite yang dibuat di notebook sebelumnya.
Untuk mengambil/mengikis data dari URL skrip film dan untuk membuat indeks database vektor berbasis FAISS menggunakan embeddings openai merujuk notebook fetch_movie_scripts_and_create_indexes.ipynb. Buku catatan ini dapat dilewati dan file yang dihasilkan dapat diunduh dari folder Google Drive.
Untuk permintaan dari OpenAi untuk permintaan apa pun setelah mendapatkan indeks yang relevan dari indeks vektor yang dibuat di notebook sebelumnya, gunakan notebook querying_from_openai_after_retrieval_from_indexes
Untuk menggunakan agen dan bergabung dengan beberapa alat bersama -sama dan membangun sistem penjawab pertanyaan dasar yang bergabung dengan modul basis data SQL dan permintaan vektor berdasarkan skrip film dan alat tambahan, buka notebook menggunakan_agents_for_qa_on_sql_and_vectorbb.ipynb
Film File Database SQLite dapat dilihat dengan menggunakan penampil untuk database SQLite seperti https://sqlitebrowser.org/
Untuk melihat database di Python, jalankan kode di bawah ini dalam direktori yang sama dengan database
import sqlite3
import pandas as pd
con = sqlite3.connect("moviesdb.db")
df = pd.read_sql_query("SELECT * from movie_titles", con)
Diagram ER dari database di bawah ini: -