La intención de este repositorio es usar OpenAI para responder a preguntas basadas en una base de datos SQL y pocas otras tareas de respuesta de preguntas basadas en la recuperación utilizando Langchain.
El cine-Corpus de Cornell se usa en este repositorio y su preprocesamiento se realiza junto con su conversión a una base de datos SQL relacional con la adición de restricciones de DB relacionales como la clave primaria, la clave extranjera, etc.
El preprocesamiento se realizó en Corpus inicial (directorio de cine-Corpus) y la base de datos se exporta como una base de datos SQLite en el directorio de la base de datos. El cuaderno está disponible en el directorio de cuadernos para el preprocesamiento y la conversión (preprocess_and_convert_to_sqlite_db.ipynb). (Este cuaderno se puede omitir ya que el archivo SQLite DB está disponible en Repo y se puede usar directamente en el siguiente cuaderno)
La respuesta a las preguntas se realiza utilizando el modelo Davinci de OpenAi junto con Langchain, el enfoque se describe en el cuaderno. pregunta_answering_on_sql_database.ipynb. Este cuaderno utiliza la base de datos SQLite creada en el cuaderno anterior.
Para obtener/raspar datos de las URL de script de la película y crear índices de bases de datos vectoriales basados en FAISS utilizando incrustaciones de OpenAI, consulte el cuaderno fetch_movie_scripts_and_create_indexes.ipynb. Este cuaderno se puede omitir y los archivos generados se pueden descargar desde la carpeta de Google Drive.
Para la consulta de OpenAI para cualquier consulta después de obtener índices relevantes de los índices de vectores creados en el cuaderno anterior, use el cuaderno Querying_from_openai_after_retrieval_from_indexes
Para usar agentes y unir múltiples herramientas juntos y construir un sistema básico de respuesta de preguntas que une el módulo de base de datos SQL y la consulta basada en vector en los scripts de películas y las herramientas adicionales, pase por el cuaderno usando_agents_for_qa_on_sql_and_vectordb.ipynb
SQLITE DATABASE FILE File Moviesdb.db se puede ver utilizando un visor para la base de datos SQLite como https://sqlitebrowser.org/
Para ver la base de datos en Python, ejecute el siguiente código en el mismo directorio que la base de datos
import sqlite3
import pandas as pd
con = sqlite3.connect("moviesdb.db")
df = pd.read_sql_query("SELECT * from movie_titles", con)
El diagrama ER de la base de datos está a continuación: -