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.
Respondent.io
Respondent.io es una plataforma en línea que conecta investigadores y empresas con participantes para estudios de mercado y encuestas remuneradas. Su objetivo es facilitar la recopilación de datos cualitativos y cuantitativos mediante entrevistas, encuestas y pruebas de usuario? 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