Files
upage-git/app/routes/api.enhancer/route.tsx
2025-09-28 17:34:47 +08:00

41 lines
1.2 KiB
TypeScript

import { type ActionFunctionArgs } from '@remix-run/node';
import type { UIMessage } from 'ai';
import { requireAuth } from '~/lib/.server/auth';
import { streamEnhancer } from '~/lib/.server/llm/stream-enhancer';
import { createScopedLogger } from '~/lib/.server/logger';
import { getModel, MINOR_MODEL } from '~/lib/modules/constants';
import { errorResponse } from '~/utils/api-response';
export async function action(args: ActionFunctionArgs) {
const authResult = await requireAuth(args.request, { isApi: true });
if (authResult instanceof Response) {
return authResult;
}
const userId = authResult.userInfo?.sub as string;
if (!userId) {
return errorResponse(401, '用户未登录');
}
return enhancerAction({ ...args, userId });
}
const logger = createScopedLogger('api.enhancher');
export type EnhancerActionArgs = ActionFunctionArgs & {
userId: string;
};
async function enhancerAction({ request, userId }: EnhancerActionArgs) {
const { messages } = await request.json<{
messages: UIMessage[];
}>();
logger.info(`User ${userId} => Enhancing prompt: ${messages}`);
return streamEnhancer({
messages,
model: getModel(MINOR_MODEL),
});
}