update: the ai interface and enum
This commit is contained in:
@@ -7,8 +7,8 @@ import { MessageDetails } from "../../mail-server/interfaces/messages-response.i
|
||||
import { WildDuckMessagesService } from "../../mail-server/services/wildduck-messages.service";
|
||||
import { SummarizeEmailDto } from "../DTO/summarize-email.dto";
|
||||
import { WriteEmailAssistanceDto } from "../DTO/write-email-assistance.dto";
|
||||
import { SummaryLength, SummaryTone } from "../enums/ai.enum";
|
||||
import { EmailData, SummarizationOptions } from "../interfaces/ai-service.interface";
|
||||
import { SummaryLengthEnum, SummaryToneEnum } from "../enums/ai.enum";
|
||||
import { IEmailData, SummarizationOptions } from "../interfaces/ai-service.interface";
|
||||
|
||||
@Injectable()
|
||||
export class AiAssistantService {
|
||||
@@ -45,7 +45,7 @@ export class AiAssistantService {
|
||||
htmlContent: this.extractHtmlContent(message),
|
||||
from: this.extractSenderInfo(message),
|
||||
to: this.extractRecipientInfo(message),
|
||||
date: message.date || new Date(),
|
||||
date: message.date || new Date().toISOString(),
|
||||
attachments: message.attachments || [],
|
||||
};
|
||||
}
|
||||
@@ -99,12 +99,12 @@ export class AiAssistantService {
|
||||
}
|
||||
|
||||
//************************************************* */
|
||||
private async generateEmailSummary(emailData: any, length: SummaryLength = SummaryLength.MEDIUM, _tone: SummaryTone = SummaryTone.PROFESSIONAL) {
|
||||
private async generateEmailSummary(emailData: IEmailData, length?: SummaryLengthEnum, tone?: SummaryToneEnum) {
|
||||
const content = emailData.content || emailData.htmlContent;
|
||||
|
||||
if (!content.trim()) throw new BadRequestException(AiMessage.EMAIL_CONTENT_IS_EMPTY_OR_COULD_NOT_BE_EXTRACTED);
|
||||
if (!content || !content.trim()) throw new BadRequestException(AiMessage.EMAIL_CONTENT_IS_EMPTY_OR_COULD_NOT_BE_EXTRACTED);
|
||||
|
||||
const aiEmailData: EmailData = {
|
||||
const aiEmailData: IEmailData = {
|
||||
subject: emailData.subject,
|
||||
content: emailData.content,
|
||||
htmlContent: emailData.htmlContent,
|
||||
@@ -115,8 +115,8 @@ export class AiAssistantService {
|
||||
};
|
||||
|
||||
const summarizationOptions: SummarizationOptions = {
|
||||
length: length.toLowerCase() as "short" | "medium" | "detailed",
|
||||
tone: _tone.toLowerCase() as "formal" | "casual" | "professional",
|
||||
length: length || SummaryLengthEnum.MEDIUM,
|
||||
tone: tone || SummaryToneEnum.PROFESSIONAL,
|
||||
};
|
||||
|
||||
const aiResponse = await this.aiService.summarizeEmail(aiEmailData, summarizationOptions);
|
||||
|
||||
Reference in New Issue
Block a user