mirror of
https://github.com/ItzCrazyKns/Perplexica.git
synced 2025-12-25 13:08:15 +00:00
23 lines
611 B
TypeScript
23 lines
611 B
TypeScript
import z from 'zod';
|
|
import {
|
|
GenerateObjectInput,
|
|
GenerateOptions,
|
|
GenerateTextInput,
|
|
GenerateTextOutput,
|
|
StreamTextOutput,
|
|
} from '../types';
|
|
|
|
abstract class BaseLLM<CONFIG> {
|
|
constructor(protected config: CONFIG) {}
|
|
abstract generateText(input: GenerateTextInput): Promise<GenerateTextOutput>;
|
|
abstract streamText(
|
|
input: GenerateTextInput,
|
|
): AsyncGenerator<StreamTextOutput>;
|
|
abstract generateObject<T>(input: GenerateObjectInput): Promise<z.infer<T>>;
|
|
abstract streamObject<T>(
|
|
input: GenerateObjectInput,
|
|
): AsyncGenerator<Partial<z.infer<T>>>;
|
|
}
|
|
|
|
export default BaseLLM;
|