@unified-llm/core
Version:
Unified LLM interface (in-memory).
18 lines (17 loc) • 833 B
TypeScript
import { UnifiedChatRequest, UnifiedChatResponse, MessageContent, ToolUseContent, Tool } from '../types/unified-api';
declare abstract class BaseProvider {
protected model: string | undefined;
protected tools?: Tool[];
get modelName(): string | undefined;
constructor({ model, tools }: {
model?: string;
tools?: Tool[];
});
abstract chat(request: UnifiedChatRequest): Promise<UnifiedChatResponse>;
abstract stream(request: UnifiedChatRequest): AsyncIterableIterator<UnifiedChatResponse>;
protected generateMessageId(): string;
protected normalizeContent(content: MessageContent[] | string): MessageContent[];
protected hasToolCalls(content: MessageContent[]): boolean;
protected extractToolCalls(content: MessageContent[]): ToolUseContent[];
}
export default BaseProvider;