UNPKG

ai-sdk-ollama

Version:

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

83 lines 2.75 kB
import { RerankingModelV4, RerankingModelV4CallOptions } from '@ai-sdk/provider'; import { FetchFunction } from '@ai-sdk/provider-utils'; import { z } from 'zod'; /** * Configuration for the Ollama reranking model */ export interface OllamaRerankingConfig { provider: string; baseURL: string; headers: () => Record<string, string | undefined>; fetch?: FetchFunction; } /** * Settings for configuring Ollama reranking models */ export interface OllamaRerankingSettings { /** * Custom instruction for the reranker model. * Defaults to the model's built-in instruction (usually "Please judge relevance"). */ instruction?: string; } /** * Schema for validating Ollama reranking provider options */ export declare const ollamaRerankingProviderOptionsSchema: z.ZodObject<{ instruction: z.ZodOptional<z.ZodString>; }, z.core.$strip>; /** * Ollama provider options for reranking calls */ export type OllamaRerankingProviderOptions = z.infer<typeof ollamaRerankingProviderOptionsSchema>; /** * Native Ollama Reranking Model * * **WAITING FOR OFFICIAL SUPPORT** * * This implementation uses Ollama's /api/rerank endpoint from PR #11389. * As of December 2024, this PR has NOT been merged into Ollama. * * **For a working solution, use `OllamaEmbeddingRerankingModel` instead:** * ```ts * import { ollama } from 'ai-sdk-ollama'; * import { rerank } from 'ai'; * * const result = await rerank({ * model: ollama.embeddingReranking('bge-m3'), * query: 'What is machine learning?', * documents: [...], * }); * ``` * * This native implementation will work once Ollama adds reranking support: * @see https://github.com/ollama/ollama/pull/11389 * * @example * ```ts * // NOT YET WORKING - requires Ollama reranking API * import { ollama } from 'ai-sdk-ollama'; * import { rerank } from 'ai'; * * const { rerankedDocuments } = await rerank({ * model: ollama.rerankingModel('bge-reranker-v2-m3'), * query: 'What is machine learning?', * documents: [ * 'Machine learning is a subset of AI...', * 'The weather today is sunny...', * 'Deep learning uses neural networks...', * ], * topN: 2, * }); * ``` */ export declare class OllamaRerankingModel implements RerankingModelV4 { readonly specificationVersion: 'v4'; readonly modelId: string; private readonly config; private readonly settings; constructor(modelId: string, settings: OllamaRerankingSettings, config: OllamaRerankingConfig); get provider(): string; doRerank({ documents, headers, query, topN, abortSignal, providerOptions, }: RerankingModelV4CallOptions): Promise<Awaited<ReturnType<RerankingModelV4['doRerank']>>>; } //# sourceMappingURL=reranking-model.d.ts.map