UNPKG

gpt-research

Version:

Autonomous AI research agent that conducts comprehensive research on any topic and generates detailed reports with citations

191 lines 4.1 kB
/** * Cost calculation utilities for LLM usage */ export declare const MODEL_COSTS: { 'gpt-4-turbo': { input: number; output: number; }; 'gpt-4-turbo-preview': { input: number; output: number; }; 'gpt-4': { input: number; output: number; }; 'gpt-4-32k': { input: number; output: number; }; 'gpt-3.5-turbo': { input: number; output: number; }; 'gpt-3.5-turbo-16k': { input: number; output: number; }; 'o1-preview': { input: number; output: number; }; 'o1-mini': { input: number; output: number; }; 'o3-mini': { input: number; output: number; }; 'claude-3-opus': { input: number; output: number; }; 'claude-3-sonnet': { input: number; output: number; }; 'claude-3-haiku': { input: number; output: number; }; 'claude-2.1': { input: number; output: number; }; 'claude-instant': { input: number; output: number; }; 'gemini-pro': { input: number; output: number; }; 'gemini-pro-vision': { input: number; output: number; }; 'gemini-ultra': { input: number; output: number; }; 'llama-3.1-70b': { input: number; output: number; }; 'llama-3.1-8b': { input: number; output: number; }; 'mixtral-8x7b': { input: number; output: number; }; command: { input: number; output: number; }; 'command-light': { input: number; output: number; }; 'pplx-70b-online': { input: number; output: number; }; 'pplx-70b-chat': { input: number; output: number; }; 'text-embedding-3-small': { input: number; output: number; }; 'text-embedding-3-large': { input: number; output: number; }; 'text-embedding-ada-002': { input: number; output: number; }; 'voyage-large-2': { input: number; output: number; }; 'embed-english-v3.0': { input: number; output: number; }; }; export interface TokenUsage { inputTokens: number; outputTokens: number; totalTokens: number; model: string; } export interface CostBreakdown { inputCost: number; outputCost: number; totalCost: number; model: string; inputTokens: number; outputTokens: number; } /** * Estimate token count from text * This is a rough approximation - for accurate counts use tiktoken */ export declare function estimateTokens(text: string): number; /** * Calculate cost for token usage */ export declare function calculateCost(usage: TokenUsage): CostBreakdown; /** * Format cost for display */ export declare function formatCost(cost: number): string; /** * Track cumulative costs */ export declare class CostTracker { private costs; add(usage: TokenUsage): CostBreakdown; getTotalCost(): number; getTotalTokens(): { input: number; output: number; total: number; }; getCostByModel(): Record<string, number>; getSummary(): { totalCost: number; totalTokens: { input: number; output: number; total: number; }; costByModel: Record<string, number>; averageCostPerRequest: number; requestCount: number; }; reset(): void; addCost(cost: number): void; getStats(): any; formatSummary(): string; } /** * Estimate cost for a research task */ export declare function estimateResearchCost(config: { queries: number; averageQueryLength: number; averageResponseLength: number; model: string; includeEmbeddings?: boolean; embeddingModel?: string; documentsToEmbed?: number; averageDocumentLength?: number; }): CostBreakdown; //# sourceMappingURL=cost.d.ts.map