UNPKG

@rexdug7005/nvidia-llama4

Version:

Integración de NVIDIA Llama4 con LangChain.js, con soporte para Tools Agent de n8n

85 lines (84 loc) 3.51 kB
import { BaseChatModel, BaseChatModelCallOptions, BaseChatModelParams } from "@langchain/core/language_models/chat_models"; import { AIMessageChunk, BaseMessage } from "@langchain/core/messages"; import { CallbackManagerForLLMRun } from "@langchain/core/callbacks/manager"; import { ChatGeneration, ChatGenerationChunk } from "@langchain/core/outputs"; import { BaseLanguageModelInput } from "@langchain/core/language_models/base"; import { Runnable } from "@langchain/core/runnables"; import { NvidiaCamelCaseOptions, BindToolsInput } from "./utils.js"; /** * Interfaz para las opciones de entrada del modelo de chat */ export interface ChatNvidiaLlama4Input extends BaseChatModelParams { /** Clave API para NVIDIA Llama4 */ apiKey: string; /** URL para las llamadas a la API. Por defecto es la URL de NVIDIA para chat */ baseUrl?: string; /** El modelo a utilizar (por defecto: meta/llama-4-maverick-17b-128e-instruct) */ model?: string; /** Habilitar o deshabilitar streaming */ streaming?: boolean; /** Temperatura para la generación de texto (0-1) */ temperature?: number; /** Número máximo de tokens a generar */ maxTokens?: number; /** Valor de Top-P para muestreo de tokens */ topP?: number; /** Valor de Top-K para muestreo de tokens */ topK?: number; /** Penalización por presencia */ presencePenalty?: number; /** Penalización por frecuencia */ frequencyPenalty?: number; /** Tokens de parada */ stop?: string[]; } /** * Interfaz para las opciones de llamada del modelo de chat */ export interface ChatNvidiaLlama4CallOptions extends BaseChatModelCallOptions, NvidiaCamelCaseOptions { /** Lista de URLs de imágenes en formato base64 para entrada multimodal */ images?: string[]; /** Lista de herramientas para usar con el modelo */ tools?: BindToolsInput[]; /** Opción para elegir una herramienta específica o auto para selección automática */ tool_choice?: "auto" | "none" | { type: string; function: { name: string; }; }; } /** * Implementación del modelo de chat NVIDIA Llama4 para LangChain */ export declare class ChatNvidiaLlama4 extends BaseChatModel<ChatNvidiaLlama4CallOptions> { apiKey: string; baseUrl: string; modelName: string; defaultOptions: NvidiaCamelCaseOptions; streaming: boolean; static lc_name(): string; constructor(fields: ChatNvidiaLlama4Input); _llmType(): string; /** * Vincula herramientas al modelo para habilitar la funcionalidad de agente * @param tools Lista de herramientas para vincular al modelo * @param kwargs Opciones adicionales para la llamada */ bindTools(tools: BindToolsInput[], kwargs?: Partial<this["ParsedCallOptions"]>): Runnable<BaseLanguageModelInput, AIMessageChunk, ChatNvidiaLlama4CallOptions>; /** * Obtiene los parámetros para la llamada a la API */ private getParams; /** * Genera una respuesta sincrónica (no streaming) */ _generate(messages: BaseMessage[], options: ChatNvidiaLlama4CallOptions): Promise<{ generations: ChatGeneration[]; }>; /** * Procesa la respuesta de streaming de la API */ _streamResponseChunks(messages: BaseMessage[], options: ChatNvidiaLlama4CallOptions, runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>; _call(messages: BaseMessage[], options: ChatNvidiaLlama4CallOptions): Promise<string>; }