L'intention de ce dépôt est d'utiliser OpenAI pour une réponse de questions basée sur une base de données SQL et quelques autres tâches de réponse aux questions basées sur la récupération à l'aide de Langchain.
Le film-dialogue-corpus de Cornell est utilisé dans ce dépôt et son prétraitement est effectué avec sa conversion en une base de données SQL relationnelle avec l'ajout de contraintes de base de données relationnelles telles que la clé primaire, la clé étrangère, etc.
Le prétraitement a été effectué sur le corpus initial (film-dialogique-corpus répertoire) et la base de données est exportée en tant que base de données SQLite dans le répertoire de la base de données. Le carnet est disponible dans le répertoire des cahiers pour le prétraitement et la conversion (prestrocess_and_convert_to_sqlite_db.ipynb). (Ce ordinateur portable peut être ignoré car le fichier DB SQLite est disponible en référentiel et peut être directement utilisé dans le prochain ordinateur portable)
La réponse aux questions se fait en utilisant le modèle DaVinci d'Openai avec Langchain, l'approche est décrite dans le cahier. question_answering_on_sql_database.ipynb. Ce carnet utilise la base de données SQLite créée dans le cahier précédent.
Pour récupérer / gratter les données des URL de script de film et créer des index de base de données vectoriels basés sur FAISS à l'aide d'Openai Embeddings, référez-vous le ordinateur portable fetch_movie_scripts_and_create_indexes.ipynb. Ce cahier peut être ignoré et les fichiers générés peuvent être téléchargés à partir du dossier Google Drive.
Pour interroger à partir d'Openai pour toute requête après avoir obtenu des index pertinents à partir d'index vectoriels créés dans le cahier précédent, utilisez le cahier Querying_from_openai_after_retrieval_from_indexes
Pour utiliser des agents et rejoindre plusieurs outils ensemble et créer un système de réponse de question de base en rejoignant à la fois le module de base de données SQL et la requête basée sur les vecteurs sur les scripts de film et les outils supplémentaires, parcourez le portable utilisant_agents_for_qa_on_sql_and_vectordb.ipynb
SQLITE DATABASE FILE FILMSDDB.DB peut être visualisé à l'aide d'une visualise pour la base de données SQLite telle que https://sqlitebrowser.org/
Pour afficher la base de données dans Python, exécutez le code ci-dessous dans le même répertoire que la base de données
import sqlite3
import pandas as pd
con = sqlite3.connect("moviesdb.db")
df = pd.read_sql_query("SELECT * from movie_titles", con)
Le diagramme ER de la base de données est ci-dessous: -