From d758c87a064d532b8072ba4f61821dbeaa101f43 Mon Sep 17 00:00:00 2001
From: thucpn <thucsh2@gmail.com>
Date: Mon, 17 Mar 2025 17:42:36 +0700
Subject: [PATCH] support callback

---
 packages/server/src/server.ts | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/packages/server/src/server.ts b/packages/server/src/server.ts
index 487aad9e2..128f8ef95 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,
-- 
GitLab