42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { Body, Controller, Post, UseGuards } from '@nestjs/common';
|
|
import { JwtAuthGuard } from '../auth/jwt-auth.guard';
|
|
import { CurrentUser } from '../auth/current-user.decorator';
|
|
import { TenantId } from '../tenant/tenant.decorator';
|
|
import { AiAssistantService } from './ai-assistant.service';
|
|
import { AiChatRequestDto } from './dto/ai-chat.dto';
|
|
import { AiSearchRequestDto } from './dto/ai-search.dto';
|
|
|
|
@Controller('ai')
|
|
@UseGuards(JwtAuthGuard)
|
|
export class AiAssistantController {
|
|
constructor(private readonly aiAssistantService: AiAssistantService) {}
|
|
|
|
@Post('chat')
|
|
async chat(
|
|
@TenantId() tenantId: string,
|
|
@CurrentUser() user: any,
|
|
@Body() payload: AiChatRequestDto,
|
|
) {
|
|
return this.aiAssistantService.handleChat(
|
|
tenantId,
|
|
user.userId,
|
|
payload.message,
|
|
payload.history,
|
|
payload.context,
|
|
);
|
|
}
|
|
|
|
@Post('search')
|
|
async search(
|
|
@TenantId() tenantId: string,
|
|
@CurrentUser() user: any,
|
|
@Body() payload: AiSearchRequestDto,
|
|
) {
|
|
return this.aiAssistantService.searchRecords(
|
|
tenantId,
|
|
user.userId,
|
|
payload,
|
|
);
|
|
}
|
|
}
|