From 6e51e1c3500d8b045882acd698daa0b1d481345b Mon Sep 17 00:00:00 2001 From: Riccardo Senica Date: Fri, 29 Nov 2024 21:20:21 +0100 Subject: [PATCH] feat: tweaking of newsletter prompt --- components/email/Newsletter.tsx | 47 +++++++++++++++------- utils/anthropic/client.ts | 30 ++++++++++++++ utils/anthropic/summarize.ts | 28 +++++++++++++ utils/anthropic/tool.ts | 37 +++++++++++++++++ utils/anthropicClient.ts | 19 --------- utils/getNewsletterSubject.ts | 70 --------------------------------- utils/summarize.ts | 21 ---------- 7 files changed, 128 insertions(+), 124 deletions(-) create mode 100644 utils/anthropic/client.ts create mode 100644 utils/anthropic/summarize.ts create mode 100644 utils/anthropic/tool.ts delete mode 100644 utils/anthropicClient.ts delete mode 100644 utils/getNewsletterSubject.ts delete mode 100644 utils/summarize.ts diff --git a/components/email/Newsletter.tsx b/components/email/Newsletter.tsx index 9088175..f6a59fb 100644 --- a/components/email/Newsletter.tsx +++ b/components/email/Newsletter.tsx @@ -1,26 +1,23 @@ import React from 'react'; -import { summirize } from '@utils/summarize'; +import { summirize } from '@utils/anthropic/summarize'; import { NewsType } from '@utils/validationSchemas'; import createDOMPurify from 'isomorphic-dompurify'; -import getNewsletterSubject from '@utils/getNewsletterSubject'; import { Template } from './Template'; export const NewsletterTemplate = async (stories: NewsType[]) => { - const summary = await summirize(stories); - const sanitizedSummary = createDOMPurify.sanitize(summary, { - USE_PROFILES: { html: true }, - ADD_ATTR: ['target', 'rel', 'style'] - }); + const { title, content, focus } = await summirize(stories); - if (!sanitizedSummary) { - console.error('Failed to sanitize summary'); - throw new Error('Failed to sanitize summary'); + const sanitizedContent = createDOMPurify.sanitize(content); + + const sanitizedFocus = createDOMPurify.sanitize(focus); + + if (!sanitizedContent || !sanitizedFocus) { + console.error('Failed to sanitize newsletter'); + throw new Error('Failed to sanitize newsletter'); } - const topic = getNewsletterSubject(sanitizedSummary); - return { - subject: topic, + subject: title, template: (