LangChain más Ollama: Cadenas Qwen locales, herramientas y estructura
Dirige langchain-ollama a una etiqueta Qwen local y obtén cadenas, transmisión en tiempo real, llamadas a herramientas y salida estructurada sin necesidad de claves en la nube. Configuración y peculiaridades a tener en cuenta.
Fuentes: LangChain integrations with Ollama local LLM - qwen3.8:27b
Qwen local a través de Ollama, conectado a LangChain
Ejecuta modelos de chat de código abierto como qwen3.8:27b en tu propia máquina y conéctalos a las cadenas, agentes y herramientas de LangChain: sin claves API en la nube ni facturación por token.
Ollama en un párrafo
Ollama empaqueta los pesos, la configuración y el entorno de ejecución detrás de una interfaz amigable para Modelfile y se encarga de los detalles de aceleración por GPU en configuraciones comunes. Descarga una etiqueta, ejecuta un prompt y expone una API HTTP en el puerto 11434.
Integración de Ollama en LangChain
El paquete langchain-ollama ofrece modelos de chat con posibilidad de llamar a herramientas, salida estructurada, entradas multimodales, transmisión en tiempo real, operaciones asíncronas y registro de probabilidades: la misma interfaz que esperarías de los wrappers de chat en la nube, pero dirigida a localhost.
Eskema de configuración
Instale Ollama, descargue el modelo de chat que necesite y confirme que la API responde. En Python, instale la integración de Ollama de LangChain y cree un modelo de chat dirigido a su URL base local.
ollama pull qwen3.8:27b
ollama list
Cadenas y prompts
Construya una cadena sencilla de prompt → modelo para resúmenes o preguntas y respuestas sin salir de la máquina:
from langchain_ollama import ChatOllama
llm = ChatOllama(
model="qwen3.8:27b",
temperature=0.3,
)
Transmita tokens si su interfaz necesita actualizaciones incrementales:
messages = [
ChatMessage(role="control", content="thinking"),
HumanMessage("What is 3^3?"),
]
Herramientas y agentes
Vincule las herramientas de la misma manera que lo haría con un modelo alojado. El modelo local debe soportar la llamada a herramientas para lograr bucles de agentes fiables; elija etiquetas conocidas por funcionar con el protocolo de herramientas de Ollama.
messages = [
SystemMessage(
content="""
You are an expert at reading screenshots and technical documentation.
Rules:
- Extract information only from the image.
- Do not hallucinate missing values.
- Return concise answers.
- Preserve commands exactly as shown.
"""
),
HumanMessage(
content=[
{
"type": "image_url",
"image_url": f"data:image/png;base64,{image_b64}",
},
{
"type": "text",
"text": "What is the download command for the Gemma 7B model?",
},
],
),
]
SystemMessage
↓
"You are a technical documentation analyst.
Extract information only from the image.
Do not guess.
Return concise answers."
HumanMessage #1
↓
"What is the download command?"
HumanMessage #2
↓
"What version of the model is shown?"
HumanMessage #3
↓
"What is the model's parameter count?"
Salida estructurada
Cuando necesite JSON, utilice ayudantes de salida estructurada en lugar de limitarse a prompts frágiles como “por favor, devuelva JSON”:
HumanMessage(
content=[
{
"type": "image_url",
"image_url": f"data:image/png;base64,{image_b64}",
},
{
"type": "text",
"text": """
The image is a screenshot from an Ollama model page.
Task:
1. Find the section containing model download instructions.
2. Locate the Gemma 7B model.
3. Return only the exact Ollama pull command.
Output format:
Return JSON only:
{
"model_name": "",
"download_command": "",
"confidence": ""
}
Do not include explanations.
"""
},
]
)
Por qué esta combinación
Mantiene los datos dentro del sistema, puede iterar sin límites de velocidad y sigue utilizando el vocabulario de cadenas/agentes de LangChain. Puede sacrificar la máxima calidad o velocidad a cambio de privacidad y previsibilidad en los costos: una buena opción para prototipos, herramientas internas y demostraciones sin conexión.
Preferir etiquetas explícitas de modelo en cada ejemplo para que las actualizaciones no modifiquen silenciosamente el comportamiento durante el tutorial.
Preferir etiquetas explícitas de modelo en cada ejemplo para que las actualizaciones no modifiquen silenciosamente el comportamiento durante el tutorial.
Preferir etiquetas explícitas de modelo en cada ejemplo para que las actualizaciones no modifiquen silenciosamente el comportamiento durante el tutorial.
Preferir etiquetas explícitas de modelo en cada ejemplo para que las actualizaciones no modifiquen silenciosamente el comportamiento durante el tutorial.
Preferir etiquetas explícitas de modelo en cada ejemplo para que las actualizaciones no modifiquen silenciosamente el comportamiento durante el tutorial.
Preferir etiquetas explícitas de modelo en cada ejemplo para que las actualizaciones no modifiquen silenciosamente el comportamiento durante el tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Preferir etiquetas de modelo explícitas en cada ejemplo para que las actualizaciones no cambien silenciosamente el comportamiento a mitad del tutorial.
Lecturas relacionadas
- LangChain 1.x en la práctica: Cadenas, RAG, herramientas y agentes de forma local — Aprenda a crear cadenas, sistemas de generación mejorada por recuperación de información, herramientas y agentes RAG con LangChain 1.x utilizando una configuración local gratuita de Ollama, sin necesidad de claves API.
- RAG para PDFs totalmente local con LangChain, Ollama y Chroma — Procese PDFs de forma local, intégrelos con Ollama, guárdelos en Chroma y responda sin conexión; no se requieren claves API de la nube una vez que se hayan descargado los modelos.
- Herramientas de visión MCP con MiniCPM-V en Ollama — Exponga herramientas de descripción, OCR y comparación de imágenes a través de MCP para que Cursor y Claude Desktop puedan analizar capturas de pantalla localmente.