supa-seed
Version:
A constraint-aware, framework-agnostic database seeding framework with deep PostgreSQL business logic discovery and MakerKit integration support
136 lines • 3.31 kB
TypeScript
/**
* Ollama Local Model Client
* Phase 5, Checkpoint E1 - Local AI integration for asset generation
*/
export interface OllamaConfig {
baseUrl: string;
model: string;
timeout: number;
maxRetries: number;
fallbackModels?: string[];
}
export interface GenerateRequest {
model: string;
prompt: string;
system?: string;
template?: string;
context?: number[];
stream?: boolean;
raw?: boolean;
format?: 'json';
options?: {
num_keep?: number;
seed?: number;
num_predict?: number;
top_k?: number;
top_p?: number;
tfs_z?: number;
typical_p?: number;
repeat_last_n?: number;
temperature?: number;
repeat_penalty?: number;
presence_penalty?: number;
frequency_penalty?: number;
mirostat?: number;
mirostat_tau?: number;
mirostat_eta?: number;
penalize_newline?: boolean;
stop?: string[];
};
}
export interface GenerateResponse {
model: string;
created_at: string;
response: string;
done: boolean;
context?: number[];
total_duration?: number;
load_duration?: number;
prompt_eval_count?: number;
prompt_eval_duration?: number;
eval_count?: number;
eval_duration?: number;
}
export interface ModelInfo {
name: string;
modified_at: string;
size: number;
digest: string;
details: {
format: string;
family: string;
families?: string[];
parameter_size: string;
quantization_level: string;
};
}
export interface ConnectionStatus {
connected: boolean;
version?: string;
availableModels: string[];
recommendedModel?: string;
error?: string;
}
export declare class OllamaClient {
private config;
private isHealthy;
private lastHealthCheck;
private healthCheckInterval;
constructor(config?: Partial<OllamaConfig>);
/**
* Check if Ollama is available and healthy
*/
checkHealth(): Promise<ConnectionStatus>;
/**
* Generate text using Ollama
*/
generate(request: Omit<GenerateRequest, 'model'> & {
model?: string;
}): Promise<GenerateResponse>;
/**
* Generate structured JSON response
*/
generateJSON<T = any>(prompt: string, system?: string, schema?: any): Promise<T>;
/**
* Get available models
*/
listModels(): Promise<ModelInfo[]>;
/**
* Pull a model if not available
*/
pullModel(name: string, onProgress?: (progress: any) => void): Promise<boolean>;
/**
* Get Ollama version
*/
private getVersion;
/**
* Find the best available model from our preferences
*/
private findBestModel;
/**
* Make HTTP request to Ollama API
*/
private makeRequest;
/**
* Basic schema validation
*/
private validateSchema;
/**
* Simple delay utility
*/
private delay;
/**
* Get connection status
*/
isConnected(): boolean;
/**
* Get current configuration
*/
getConfig(): OllamaConfig;
/**
* Update configuration
*/
updateConfig(updates: Partial<OllamaConfig>): void;
}
export declare const ollamaClient: OllamaClient;
//# sourceMappingURL=ollama-client.d.ts.map