TODO
Introducció
We are going to use the IA - Ollama
For the language model we will use a resized version of the DeepSeek R1 that can run locally.
Ollama
Ollama es un cliente de modelos de inteligencia artificial, por lo que es la base sobre la que luego instalar una IA que quieras utilizar.
Ollama te permite usar una IA de forma local
Antes de empezar tienes que ir a la web donde verás todos los modelos de IA disponibles. La web es ollama.com/search
Download and install Ollama if you haven’t already.
scoop install main/ollamascoop install extras/ollama-fullConfirm the ollama command is available and the Ollama server is running on port 11434.
Install DeepSeek R1 8b parameter model:
ollama pull deepseek-r1:8bCheck availability with:
ollama list
```shellNAME ID SIZE MODIFIEDdeepseek-r1:8b 28f8fd6cdc67 4.9 GB 59 seconds agousar el comando para lanzar el modelo en tu terminal, como por ejemplo ollama run deepseek-r1:8b para lanzar la versión 8b de DeepSeek R1.
ollama run deepseek-r1:8bLa primera vez que uses el comando primero se instalará el modelo, pero las próximas ya lo lanzarás directamente.
Tras escribir el comando, se lanzará el modelo de IA en el terminal. Esto l ovas a distinguir porque ves que en el campo de escritura del terminal ahora aparece un >>>, lo que significa que lo que escribas se lo enviarás al modelo de inteligencia artificial.
Ahora, en la línea de comandos de tu ordenador podrás escribir el prompt que quieras lanzarle a la IA que hayas elegido, y tras unos segundos empezará a generarte la respuesta.
Using the model
LangChain.js provides a consistent interface for interacting with large language models, including Ollama.
For example:
import { ChatOllama } from "npm:@langchain/ollama";
const model = new ChatOllama({ model: "deepseek-r1:8b"})deno run --allow-env --allow-net main.tsimport { ChatOllama } from "npm:@langchain/ollama";import { z } from "npm:zod";import { RunnableSequence } from "npm:@langchain/core/runnables";import { StructuredOutputParser } from "npm:@langchain/core/output_parsers";import { ChatPromptTemplate } from "npm:@langchain/core/prompts";
const model = new ChatOllama({ model: "deepseek-r1:8b",});
const zodSchema = z.object({ answer: z.string().describe("answer to the user's question"), source: z.string().describe( "source used to answer the user's question, should be a website.", ),});
const parser = StructuredOutputParser.fromZodSchema(zodSchema);
const chain = RunnableSequence.from([ ChatPromptTemplate.fromTemplate( "Answer the users question as best as possible.\n{format_instructions}\n{question}", ), model, parser,]);
// Display the format instructions//console.log(parser.getFormatInstructions());
const response = await chain.invoke({ question: "What is xtec.dev ?", format_instructions: parser.getFormatInstructions(),});
console.log(response);TODO
https://www.youtube.com/watch?v=abkZuYUbx8w
https://medium.com/towards-agi/how-to-use-ollama-effectively-with-langchain-tutorial-546f5dbffb70