Цель этого репо состоит в том, чтобы использовать OpenAI для ответа на вопросы на основе базы данных SQL и нескольких других задач ответа на основе поиска с использованием Langchain.
В этом репо используется кино-диалог из Корнелла, и его предварительная обработка выполняется вместе с его преобразованием в реляционную базу данных SQL с добавлением реляционных ограничений DB, таких как первичный ключ, внешний ключ и т. Д.
Предварительная обработка была выполнена на начальном корпусе (каталог фильма-диалог-корпуса), а база данных экспортируется в качестве базы данных SQLite в каталоге базы данных. Ноутбук доступен в каталоге ноутбуков для предварительной обработки и преобразования (preprocess_and_convert_to_sqlite_db.ipynb). (Этот ноутбук можно пропустить, так как файл SQLite DB доступен в репо и может быть непосредственно использовать в следующей ноутбуке)
Ответ на вопрос выполняется с использованием модели Davinci от Openai вместе с Langchain, подход описан в ноутбуке. Вопрос_ансверинг_on_sql_database.ipynb. В этом ноутбуке используется база данных SQLite, созданную в предыдущей ноутбуке.
Для получения данных/очистки данных из URL -адресов сценария фильма и создания индексов векторной базы данных на основе FAISS с использованием Entgeddings OpenAI, обратитесь к ноутбуку FETCH_MOVIE_SCRIPTS_AND_CREATE_INDEXES.IPYNB. Этот ноутбук можно пропустить, а сгенерированные файлы можно загрузить из папки Google Drive.
Для запроса от OpenAI для любого запроса после получения соответствующих индексов из векторных индексов, созданных в предыдущем ноутбуке, используйте ноутбук Querying_from_openai_after_retrieval_from_indexes
Для использования агентов и объединения нескольких инструментов вместе и создания базовой системы ответа на вопросы, соединяющей как модуль базы данных SQL, так и на основе векторных запросов на сценарии фильмов и дополнительные инструменты, пройдите ноутбук с использованием_агентс_ф_К.
Файл базы данных SQLite MovieDB.DB можно просмотреть с помощью просмотра для базы данных SQLite, такой как https://sqlitebrowser.org/
Чтобы просмотреть базу данных в Python, запустите приведенный ниже код в том же каталоге, что и база данных
import sqlite3
import pandas as pd
con = sqlite3.connect("moviesdb.db")
df = pd.read_sql_query("SELECT * from movie_titles", con)
Диаграмма ER базы данных ниже: -