@lobehub/chat
Version:
Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
46 lines (34 loc) • 1.12 kB
text/typescript
import { after } from 'next/server';
import { TraceEventType } from '@/const/trace';
import { TraceClient } from '@/libs/traces';
import { TraceEventBasePayload, TraceEventPayloads } from '@/types/trace';
export const runtime = 'edge';
export const POST = async (req: Request) => {
type RequestData = TraceEventPayloads & TraceEventBasePayload;
const data = (await req.json()) as RequestData;
const { traceId, eventType } = data;
const traceClient = new TraceClient();
const eventClient = traceClient.createEvent(traceId);
switch (eventType) {
case TraceEventType.ModifyMessage: {
eventClient?.modifyMessage(data);
break;
}
case TraceEventType.DeleteAndRegenerateMessage: {
eventClient?.deleteAndRegenerateMessage(data);
break;
}
case TraceEventType.RegenerateMessage: {
eventClient?.regenerateMessage(data);
break;
}
case TraceEventType.CopyMessage: {
eventClient?.copyMessage(data);
break;
}
}
after(async () => {
await traceClient.shutdownAsync();
});
return new Response(undefined, { status: 201 });
};