Gente, quero implementar no agente uma conexão com um banco de dados MySQL já existente para consultas e retornos. Alguma dica, conselho ou indicação de aula?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Gente, quero implementar no agente uma conexão com um banco de dados MySQL já existente para consultas e retornos. Alguma dica, conselho ou indicação de aula?
Oi, Lizandra! Tudo bem?
Para conectar seu agente a um banco de dados MySQL existente, você pode usar as ferramentas do LangChain para interagir com bancos de dados. Veja um exemplo de como fazer isso:
pip install langchain langchain-community mysql-connector-python
from langchain_community.utilities import SQLDatabase
from langchain.chains import create_sql_query_chain
from langchain_google_genai import ChatGoogleGenerativeAI
import os
# Substitua com suas credenciais
db_user = "seu_usuario"
db_password = "sua_senha"
db_host = "seu_host"
db_name = "seu_banco_de_dados"
db_connection_string = f"mysql+mysqlconnector://{db_user}:{db_password}@{db_host}/{db_name}"
db = SQLDatabase.from_uri(db_connection_string)
def get_table_names(db):
"""Retorna uma lista de nomes de tabelas no banco de dados."""
return db.get_table_names()
def get_column_names(db, table_name):
"""Retorna uma lista de nomes de colunas para uma tabela específica."""
return db.get_columns(table_name)
print("Nomes das tabelas:", get_table_names(db))
print("Nomes das colunas da tabela 'sua_tabela':", get_column_names(db, 'sua_tabela'))
Este código conecta ao MySQL e lista os nomes das tabelas e colunas.
llm = ChatGoogleGenerativeAI(model="gemini-pro", temperature=0.0, google_api_key=os.environ["GOOGLE_API_KEY"])
chain = create_sql_query_chain(llm, db)
pergunta = "Liste os 5 produtos mais caros."
query_sql = chain.invoke({"question": pergunta})
print("Query SQL gerada:", query_sql)
Este código usa o LangChain para gerar uma query SQL a partir de uma pergunta em linguagem natural.
def execute_query(db, query):
"""Executa uma query SQL no banco de dados e retorna os resultados."""
return db.run(query)
resultados = execute_query(db, query_sql)
print("Resultados da query:", resultados)
Este código executa a query SQL no banco de dados e imprime os resultados.
Dica: Adapte as queries e os comandos conforme a estrutura do seu banco de dados.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.
Abraços e bons estudos!