En este apartado veremos cómo mejorar nuestra aplicación integrándola con otros motores de bases de datos, utilizando modelos de IA más avanzados y automatizando tareas SQL con agentes de IA.
Nuestra aplicación es compatible con múltiples bases de datos como MySQL y PostgreSQL. Para cambiar el motor, debemos modificar la configuración de SQLAlchemy.
pip install mysql-connector-python
from sqlalchemy import create_engine
DB_TYPE = "mysql"
USER = "usuario"
PASSWORD = "contraseña"
SERVER = "servidor_mysql"
DATABASE = "nombre_bd"
DB_URL = f"mysql+mysqlconnector://{USER}:{PASSWORD}@{SERVER}/{DATABASE}"
engine = create_engine(DB_URL)
pip install psycopg2
DB_TYPE = "postgresql"
USER = "usuario"
PASSWORD = "contraseña"
SERVER = "servidor_postgresql"
DATABASE = "nombre_bd"
DB_URL = f"postgresql+psycopg2://{USER}:{PASSWORD}@{SERVER}/{DATABASE}"
engine = create_engine(DB_URL)
Podemos mejorar la generación de consultas SQL utilizando modelos más avanzados. Para integrar GPT-4-Turbo, podemos usar la API de OpenAI.
pip install openai
import openai
openai.api_key = "TU_API_KEY"
def generar_sql_con_gpt4(prompt):
response = openai.ChatCompletion.create(
model="gpt-4-turbo",
messages=[{"role": "user", "content": prompt}]
)
return response["choices"][0]["message"]["content"]
StarCoder es un modelo optimizado para generación de código, incluyendo SQL. Puede usarse con Hugging Face.
pip install transformers
from transformers import pipeline
starcoder = pipeline("text-generation", model="bigcode/starcoder")
prompt = "Genera una consulta SQL para obtener los 10 clientes con más compras"
sql_query = starcoder(prompt, max_length=200)[0]["generated_text"]
print(sql_query)
Podemos usar agentes de IA con LangChain para ejecutar tareas SQL automáticamente.
from langchain.chat_models import ChatOpenAI
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.tools import SQLDatabaseToolkit
from langchain.utilities import SQLDatabase
# Conectar con la base de datos
db = SQLDatabase.from_uri(DB_URL)
toolkit = SQLDatabaseToolkit(db=db)
# Configurar el agente de IA
llm = ChatOpenAI(model="gpt-4", temperature=0)
agente_sql = initialize_agent(
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
tools=[toolkit.get_tool("query")],
llm=llm,
verbose=True
)
# Realizar una consulta
consulta = "¿Cuántos pedidos se hicieron en marzo?"
respuesta = agente_sql.run(consulta)
print(respuesta)
? ¡Ahora puedes implementar estas mejoras en tu aplicación!
Indice del curso