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.

๐Ÿ”น 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