@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
69 lines (68 loc) • 3.08 kB
TypeScript
import type { StreamOptions } from "../types/index.js";
/**
* 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 declare function buildMultimodalOptions(options: StreamOptions, providerName: string, modelName: string): {
input: {
text: string;
images: (string | Buffer<ArrayBufferLike> | import("../types/multimodal.js").ImageWithAltText)[] | undefined;
content: import("../types/multimodal.js").Content[] | undefined;
files: (string | Buffer<ArrayBufferLike> | import("../types/file.js").FileWithMetadata)[] | undefined;
csvFiles: (string | Buffer<ArrayBufferLike>)[] | undefined;
pdfFiles: (string | Buffer<ArrayBufferLike>)[] | undefined;
};
csvOptions: {
maxRows?: number;
formatStyle?: "raw" | "markdown" | "json";
includeHeaders?: boolean;
} | undefined;
systemPrompt: string | undefined;
conversationHistory: import("../types/conversation.js").ChatMessage[] | undefined;
provider: string;
model: string;
temperature: number | undefined;
maxTokens: number | undefined;
enableAnalytics: boolean | undefined;
enableEvaluation: boolean | undefined;
context: import("../types/common.js").UnknownRecord | undefined;
fileRegistry: unknown;
};