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