llmforge
Version:
One API, every AI model, instant switching. Change from GPT-4 to Gemini to local models with a single config update. LLMForge is the lightweight, TypeScript-first solution for multi-provider AI applications with zero vendor lock-in.
38 lines (37 loc) • 1.22 kB
TypeScript
import { StreamChunk, GenerateContentResponse } from '../../types';
export interface streamResponse {
type: 'delta' | 'done' | 'completed';
token: string;
}
export interface streamResponseComplete extends streamResponse {
completeOutput?: string;
thinkingOutput?: string;
model?: string;
usage?: {
input_tokens?: number;
output_tokens?: number;
total_tokens?: number;
};
status?: string;
fallback?: {
isUsed: boolean;
reason?: string;
} | null;
}
export interface StreamOptions {
onChunk?: (chunk: StreamChunk) => void;
onComplete?: (response: GenerateContentResponse) => void;
onError?: (error: Error) => void;
onThinking?: (thinking: string) => void;
}
export declare class GoogleStreamProcessor {
private decoder;
processStream(response: Response, options?: StreamOptions): Promise<GenerateContentResponse>;
private extractCompleteJsonObjects;
private parseStreamChunk;
private hasThinkingContent;
private extractThinkingContent;
private aggregateChunk;
createAsyncGenerator(response: Response): AsyncGenerator<streamResponse | streamResponseComplete>;
private extractAllCandidateText;
}