@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.
37 lines (31 loc) • 1.14 kB
text/typescript
import { z } from 'zod';
import { ChunkModel } from '@/database/models/chunk';
import { FileModel } from '@/database/models/file';
import { MessageModel } from '@/database/models/message';
import { authedProcedure, router } from '@/libs/trpc/lambda';
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
import { DocumentService } from '@/server/services/document';
const documentProcedure = authedProcedure.use(serverDatabase).use(async (opts) => {
const { ctx } = opts;
return opts.next({
ctx: {
chunkModel: new ChunkModel(ctx.serverDB, ctx.userId),
documentService: new DocumentService(ctx.serverDB, ctx.userId),
fileModel: new FileModel(ctx.serverDB, ctx.userId),
messageModel: new MessageModel(ctx.serverDB, ctx.userId),
},
});
});
export const documentRouter = router({
parseFileContent: documentProcedure
.input(
z.object({
id: z.string(),
skipExist: z.boolean().optional(),
}),
)
.mutation(async ({ ctx, input }) => {
const lobeDocument = await ctx.documentService.parseFile(input.id);
return lobeDocument;
}),
});