UNPKG

@juspay/neurolink

Version:

Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio

66 lines (65 loc) 2.72 kB
/** * Builds a normalized multimodal options payload for streaming providers. * * This utility extracts and normalizes multimodal input fields from StreamOptions * into a consistent format that can be consumed by buildMultimodalMessagesArray. * * @param {StreamOptions} options - Stream options containing: * - input.text: Main text prompt * - input.images: Image files (Buffer | string paths/URLs) * - input.content: Advanced multimodal content array * - input.files: Auto-detected file types * - input.csvFiles: CSV files for tabular data * - input.pdfFiles: PDF documents (Buffer | string paths) * - csvOptions: CSV parsing options * - systemPrompt: System-level instructions * - conversationMessages: Chat history * - temperature: Model temperature (0-1) * - maxTokens: Maximum output tokens * - enableAnalytics: Enable analytics tracking * - enableEvaluation: Enable response evaluation * - context: Additional context data * @param {string} providerName - Provider identifier (e.g., "vertex", "openai", "anthropic") * @param {string} modelName - Model identifier (e.g., "gemini-2.5-flash", "gpt-4o") * @returns {object} Normalized options object with: * - input: { text, images, content, files, csvFiles, pdfFiles } * - csvOptions: CSV processing options * - systemPrompt: System prompt string * - conversationHistory: Message history array * - provider: Provider name * - model: Model name * - temperature: Temperature value * - maxTokens: Token limit * - enableAnalytics: Analytics flag * - enableEvaluation: Evaluation flag * - context: Context data * * @example * ```typescript * const opts = buildMultimodalOptions(streamOptions, "vertex", "gemini-2.5-flash"); * const messages = await buildMultimodalMessagesArray(opts, "vertex", "gemini-2.5-flash"); * ``` */ export function buildMultimodalOptions(options, providerName, modelName) { return { input: { text: options.input?.text || "", images: options.input?.images, content: options.input?.content, files: options.input?.files, csvFiles: options.input?.csvFiles, pdfFiles: options.input?.pdfFiles, }, csvOptions: options.csvOptions, systemPrompt: options.systemPrompt, conversationHistory: options.conversationMessages, provider: providerName, model: modelName, temperature: options.temperature, maxTokens: options.maxTokens, enableAnalytics: options.enableAnalytics, enableEvaluation: options.enableEvaluation, context: options.context, fileRegistry: options.fileRegistry, }; }