Die Absicht dieses Repo besteht darin, OpenAI für die Beantwortung einer SQL -Datenbank und nur wenigen anderen abgerufenen Fragen zu beantworten zu können, die mit Langchain beantwortet werden.
Der Film-Dialog-Corpus von Cornell wird in diesem Repo verwendet und seine Vorverarbeitung erfolgt zusammen mit der Umwandlung in eine relationale SQL-Datenbank mit Addition von relationalen DB-Einschränkungen wie Primärschlüssel, Fremdschlüssel usw.
Die Vorverarbeitung wurde im ersten Corpus (Movie-Dialog-Corpus-Verzeichnis) durchgeführt und die Datenbank wird als SQLite-Datenbank im Datenbankverzeichnis exportiert. Notebook ist im Notebooks -Verzeichnis für die Vorverarbeitung und Konvertierung (Precess_and_convert_to_sqlite_db.ipynb) verfügbar. (Dieses Notizbuch kann als SQLite -DB -Datei übersprungen werden, die in Repo verfügbar ist und direkt im nächsten Notebook verwendet werden kann.)
Die Beantwortung der Frage erfolgt mit dem Davinci -Modell von OpenAI zusammen mit Langchain. Der Ansatz wird im Notizbuch beschrieben. FRAGE_ANSWERING_ON_SQL_DATABASE.IPYNB. Dieses Notebook verwendet die SQLite -Datenbank, die im vorherigen Notebook erstellt wurde.
Für das Abholen/Abkratzen von Daten aus den URLs der Filmskript und zum Erstellen von FAISS -basierten Vektor -Datenbankindizes mithilfe von OpenAI -Einbettungsdings finden Sie das Notizbuch fetch_movie_scripts_and_create_indexes.ipynb. Dieses Notizbuch kann übersprungen und die generierten Dateien können vom Google Drive -Ordner heruntergeladen werden.
Für Abfragen von OpenAI für eine Abfrage nach dem Erhalten von Relevent -Indizes aus Vektorindizes, die im vorherigen Notebook erstellt wurden
Um Agenten zu verwenden und mehrere Tools zusammenzuschließen und ein grundlegendes Fragen Antwortsystem zu erstellen, das sowohl dem SQL -Datenbankmodul als auch dem vektorbasierten Abfragen in MICK -Skripten und zusätzlichen Tools verbindet
SQLite -Datenbankdatei filmsdb.db kann mit einem Viewer für die SQLite -Datenbank wie https://sqlitebrowser.org/ angezeigt werden
Führen Sie den folgenden Code im selben Verzeichnis wie die Datenbank aus, um die Datenbank in Python anzuzeigen
import sqlite3
import pandas as pd
con = sqlite3.connect("moviesdb.db")
df = pd.read_sql_query("SELECT * from movie_titles", con)
ER -Diagramm der Datenbank ist unten: -