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
TypeScript
/**
* 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