Проект "Chat with a MySQL Database Using Python and LangChain" представляет собой пример кода, который позволяет пользователям взаимодействовать со своей базой данных MySQL напрямую через интерфейс ChatGPT. Это решение идеально подходит для быстрого получения информации из базы данных, выполнения запросов и анализа данных с помощью удобного текстового интерфейса.
main2.py
это оригинальный код с реализацией общения в командной строке.
Прежде чем приступить к установке и запуску проекта, убедитесь, что у вас установлен Python 3.6 или выше. Также необходимо иметь установленный MySQL сервер и доступ к базе данных.
Чтобы начать работу с проектом, выполните следующие шаги:
- Клонируйте репозиторий или скачайте исходный код проекта на ваш локальный компьютер.
- Создайте виртуальное окружение для изоляции зависимостей проекта:
python -m venv venv
- Активируйте виртуальное окружение:
- Для Windows:
venv\Scripts\activate
- Для macOS и Linux:
source venv/bin/activate
- Для Windows:
- Установите необходимые зависимости:
pip install -r requirements.txt
После установки всех зависимостей запустите приложение с помощью следующей команды:
streamlit run main2.py
После запуска приложения откроется веб-интерфейс, через который вы сможете отправлять запросы к вашей базе данных MySQL, используя естественный язык.
После запуска веб-приложения пользователь встречается с интерфейсом, где он может вводить свои вопросы, связанные с SQL-запросами, в текстовое поле.
Для использования mySQL используйте импорт from langchain_community.utilities import SQLDatabase
и uri db_uri = "mysql+mysqlconnector://root:admin@localhost:3306/Chinook"
. для MSSQL mssql+pyodbc://<username>:<password>@<dsnname>
Вот шаги, как это работает:
-
Введите ваш вопрос на естественном языке, который связан с вашей базой данных, например: "Какое среднее количество заказов за месяц?".
-
Приложение использует LangChain для формирования SQL-запроса из вашего вопроса. Это достигается через взаимодействие с ChatGPT от OpenAI, который преобразует вопрос пользователя в SQL-запрос.
-
Затем приложение выполняет сформированный SQL-запрос на вашей базе данных.
-
После получения результатов запроса, приложение снова использует ChatGPT для формулирования ответа на естественном языке, основываясь на данных, полученных из базы данных.
-
Ответ отображается в интерфейсе веб-приложения, позволяя пользователю увидеть как сам SQL-запрос, так и ответ на его изначальный вопрос в понятной форме.
-
Весь диалог сохраняется в истории чата, что позволяет пользователю отслеживать свои запросы и полученные ответы.
После того как вы зададите вопрос через интерфейс, например: "Каково общее количество пользователей в БД?", приложение автоматически сгенерирует SQL-запрос, выполнит его на сервере базы данных и предоставит вам ответ, например: "В базе данных 150 пользователей".
Этот процесс делает взаимодействие с базой данных более интуитивно понятным и доступным для пользователей без глубоких знаний SQL.
Проект использует следующие ключевые компоненты для работы:
streamlit
для создания веб-интерфейса.langchain_core
иlangchain_openai
для интеграции с OpenAI и выполнения запросов в естественном языке.SQLDatabase
изlangchain_community.utilities
для взаимодействия с базой данных.dotenv
для управления конфигурацией и безопасным хранением параметров подключения к базе данных.
Обратите внимание, что для работы приложения необходимо наличие файла .env
в корне проекта, содержащего строку подключения к вашей базе данных в переменной OPENAI_API_KEY="ключи OpenAI"
.