feat(models): add new base classes

This commit is contained in:
ItzCrazyKns
2025-11-18 14:38:12 +05:30
parent 657a577ec8
commit 5272c7fd3e
3 changed files with 80 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
import {
GenerateObjectInput,
GenerateObjectOutput,
GenerateOptions,
GenerateTextInput,
GenerateTextOutput,
StreamObjectOutput,
StreamTextOutput,
} from '../types';
abstract class BaseLLM<CONFIG> {
constructor(protected config: CONFIG) {}
abstract withOptions(options: GenerateOptions): this;
abstract generateText(input: GenerateTextInput): Promise<GenerateTextOutput>;
abstract streamText(
input: GenerateTextInput,
): AsyncGenerator<StreamTextOutput>;
abstract generateObject<T>(
input: GenerateObjectInput,
): Promise<GenerateObjectOutput<T>>;
abstract streamObject<T>(
input: GenerateObjectInput,
): AsyncGenerator<StreamObjectOutput<T>>;
}
export default BaseLLM;