@naktibalda/jorel
Version:
The easiest way to use LLMs, including streams, images, documents, tools and various agent scenarios.
63 lines (62 loc) • 3.56 kB
TypeScript
import { LogService } from "../logger";
import { InitLlmGenerationConfig, LlmMessage, LlmStreamResponse, LlmStreamResponseChunk, LlmStreamResponseMessages, LlmStreamResponseWithToolCalls, LlmStreamToolCallCompleted, LlmStreamToolCallStarted } from "../providers";
import { JorElGenerationConfigWithTools, JorElGenerationOutput } from "./jorel";
import { JorElModelManager } from "./jorel.models";
import { JorElProviderManager } from "./jorel.providers";
export declare class JorElCoreStore {
defaultConfig: InitLlmGenerationConfig;
logger: LogService;
providerManager: JorElProviderManager;
modelManager: JorElModelManager;
constructor(config?: InitLlmGenerationConfig);
/**
* Applies model-specific overrides to messages and config
* @param messages - The messages to apply the overrides to
* @param config - The config to apply the overrides to
* @param modelName - The name of the model to apply the overrides to
*/
private applyModelOverrides;
/**
* Generate a response for a given set of messages
* @param messages - The messages to generate a response for
* @param config - The config to use for this generation
* @param config.model - Model to use for this generation (optional)
* @param config.systemMessage - System message to include in this request (optional)
* @param config.temperature - Temperature for this request (optional)
* @param config.tools - Tools to use for this request (optional)
*/
generate(messages: LlmMessage[], config?: JorElGenerationConfigWithTools): Promise<JorElGenerationOutput>;
/**
* Internal method to generate a response and process tool calls until a final response is generated
* @param messages - The messages to generate a response for
* @param config - The config to use for this generation
* @param autoApprove - Whether to auto-approve tool calls
*/
generateAndProcessTools(messages: LlmMessage[], config?: JorElGenerationConfigWithTools, autoApprove?: boolean): Promise<{
output: JorElGenerationOutput;
messages: LlmMessage[];
}>;
/**
* Generate a stream of response chunks for a given set of messages
* @param messages - The messages to generate a response for
* @param config - The config to use for this generation
*/
generateContentStream(messages: LlmMessage[], config?: JorElGenerationConfigWithTools): AsyncGenerator<LlmStreamResponseChunk | LlmStreamResponse | LlmStreamResponseWithToolCalls, void, unknown>;
/**
* Generate a stream of response chunks for a given set of messages and process tool calls until a final response is generated
* @param messages - The messages to generate a response for
* @param config - The config to use for this generation
* @param autoApprove - Whether to auto-approve tool calls
*/
generateStreamAndProcessTools(messages: LlmMessage[], config?: JorElGenerationConfigWithTools, autoApprove?: boolean): AsyncGenerator<LlmStreamResponseChunk | LlmStreamResponse | LlmStreamResponseWithToolCalls | LlmStreamResponseMessages | LlmStreamToolCallStarted | LlmStreamToolCallCompleted, void, unknown>;
/**
* Helper method to set a tool call to error state
*/
private setCallToError;
/**
* Generate an embedding for a given text
* @param text - The text to generate an embedding for
* @param model - The model to use for this generation (optional)
*/
generateEmbedding(text: string, model?: string): Promise<number[]>;
}