UNPKG

ai-sdk-ollama

Version:

Vercel AI SDK Provider for Ollama using official ollama-js library

284 lines 11.4 kB
import { z } from 'zod'; import type { Ollama } from 'ollama'; type OllamaWithWebSearch = Ollama; /** * Configuration options for the web search tool */ export interface WebSearchToolOptions { /** * Timeout for search requests in milliseconds * @default 30000 */ timeout?: number; /** * Ollama client instance to use for web search * If not provided, will need to be injected at runtime */ client?: OllamaWithWebSearch; } /** * Input schema for web search requests */ export declare const webSearchInputSchema: z.ZodObject<{ query: z.ZodString; maxResults: z.ZodOptional<z.ZodNumber>; }, z.core.$strip>; export declare const webSearchInputJsonSchema: { readonly type: 'object'; readonly properties: { readonly query: { readonly type: 'string'; readonly minLength: 1; readonly maxLength: 500; readonly description: 'The search query to find relevant information on the web'; }; readonly maxResults: { readonly type: 'integer'; readonly minimum: 1; readonly maximum: 20; readonly description: 'Maximum number of search results to return (1-20)'; }; }; readonly required: readonly ['query']; readonly additionalProperties: false; }; /** * Output schema for web search results */ export type WebSearchOutput = { results: Array<{ title: string; url: string; snippet: string; publishedDate?: string; }>; searchQuery: string; totalResults: number; }; export declare function webSearch(options?: WebSearchToolOptions): ({ title?: string; providerOptions?: import("@ai-sdk/provider-utils").ProviderOptions; metadata?: import("@ai-sdk/provider").JSONObject; inputSchema: import("ai").FlexibleSchema<{ query: string; maxResults?: number | undefined; }>; contextSchema?: import("ai").FlexibleSchema<import("@ai-sdk/provider-utils").Context> | undefined; needsApproval?: boolean | import("@ai-sdk/provider-utils").ToolNeedsApprovalFunction<{ query: string; maxResults?: number | undefined; }, NoInfer<import("@ai-sdk/provider-utils").Context>> | undefined; onInputStart?: ((options: import("ai").ToolExecutionOptions<NoInfer<import("@ai-sdk/provider-utils").Context>>) => void | PromiseLike<void>) | undefined; onInputDelta?: ((options: { inputTextDelta: string; } & import("ai").ToolExecutionOptions<NoInfer<import("@ai-sdk/provider-utils").Context>>) => void | PromiseLike<void>) | undefined; onInputAvailable?: ((options: { input: { query: string; maxResults?: number | undefined; }; } & import("ai").ToolExecutionOptions<NoInfer<import("@ai-sdk/provider-utils").Context>>) => void | PromiseLike<void>) | undefined; toModelOutput?: ((options: { toolCallId: string; input: { query: string; maxResults?: number | undefined; }; output: NoInfer<WebSearchOutput>; }) => import("@ai-sdk/provider-utils").ToolResultOutput | PromiseLike<import("@ai-sdk/provider-utils").ToolResultOutput>) | undefined; } & { outputSchema?: import("ai").FlexibleSchema<WebSearchOutput> | undefined; execute: import("ai").ToolExecuteFunction<{ query: string; maxResults?: number | undefined; }, WebSearchOutput, NoInfer<import("@ai-sdk/provider-utils").Context>>; } & { description?: string | ((options: { context: NoInfer<import("@ai-sdk/provider-utils").Context>; experimental_sandbox?: import("ai").Experimental_SandboxSession; }) => string) | undefined; strict?: boolean; inputExamples?: { input: NoInfer<{ query: string; maxResults?: number | undefined; }>; }[] | undefined; id?: never; isProviderExecuted?: never; args?: never; supportsDeferredResults?: never; } & { type?: undefined | 'function'; } & { execute: import("ai").ToolExecuteFunction<{ query: string; maxResults?: number | undefined; }, WebSearchOutput, NoInfer<import("@ai-sdk/provider-utils").Context>>; }) | ({ title?: string; providerOptions?: import("@ai-sdk/provider-utils").ProviderOptions; metadata?: import("@ai-sdk/provider").JSONObject; inputSchema: import("ai").FlexibleSchema<{ query: string; maxResults?: number | undefined; }>; contextSchema?: import("ai").FlexibleSchema<import("@ai-sdk/provider-utils").Context> | undefined; needsApproval?: boolean | import("@ai-sdk/provider-utils").ToolNeedsApprovalFunction<{ query: string; maxResults?: number | undefined; }, NoInfer<import("@ai-sdk/provider-utils").Context>> | undefined; onInputStart?: ((options: import("ai").ToolExecutionOptions<NoInfer<import("@ai-sdk/provider-utils").Context>>) => void | PromiseLike<void>) | undefined; onInputDelta?: ((options: { inputTextDelta: string; } & import("ai").ToolExecutionOptions<NoInfer<import("@ai-sdk/provider-utils").Context>>) => void | PromiseLike<void>) | undefined; onInputAvailable?: ((options: { input: { query: string; maxResults?: number | undefined; }; } & import("ai").ToolExecutionOptions<NoInfer<import("@ai-sdk/provider-utils").Context>>) => void | PromiseLike<void>) | undefined; toModelOutput?: ((options: { toolCallId: string; input: { query: string; maxResults?: number | undefined; }; output: NoInfer<WebSearchOutput>; }) => import("@ai-sdk/provider-utils").ToolResultOutput | PromiseLike<import("@ai-sdk/provider-utils").ToolResultOutput>) | undefined; } & { outputSchema?: import("ai").FlexibleSchema<WebSearchOutput> | undefined; execute: import("ai").ToolExecuteFunction<{ query: string; maxResults?: number | undefined; }, WebSearchOutput, NoInfer<import("@ai-sdk/provider-utils").Context>>; } & { description?: string | ((options: { context: NoInfer<import("@ai-sdk/provider-utils").Context>; experimental_sandbox?: import("ai").Experimental_SandboxSession; }) => string) | undefined; strict?: boolean; inputExamples?: { input: NoInfer<{ query: string; maxResults?: number | undefined; }>; }[] | undefined; id?: never; isProviderExecuted?: never; args?: never; supportsDeferredResults?: never; } & { type: 'dynamic'; } & { execute: import("ai").ToolExecuteFunction<{ query: string; maxResults?: number | undefined; }, WebSearchOutput, NoInfer<import("@ai-sdk/provider-utils").Context>>; }) | ({ title?: string; providerOptions?: import("@ai-sdk/provider-utils").ProviderOptions; metadata?: import("@ai-sdk/provider").JSONObject; inputSchema: import("ai").FlexibleSchema<{ query: string; maxResults?: number | undefined; }>; contextSchema?: import("ai").FlexibleSchema<import("@ai-sdk/provider-utils").Context> | undefined; needsApproval?: boolean | import("@ai-sdk/provider-utils").ToolNeedsApprovalFunction<{ query: string; maxResults?: number | undefined; }, NoInfer<import("@ai-sdk/provider-utils").Context>> | undefined; onInputStart?: ((options: import("ai").ToolExecutionOptions<NoInfer<import("@ai-sdk/provider-utils").Context>>) => void | PromiseLike<void>) | undefined; onInputDelta?: ((options: { inputTextDelta: string; } & import("ai").ToolExecutionOptions<NoInfer<import("@ai-sdk/provider-utils").Context>>) => void | PromiseLike<void>) | undefined; onInputAvailable?: ((options: { input: { query: string; maxResults?: number | undefined; }; } & import("ai").ToolExecutionOptions<NoInfer<import("@ai-sdk/provider-utils").Context>>) => void | PromiseLike<void>) | undefined; toModelOutput?: ((options: { toolCallId: string; input: { query: string; maxResults?: number | undefined; }; output: NoInfer<WebSearchOutput>; }) => import("@ai-sdk/provider-utils").ToolResultOutput | PromiseLike<import("@ai-sdk/provider-utils").ToolResultOutput>) | undefined; } & { outputSchema?: import("ai").FlexibleSchema<WebSearchOutput> | undefined; execute: import("ai").ToolExecuteFunction<{ query: string; maxResults?: number | undefined; }, WebSearchOutput, NoInfer<import("@ai-sdk/provider-utils").Context>>; } & { type: 'provider'; id: `${string}.${string}`; args: Record<string, unknown>; description?: never; strict?: never; inputExamples?: never; } & { isProviderExecuted: false; supportsDeferredResults?: never; } & { execute: import("ai").ToolExecuteFunction<{ query: string; maxResults?: number | undefined; }, WebSearchOutput, NoInfer<import("@ai-sdk/provider-utils").Context>>; }) | ({ title?: string; providerOptions?: import("@ai-sdk/provider-utils").ProviderOptions; metadata?: import("@ai-sdk/provider").JSONObject; inputSchema: import("ai").FlexibleSchema<{ query: string; maxResults?: number | undefined; }>; contextSchema?: import("ai").FlexibleSchema<import("@ai-sdk/provider-utils").Context> | undefined; needsApproval?: boolean | import("@ai-sdk/provider-utils").ToolNeedsApprovalFunction<{ query: string; maxResults?: number | undefined; }, NoInfer<import("@ai-sdk/provider-utils").Context>> | undefined; onInputStart?: ((options: import("ai").ToolExecutionOptions<NoInfer<import("@ai-sdk/provider-utils").Context>>) => void | PromiseLike<void>) | undefined; onInputDelta?: ((options: { inputTextDelta: string; } & import("ai").ToolExecutionOptions<NoInfer<import("@ai-sdk/provider-utils").Context>>) => void | PromiseLike<void>) | undefined; onInputAvailable?: ((options: { input: { query: string; maxResults?: number | undefined; }; } & import("ai").ToolExecutionOptions<NoInfer<import("@ai-sdk/provider-utils").Context>>) => void | PromiseLike<void>) | undefined; toModelOutput?: ((options: { toolCallId: string; input: { query: string; maxResults?: number | undefined; }; output: NoInfer<WebSearchOutput>; }) => import("@ai-sdk/provider-utils").ToolResultOutput | PromiseLike<import("@ai-sdk/provider-utils").ToolResultOutput>) | undefined; } & { outputSchema?: import("ai").FlexibleSchema<WebSearchOutput> | undefined; execute: import("ai").ToolExecuteFunction<{ query: string; maxResults?: number | undefined; }, WebSearchOutput, NoInfer<import("@ai-sdk/provider-utils").Context>>; } & { type: 'provider'; id: `${string}.${string}`; args: Record<string, unknown>; description?: never; strict?: never; inputExamples?: never; } & { isProviderExecuted: true; supportsDeferredResults?: boolean; } & { execute: import("ai").ToolExecuteFunction<{ query: string; maxResults?: number | undefined; }, WebSearchOutput, NoInfer<import("@ai-sdk/provider-utils").Context>>; }); export {}; //# sourceMappingURL=web-search.d.ts.map