Integracion con Modelos de IA

Integracion con Modelos de IA

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.

Enlace Patrocinado

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

Curso Agente IA texto a sql