UNPKG

@rexdug7005/nvidia-llama4

Version:

Integración de NVIDIA Llama4 con LangChain.js

149 lines (114 loc) 4.61 kB
# @rexdug7005/nvidia-llama4 Esta biblioteca permite integrar modelos de NVIDIA Llama4 con el ecosistema de LangChain.js, facilitando el uso de modelos como Llama4 de Meta en aplicaciones de procesamiento de lenguaje natural. ## Repositorio [GitHub: https://github.com/Alex66688/nvidia-llama4](https://github.com/Alex66688/nvidia-llama4) ## Instalación ```bash npm install @rexdug7005/nvidia-llama4 yarn add @rexdug7005/nvidia-llama4 pnpm add @rexdug7005/nvidia-llama4 ``` ## Requisitos - Node.js >= 18 - Una clave API de NVIDIA ## Modelos de Chat ```typescript import { ChatNvidiaLlama4, ChatNvidiaLlama4Input, ChatNvidiaLlama4CallOptions } from "@rexdug7005/nvidia-llama4"; // Creación del modelo de chat const chatModel = new ChatNvidiaLlama4({ apiKey: "tu-api-key-de-nvidia", model: "meta/llama-4-maverick-17b-128e-instruct", temperature: 0.7, maxTokens: 512 }); // Generación de respuesta simple const respuesta = await chatModel.invoke("Traduce 'Hola mundo' al inglés"); // Uso con mensajes estructurados import { HumanMessage, SystemMessage } from "@langchain/core/messages"; const messages = [ new SystemMessage("Eres un asistente útil especializado en traducción"), new HumanMessage("Traduce 'Hola mundo' al inglés") ]; const chatResponse = await chatModel.invoke(messages); // Streaming de respuestas const stream = await chatModel.stream("Explica el concepto de inteligencia artificial"); for await (const chunk of stream) { console.log(chunk.content); // Muestra fragmentos de la respuesta conforme llegan } ``` ## Modelos de Lenguaje (LLMs) ```typescript import { NvidiaLlama4, NvidiaLlama4Input, NvidiaLlama4CallOptions } from "@rexdug7005/nvidia-llama4"; // Creación del modelo de texto const llm = new NvidiaLlama4({ apiKey: "tu-api-key-de-nvidia", model: "meta/llama-4-maverick-17b-128e-instruct", temperature: 0.5, topP: 0.9 }); // Generación de texto const respuesta = await llm.invoke("Explica qué es la inteligencia artificial"); // Uso con imágenes (para modelos multimodales) const respuestaMultimodal = await llm.invoke("¿Qué muestra esta imagen?", { images: ["data:image/jpeg;base64,/9j/4AAQSkZJRg..."] // Imagen en base64 }); // Streaming de respuestas for await (const chunk of await llm.stream("Escribe un poema sobre la tecnología")) { process.stdout.write(chunk); // Imprime cada fragmento según llega } ``` ## Embeddings ```typescript import { NvidiaEmbeddings, NvidiaEmbeddingsParams } from "@rexdug7005/nvidia-llama4"; // Creación del modelo de embeddings const embeddings = new NvidiaEmbeddings({ apiKey: "tu-api-key-de-nvidia", model: "embd/llama-4-embd" }); // Generar embeddings para un texto individual const vectorQuery = await embeddings.embedQuery("Este es un texto de ejemplo"); // Generar embeddings para múltiples textos const documentos = [ "La inteligencia artificial es una rama de la informática.", "El aprendizaje automático es un subcampo de la IA.", "Las redes neuronales son modelos inspirados en el cerebro humano." ]; const vectoresDocumentos = await embeddings.embedDocuments(documentos); ``` ## Integración con LangChain ```typescript import { ChatNvidiaLlama4 } from '@rexdug7005/nvidia-llama4'; import { PromptTemplate } from '@langchain/core/prompts'; import { StringOutputParser } from '@langchain/core/output_parsers'; import { RunnableSequence } from '@langchain/core/runnables'; // Crear un modelo const model = new ChatNvidiaLlama4({ apiKey: "tu-api-key-de-nvidia", model: "meta/llama-4-maverick-17b-128e-instruct" }); // Crear una plantilla de prompt const promptTemplate = PromptTemplate.fromTemplate( "Traduce el siguiente texto del español al {idioma}: {texto}" ); // Crear una cadena (chain) de procesamiento const chain = RunnableSequence.from([ promptTemplate, model, new StringOutputParser() ]); // Ejecutar la cadena const resultado = await chain.invoke({ idioma: "francés", texto: "Hola, ¿cómo estás?" }); console.log(resultado); ``` ## Documentación de API Para más detalles sobre las clases, interfaces y métodos disponibles, consulta la documentación completa. ## Contribuir Las contribuciones son bienvenidas. Para contribuir: 1. Haz un fork del repositorio en [https://github.com/Alex66688/nvidia-llama4](https://github.com/Alex66688/nvidia-llama4) 2. Crea una rama con tu nueva característica (`git checkout -b feature/amazing-feature`) 3. Haz commit de tus cambios (`git commit -m 'Añadir nueva característica'`) 4. Haz push a la rama (`git push origin feature/amazing-feature`) 5. Abre un Pull Request