54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
import type { LanguageModelV3 } from '@ai-sdk/provider';
|
|
|
|
export type TProvider =
|
|
| 'anthropic'
|
|
| 'openai'
|
|
| 'google'
|
|
| 'groq'
|
|
| 'mistral'
|
|
| 'xai'
|
|
| 'perplexity'
|
|
| 'ollama';
|
|
|
|
export interface ISmartAiOptions {
|
|
provider: TProvider;
|
|
model: string;
|
|
apiKey?: string;
|
|
/** For Ollama: base URL of the local server. Default: http://localhost:11434 */
|
|
baseUrl?: string;
|
|
/**
|
|
* Ollama-specific model runtime options.
|
|
* Only used when provider === 'ollama'.
|
|
*/
|
|
ollamaOptions?: IOllamaModelOptions;
|
|
/**
|
|
* Enable Anthropic prompt caching on system + recent messages.
|
|
* Only used when provider === 'anthropic'. Default: true.
|
|
*/
|
|
promptCaching?: boolean;
|
|
}
|
|
|
|
/**
|
|
* Ollama model runtime options passed in the request body `options` field.
|
|
* @see https://github.com/ollama/ollama/blob/main/docs/modelfile.md
|
|
*/
|
|
export interface IOllamaModelOptions {
|
|
/** Context window size. Default: 2048. */
|
|
num_ctx?: number;
|
|
/** 0 = deterministic. Default: 0.8. For Qwen models use 0.55. */
|
|
temperature?: number;
|
|
top_k?: number;
|
|
top_p?: number;
|
|
repeat_penalty?: number;
|
|
num_predict?: number;
|
|
stop?: string[];
|
|
seed?: number;
|
|
/**
|
|
* Enable thinking/reasoning mode (Qwen3, QwQ, DeepSeek-R1 etc.).
|
|
* The custom Ollama provider handles this directly.
|
|
*/
|
|
think?: boolean;
|
|
}
|
|
|
|
export type { LanguageModelV3 };
|