UNPKG

@onurege3467/zerohelper

Version:

ZeroHelper is a versatile high-performance utility library and database framework for Node.js, fully written in TypeScript.

127 lines (126 loc) 4.68 kB
export interface ChatMessage { role: 'system' | 'user' | 'assistant'; content: string; } export interface CostEstimate { inputTokens: number; outputTokens: number; inputCost: number; outputCost: number; totalCost: number; } export interface StreamingResponse { content: string; finishReason?: string; isComplete: boolean; } /** * Metin için yaklaşık token sayısı hesaplar * Basit heuristic: kelime başına ~1.3 token, karakter başına ~0.25 token * @param text - Token sayısı hesaplanacak metin * @returns Yaklaşık token sayısı */ export declare function estimateTokens(text: string): number; /** * Metni belirli bir token limitine göre kırpar * @param text - Kırpılacak metin * @param maxTokens - Maksimum token sayısı * @returns Kırpılmış metin */ export declare function truncateToTokenLimit(text: string, maxTokens: number): string; /** * Metni belirli token limitlerinde parçalara böler * @param text - Bölünecek metin * @param maxTokens - Her parça için maksimum token sayısı * @returns Metin parçaları dizisi */ export declare function splitByTokenLimit(text: string, maxTokens: number): string[]; /** * Chat mesajı formatında oluşturur * @param role - Mesaj rolü (system/user/assistant) * @param content - Mesaj içeriği * @returns ChatMessage objesi */ export declare function formatChatMessage(role: 'system' | 'user' | 'assistant', content: string): ChatMessage; /** * Few-shot öğrenme için prompt oluşturur * @param examples - Örnek input/output çiftleri * @param query - Kullanıcının sorgusu * @returns Formatlanmış few-shot prompt */ export declare function createFewShotPrompt(examples: Array<{ input: string; output: string; }>, query: string): string; /** * Sistem ve kullanıcı promptlarını chat mesajlarına dönüştürür * @param systemPrompt - Sistem talimatları * @param userPrompt - Kullanıcı sorgusu * @returns ChatMessage dizisi */ export declare function mergeSystemAndUser(systemPrompt: string, userPrompt: string): ChatMessage[]; /** * Mesajları context penceresine sığdırır (eski mesajları çıkarır) * @param messages - Mevcut mesajlar * @param maxTokens - Maksimum token sayısı * @returns Sığdırılmış mesajlar */ export declare function fitMessagesToContext(messages: ChatMessage[], maxTokens: number): ChatMessage[]; /** * Konuşma maliyetini tahmin eder * @param messages - Mesajlar * @param model - Model adı * @param expectedOutputTokens - Beklenen output token sayısı (varsayılan: input'un %50'si) * @returns Maliyet tahmini */ export declare function estimateConversationCost(messages: ChatMessage[], model?: string, expectedOutputTokens?: number): CostEstimate; /** * Model için context limitini döndürür * @param model - Model adı * @returns Token limiti */ export declare function getModelTokenLimit(model: string): number; /** * Model için fiyat bilgilerini döndürür * @param model - Model adı * @returns Input ve output fiyatları (per 1K tokens) */ export declare function getModelPricing(model: string): { input: number; output: number; }; /** * Markdown formatındaki metinden JSON çıkarır * @param text - Markdown formatındaki metin (```json ... ```) * @returns Parse edilmiş JSON objesi veya null */ export declare function extractJSONFromMarkdown(text: string): any; /** * Streaming response chunk'ını parse eder * @param chunk - Streaming chunk * @returns StreamingResponse objesi */ export declare function parseStreamingChunk(chunk: string): StreamingResponse; /** * Prompt için token sayısı kontrolü yapar ve limit aşımı durumunda uyarır * @param prompt - Kontrol edilecek prompt * @param maxTokens - Maksimum token sayısı * @returns Limit aşıldıysa true */ export declare function isTokenLimitExceeded(prompt: string, maxTokens: number): boolean; /** * Prompt'u belirli bir yüzde oranında kısaltır * @param prompt - Kısaltılacak prompt * @param percentage - Kısaltma yüzdesi (0-100) * @returns Kısaltılmış prompt */ export declare function truncatePromptByPercentage(prompt: string, percentage: number): string; /** * Konuşma geçmişini özetlemek için mesajları sıkıştırır * (Eski mesajları birleştirir, son N mesajı ayrı tutar) * @param messages - Tüm mesajlar * @param keepRecent - Son tutulacak mesaj sayısı * @param maxSummaryTokens - Özet için ayrılacak token sayısı * @returns Sıkıştırılmış mesajlar */ export declare function compressConversationHistory(messages: ChatMessage[], keepRecent?: number, maxSummaryTokens?: number): ChatMessage[];