diff --git a/packages/server/src/server.ts b/packages/server/src/server.ts index 487aad9e23b2a2aebd2f7e3fd27eb99a9da9392c..128f8ef95ceeb6ae8ce12db6c18e364182d5a2b0 100644 --- a/packages/server/src/server.ts +++ b/packages/server/src/server.ts @@ -1,5 +1,6 @@ import type { Message } from "ai"; import express from "express"; +import type { ChatMessage } from "llamaindex"; import { getUserMessageContent, pipeExpressResponse } from "./helper"; import { chatWithWorkflow } from "./workflow/stream"; import type { ServerWorkflow } from "./workflow/type"; @@ -7,12 +8,16 @@ import type { ServerWorkflow } from "./workflow/type"; export interface LlamaIndexServerParams { workflow: ServerWorkflow; port?: number; + callbacks?: { + beforeChat?: (messages: ChatMessage[]) => void; + }; } export class LlamaIndexServer { app: express.Application; workflow: ServerWorkflow; port: number; + callbacks?: LlamaIndexServerParams["callbacks"]; constructor({ workflow, port = 3000 }: LlamaIndexServerParams) { this.app = express(); @@ -28,6 +33,7 @@ export class LlamaIndexServer { try { const { messages } = req.body as { messages: Message[] }; const userMessageContent = getUserMessageContent(messages); + this.callbacks?.beforeChat?.(messages as ChatMessage[]); const streamResponse = await chatWithWorkflow( userMessageContent, this.workflow,