En este mรณdulo aprenderรกs a integrar modelos de IA como LLama 2 y DeepSeek usando Ollama y LangChain para generar consultas SQL de manera automรกtica.
๐น 3.1 Instalaciรณn y Configuraciรณn de Ollama
Ollama es una plataforma que permite ejecutar modelos de lenguaje de manera local.
Instalamos Ollama desde su pรกgina oficial: ollama.com.
Luego, descargamos el modelo LLama 2:
ollama pull llama2
Para verificar que el modelo funciona, ejecutamos:
ollama run llama2 "ยฟQuรฉ es SQL?"
๐น 3.2 Instalaciรณn de LangChain
LangChain es una librerรญa que facilita la integraciรณn de modelos de IA en aplicaciones.
Instalamos la librerรญa con:
pip install langchain langchain-community
๐น 3.3 Conectando LangChain con Ollama
Ahora configuramos LangChain para usar Ollama con LLama 2:
from langchain_community.llms import Ollama
llm = Ollama(model="llama2")
respuesta = llm.invoke("Explica en quรฉ consiste una consulta SQL.")
print(respuesta)
๐น 3.4 Generaciรณn Automรกtica de Consultas SQL
Ahora integramos LangChain para generar consultas SQL con IA.
from langchain_community.llms import Ollama
def generar_sql(pregunta):
prompt = f"Convierte esta pregunta en una
consulta SQL vรกlida: {pregunta}"
llm = Ollama(model="llama2")
return llm.invoke(prompt)
pregunta_usuario = "ยฟCuรกntos clientes hay en la base de
datos?"
consulta_sql = generar_sql(pregunta_usuario)
print("Consulta generada:", consulta_sql)
๐น 3.5 Mejorando la Precisiรณn con Contexto
Para mejorar la calidad de las consultas generadas, proporcionamos informaciรณn adicional sobre el esquema de la base de datos.
esquema = """
Tablas:
1. clientes (id, nombre, email, telefono)
2. pedidos (id, cliente_id, fecha, total)
3. productos (id, nombre, precio, stock)
Ejemplo de consulta: "Lista los nombres de los clientes
con pedidos mayores a 100 dรณlares."
"""
def generar_sql_con_contexto(pregunta):
prompt = f"{esquema}\nConvierte esta pregunta en una
consulta SQL vรกlida: {pregunta}"
llm = Ollama(model="llama2")
return llm.invoke(prompt)
consulta_sql = generar_sql_con_contexto("ยฟCuรกntos clientes han hecho pedidos?")
print("Consulta mejorada:", consulta_sql)
๐น 3.6 Validaciรณn de Consultas Generadas
Antes de ejecutar la consulta en la base de datos, verificamos si es vรกlida.
def validar_sql(query, cursor):
try:
cursor.execute("EXPLAIN " + query)
return "Consulta vรกlida"
except Exception as e:
return f"Error en la consulta: {e}"
๐น 3.7 Integraciรณn Completa con SQL Server
Ahora unimos todo: IA, generaciรณn de consultas y conexiรณn a la base de datos.
import pyodbc
from langchain_community.llms import Ollama
# Conexiรณn a SQL Server
conexion = pyodbc.connect("DRIVER={SQL Server};SERVER=localhost;DATABASE=mi_base;Trusted_Connection=yes;")
cursor = conexion.cursor()
# Generaciรณn de consulta con IA
def generar_sql(pregunta):
prompt = f"Convierte esta pregunta en una consulta SQL vรกlida: {pregunta}"
llm = Ollama(model="llama2")
return llm.invoke(prompt)
# Validaciรณn y ejecuciรณn
pregunta_usuario = "ยฟCuรกntos productos hay en la base de datos?"
consulta_sql = generar_sql(pregunta_usuario)
print("Consulta generada:", consulta_sql)
try:
cursor.execute(consulta_sql)
resultados = cursor.fetchall()
print(resultados)
except Exception as e:
print("Error en la consulta:", e)
๐ Conclusiรณn del Mรณdulo 3. Integracion con Modelos de IA
- Aprendiste a configurar Ollama y LangChain.
- Generaste consultas SQL usando LLama 2.
- Mejoraste la precisiรณn proporcionando el esquema de la base de datos.
- Validaste y ejecutaste consultas en SQL Server.
Indice del curso