@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
TypeScript
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>;
}