|
@ -10,14 +10,11 @@ import { |
|
|
Get, |
|
|
Get, |
|
|
Inject, |
|
|
Inject, |
|
|
Param, |
|
|
Param, |
|
|
Post, |
|
|
|
|
|
Query, |
|
|
Query, |
|
|
Res, |
|
|
|
|
|
UseGuards |
|
|
UseGuards |
|
|
} from '@nestjs/common'; |
|
|
} from '@nestjs/common'; |
|
|
import { REQUEST } from '@nestjs/core'; |
|
|
import { REQUEST } from '@nestjs/core'; |
|
|
import { AuthGuard } from '@nestjs/passport'; |
|
|
import { AuthGuard } from '@nestjs/passport'; |
|
|
import { Response } from 'express'; |
|
|
|
|
|
|
|
|
|
|
|
import { AiService } from './ai.service'; |
|
|
import { AiService } from './ai.service'; |
|
|
|
|
|
|
|
@ -29,43 +26,6 @@ export class AiController { |
|
|
@Inject(REQUEST) private readonly request: RequestWithUser |
|
|
@Inject(REQUEST) private readonly request: RequestWithUser |
|
|
) {} |
|
|
) {} |
|
|
|
|
|
|
|
|
@Post('completion') |
|
|
|
|
|
@HasPermission(permissions.readAiPrompt) |
|
|
|
|
|
@UseGuards(AuthGuard('jwt'), HasPermissionGuard) |
|
|
|
|
|
public async getCompletion( |
|
|
|
|
|
@Res() response: Response, |
|
|
|
|
|
@Query('accounts') filterByAccounts?: string, |
|
|
|
|
|
@Query('assetClasses') filterByAssetClasses?: string, |
|
|
|
|
|
@Query('dataSource') filterByDataSource?: string, |
|
|
|
|
|
@Query('symbol') filterBySymbol?: string, |
|
|
|
|
|
@Query('tags') filterByTags?: string |
|
|
|
|
|
) { |
|
|
|
|
|
const filters = this.apiService.buildFiltersFromQueryParams({ |
|
|
|
|
|
filterByAccounts, |
|
|
|
|
|
filterByAssetClasses, |
|
|
|
|
|
filterByDataSource, |
|
|
|
|
|
filterBySymbol, |
|
|
|
|
|
filterByTags |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const result = await this.aiService.getCompletion({ |
|
|
|
|
|
filters, |
|
|
|
|
|
mode: 'analysis', |
|
|
|
|
|
impersonationId: undefined, |
|
|
|
|
|
languageCode: this.request.user.Settings.settings.language, |
|
|
|
|
|
userCurrency: this.request.user.Settings.settings.baseCurrency, |
|
|
|
|
|
userId: this.request.user.id |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
response.setHeader('Content-Type', 'text/plain'); |
|
|
|
|
|
|
|
|
|
|
|
for await (const chunk of result.textStream) { |
|
|
|
|
|
response.write(chunk); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
response.end(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Get('prompt/:mode') |
|
|
@Get('prompt/:mode') |
|
|
@HasPermission(permissions.readAiPrompt) |
|
|
@HasPermission(permissions.readAiPrompt) |
|
|
@UseGuards(AuthGuard('jwt'), HasPermissionGuard) |
|
|
@UseGuards(AuthGuard('jwt'), HasPermissionGuard) |
|
|