mongodb-chatbot-server
Version:
A chatbot server for retrieval augmented generation (RAG).
46 lines • 2.85 kB
TypeScript
import { References, SomeMessage, DataStreamer, Conversation, OpenAiChatMessage, ConversationCustomData, ChatLlm } from "mongodb-rag-core";
import { Request as ExpressRequest } from "express";
import { GenerateUserPromptFunc } from "../processors/GenerateUserPromptFunc";
import { FilterPreviousMessages } from "../processors/FilterPreviousMessages";
export interface GenerateResponseParams {
shouldStream: boolean;
llm: ChatLlm;
latestMessageText: string;
customData?: ConversationCustomData;
dataStreamer?: DataStreamer;
generateUserPrompt?: GenerateUserPromptFunc;
filterPreviousMessages?: FilterPreviousMessages;
reqId: string;
llmNotWorkingMessage: string;
noRelevantContentMessage: string;
conversation: Conversation;
request?: ExpressRequest;
}
interface GenerateResponseReturnValue {
messages: SomeMessage[];
}
export type GenerateResponse = (params: GenerateResponseParams) => Promise<GenerateResponseReturnValue>;
/**
Generate a response with/without streaming. Supports tool calling
and standard response generation.
Response includes the user message with any data mutations
and the assistant response message, plus any intermediate tool calls.
*/
export declare function generateResponse({ shouldStream, llm, latestMessageText, customData, generateUserPrompt, filterPreviousMessages, dataStreamer, reqId, llmNotWorkingMessage, noRelevantContentMessage, conversation, request, }: GenerateResponseParams): Promise<GenerateResponseReturnValue>;
type BaseGenerateResponseMessageParams = Omit<GenerateResponseParams, "latestMessageText" | "customData" | "filterPreviousMessages" | "shouldStream"> & {
references?: References;
shouldGenerateMessage?: boolean;
llmConversation: OpenAiChatMessage[];
};
export type AwaitGenerateResponseParams = Omit<BaseGenerateResponseMessageParams, "dataStreamer">;
export declare function awaitGenerateResponseMessage({ reqId, llmConversation, llm, llmNotWorkingMessage, noRelevantContentMessage, request, references, conversation, shouldGenerateMessage, }: AwaitGenerateResponseParams): Promise<GenerateResponseReturnValue>;
export type StreamGenerateResponseParams = BaseGenerateResponseMessageParams & Required<Pick<GenerateResponseParams, "dataStreamer">> & {
/**
Arbitrary data about the message to stream before the generated response.
*/
metadata?: Record<string, unknown>;
};
export declare function streamGenerateResponseMessage({ dataStreamer, llm, llmConversation, reqId, references, noRelevantContentMessage, llmNotWorkingMessage, conversation, request, metadata, shouldGenerateMessage, }: StreamGenerateResponseParams): Promise<GenerateResponseReturnValue>;
export declare function convertMessageFromLlmToDb(message: OpenAiChatMessage): SomeMessage;
export {};
//# sourceMappingURL=generateResponse.d.ts.map