This commit is contained in:
2025-06-08 15:21:27 +09:00
parent ca236067e8
commit b5ff912fcb
3 changed files with 217 additions and 5 deletions

View File

@ -59,7 +59,7 @@ export async function openAI_ClassifyFeed(title: string): Promise<string> {
export async function openAI_GeneratePodcastContent(
title: string,
items: Array<{ title: string; link: string }>,
items: Array<{ title: string; link: string; content?: string; description?: string }>,
): Promise<string> {
if (!title || title.trim() === "") {
throw new Error("Feed title is required for podcast content generation");
@ -77,24 +77,42 @@ export async function openAI_GeneratePodcastContent(
throw new Error("No valid news items found (title and link required)");
}
// Build detailed article information including content
const articleDetails = validItems.map((item, i) => {
let articleInfo = `${i + 1}. タイトル: ${item.title}\nURL: ${item.link}`;
// Add content if available
const content = item.content || item.description;
if (content && content.trim()) {
// Limit content length to avoid token limits
const maxContentLength = 2000;
const truncatedContent = content.length > maxContentLength
? content.substring(0, maxContentLength) + "..."
: content;
articleInfo += `\n内容: ${truncatedContent}`;
}
return articleInfo;
}).join("\n\n");
const prompt = `
あなたはプロのポッドキャスタです。以下に示すフィードタイトルに基づき、そのトピックに関する詳細なポッドキャスト原稿を作成してください。
フィードタイトル: ${title}
関連するニュース記事:
${validItems.map((item, i) => `${i + 1}. ${item.title} - ${item.link}`).join("\n")}
${articleDetails}
以下の要件を満たしてください:
1. もし英単語が含まれている場合は、すべてカタカナに変換してください (例: "Google" → "グーグル")
2. もし英語の文が含まれている場合は、すべて日本語に翻訳してください
3. 各ニュース記事の内容を要約し、関連性を説明してください
4. 視聴者にとっての価値や興味ポイントを解説してください
3. 各ニュース記事の具体的な内容を基に詳細な要約と解説を行ってください
4. 記事の内容から重要なポイントを抽出し、視聴者にとっての価値や興味ポイントを解説してください
5. 約1000文字〜1500文字程度の長さにしてください
6. 自然な日本語の口語表現を使ってください
7. トピック全体のまとめで締めくくってください
この構成でポッドキャスト原稿を書いてください。
記事の実際の内容を活用して、具体的で価値のあるポッドキャスト原稿を作成してください。
`;
try {