feat: 添加 AI 推荐功能

新增 AI 推荐模块,包括前端界面和后端服务
添加 OpenAI API 密钥配置
实现工程数据分析和推荐功能
This commit is contained in:
dmy
2026-01-12 18:36:08 +08:00
parent 3647b9a2e5
commit 61520e9ebf
12 changed files with 362 additions and 9 deletions

23
src/ai/ai.controller.ts Normal file
View File

@@ -0,0 +1,23 @@
import { Controller, Post, Body } from '@nestjs/common';
import { AiService } from './ai.service';
export class BidDataDto {
title: string;
url: string;
source: string;
publishDate: string;
}
export class BidsRequestDto {
bids: BidDataDto[];
}
@Controller('api/ai')
export class AiController {
constructor(private readonly aiService: AiService) {}
@Post('recommendations')
async getRecommendations(@Body() request: BidsRequestDto) {
return this.aiService.getRecommendations(request.bids);
}
}

12
src/ai/ai.module.ts Normal file
View File

@@ -0,0 +1,12 @@
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { AiController } from './ai.controller';
import { AiService } from './ai.service';
@Module({
imports: [ConfigModule],
controllers: [AiController],
providers: [AiService],
exports: [AiService],
})
export class AiModule {}

View File

@@ -9,6 +9,7 @@ import { KeywordsModule } from './keywords/keywords.module';
import { CrawlerModule } from './crawler/crawler.module';
import { TasksModule } from './schedule/schedule.module';
import { LoggerModule } from './common/logger/logger.module';
import { AiModule } from './ai/ai.module';
@Module({
imports: [
@@ -16,7 +17,7 @@ import { LoggerModule } from './common/logger/logger.module';
ScheduleModule.forRoot(),
ServeStaticModule.forRoot({
rootPath: join(__dirname, '..', 'frontend', 'dist'),
exclude: ['/api*'],
exclude: ['/api/(.*)'],
}),
LoggerModule,
DatabaseModule,
@@ -24,6 +25,7 @@ import { LoggerModule } from './common/logger/logger.module';
KeywordsModule,
CrawlerModule,
TasksModule,
AiModule,
],
})
export class AppModule {}