import { ChatCompletionRequestMessageFunctionCall } from "openai"; import { Document } from "../document.js"; import { Serializable } from "../load/serializable.js"; export declare const RUN_KEY = "__run"; export type Example = Record; export type InputValues = Record; export type PartialValues = Record Promise) | (() => string)>; /** * Output of a single generation. */ export interface Generation { /** * Generated text output */ text: string; /** * Raw generation info response from the provider. * May include things like reason for finishing (e.g. in {@link OpenAI}) */ generationInfo?: Record; } export type GenerationChunkFields = { text: string; generationInfo?: Record; }; /** * Chunk of a single generation. Used for streaming. */ export declare class GenerationChunk implements Generation { text: string; generationInfo?: Record; constructor(fields: GenerationChunkFields); concat(chunk: GenerationChunk): GenerationChunk; } /** * Contains all relevant information returned by an LLM. */ export type LLMResult = { /** * List of the things generated. Each input could have multiple {@link Generation | generations}, hence this is a list of lists. */ generations: Generation[][]; /** * Dictionary of arbitrary LLM-provider specific output. */ llmOutput?: Record; /** * Dictionary of run metadata */ [RUN_KEY]?: Record; }; export interface StoredMessageData { content: string; role: string | undefined; name: string | undefined; additional_kwargs?: Record; } export interface StoredMessage { type: string; data: StoredMessageData; } export type MessageType = "human" | "ai" | "generic" | "system" | "function"; export interface BaseMessageFields { content: string; name?: string; additional_kwargs?: { function_call?: ChatCompletionRequestMessageFunctionCall; [key: string]: unknown; }; } export interface ChatMessageFieldsWithRole extends BaseMessageFields { role: string; } export declare abstract class BaseMessage extends Serializable implements BaseMessageFields { lc_namespace: string[]; lc_serializable: boolean; /** * @deprecated * Use {@link BaseMessage.content} instead. */ get text(): string; /** The text of the message. */ content: string; /** The name of the message sender in a multi-user chat. */ name?: string; /** Additional keyword arguments */ additional_kwargs: NonNullable; /** The type of the message. */ abstract _getType(): MessageType; constructor(fields: string | BaseMessageFields, /** @deprecated */ kwargs?: Record); toDict(): StoredMessage; } export declare abstract class BaseMessageChunk extends BaseMessage { abstract concat(chunk: BaseMessageChunk): BaseMessageChunk; static _mergeAdditionalKwargs(left: NonNullable, right: NonNullable): NonNullable; } export declare class HumanMessage extends BaseMessage { _getType(): MessageType; } export declare class HumanMessageChunk extends BaseMessageChunk { _getType(): MessageType; concat(chunk: HumanMessageChunk): HumanMessageChunk; } export declare class AIMessage extends BaseMessage { _getType(): MessageType; } export declare class AIMessageChunk extends BaseMessageChunk { _getType(): MessageType; concat(chunk: AIMessageChunk): AIMessageChunk; } export declare class SystemMessage extends BaseMessage { _getType(): MessageType; } export declare class SystemMessageChunk extends BaseMessageChunk { _getType(): MessageType; concat(chunk: SystemMessageChunk): SystemMessageChunk; } /** * @deprecated * Use {@link BaseMessage} instead. */ export declare const BaseChatMessage: typeof BaseMessage; /** * @deprecated * Use {@link HumanMessage} instead. */ export declare const HumanChatMessage: typeof HumanMessage; /** * @deprecated * Use {@link AIMessage} instead. */ export declare const AIChatMessage: typeof AIMessage; /** * @deprecated * Use {@link SystemMessage} instead. */ export declare const SystemChatMessage: typeof SystemMessage; export declare class FunctionMessage extends BaseMessage { constructor(fields: string | BaseMessageFields, /** @deprecated */ name: string); _getType(): MessageType; } export declare class FunctionMessageChunk extends BaseMessageChunk { _getType(): MessageType; concat(chunk: FunctionMessageChunk): FunctionMessageChunk; } export declare class ChatMessage extends BaseMessage implements ChatMessageFieldsWithRole { role: string; constructor(content: string, role: string); constructor(fields: ChatMessageFieldsWithRole); _getType(): MessageType; } export declare class ChatMessageChunk extends BaseMessageChunk { role: string; constructor(content: string, role: string); constructor(fields: ChatMessageFieldsWithRole); _getType(): MessageType; concat(chunk: ChatMessageChunk): ChatMessageChunk; } export interface ChatGeneration extends Generation { message: BaseMessage; } export type ChatGenerationChunkFields = GenerationChunkFields & { message: BaseMessageChunk; }; export declare class ChatGenerationChunk extends GenerationChunk implements ChatGeneration { message: BaseMessageChunk; constructor(fields: ChatGenerationChunkFields); concat(chunk: ChatGenerationChunk): ChatGenerationChunk; } export interface ChatResult { generations: ChatGeneration[]; llmOutput?: Record; } /** * Base PromptValue class. All prompt values should extend this class. */ export declare abstract class BasePromptValue extends Serializable { abstract toString(): string; abstract toChatMessages(): BaseMessage[]; } export type AgentAction = { tool: string; toolInput: string; log: string; }; export type AgentFinish = { returnValues: Record; log: string; }; export type AgentStep = { action: AgentAction; observation: string; }; export type ChainValues = Record; export declare abstract class BaseChatMessageHistory extends Serializable { abstract getMessages(): Promise; abstract addUserMessage(message: string): Promise; abstract addAIChatMessage(message: string): Promise; abstract clear(): Promise; } export declare abstract class BaseListChatMessageHistory extends Serializable { protected abstract addMessage(message: BaseMessage): Promise; addUserMessage(message: string): Promise; addAIChatMessage(message: string): Promise; } export declare abstract class BaseCache { abstract lookup(prompt: string, llmKey: string): Promise; abstract update(prompt: string, llmKey: string, value: T): Promise; } export declare abstract class BaseFileStore extends Serializable { abstract readFile(path: string): Promise; abstract writeFile(path: string, contents: string): Promise; } export declare abstract class BaseEntityStore extends Serializable { abstract get(key: string, defaultValue?: string): Promise; abstract set(key: string, value?: string): Promise; abstract delete(key: string): Promise; abstract exists(key: string): Promise; abstract clear(): Promise; } export declare abstract class Docstore { abstract search(search: string): Promise; abstract add(texts: Record): Promise; }