Improve AI description generation to handle different content types

Update the AI service to allow specifying content type (e.g., 'oddaja' for shows) and adjust prompts accordingly to generate more relevant descriptions for various media formats.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 2cd2c0bc-434c-4bc9-ad3f-b99d3897a0d1
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/8cc42625-c1f5-4e43-99bd-77f2c4dedee2/2cd2c0bc-434c-4bc9-ad3f-b99d3897a0d1/n7jzC7R
This commit is contained in:
sebastjanartic 2025-09-02 14:32:40 +00:00
parent fb4aea7b25
commit 19e957153f
3 changed files with 26 additions and 9 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -29,6 +29,7 @@ export interface DescriptionGenerationOptions {
includeArtistInfo?: boolean;
includeLabelInfo?: boolean;
customInstructions?: string;
contentType?: string;
}
export async function generateVideoDescription(
@ -40,7 +41,8 @@ export async function generateVideoDescription(
language = "slovenian",
includeArtistInfo = true,
includeLabelInfo = true,
customInstructions = ""
customInstructions = "",
contentType = "music_video"
} = options;
try {
@ -52,11 +54,19 @@ export async function generateVideoDescription(
? `\n\nWICHTIG: Für diesen Künstler wurden bereits folgende Beschreibungen erstellt:\n${previousDescriptions.map((desc, i) => `${i+1}. ${desc.substring(0, 100)}...`).join('\n')}\n\nErstelle eine VÖLLIG ANDERE Beschreibung mit anderen Worten, Fokus und Stil.`
: '';
const prompt = `Analysiere diesen Musikvideo-Titel: "${title}"
// Determine content type specific instructions
const isShow = contentType === 'oddaja';
const contentTypeText = isShow ? 'Show/Sendung-Titel' : 'Musikvideo-Titel';
const contentDescription = isShow
? `WICHTIG: Dies ist eine TV-SENDUNG/SHOW (oddaja), NICHT ein Musikvideo!
Schreibe auf DEUTSCH eine informative Beschreibung.
Aus dem Titel extrahieren:
Analysiere den Show-Titel und beschreibe:
- Die Show/Sendung und ihr Format
- Die Gastgeber oder Moderatoren
- Das Thema oder den Inhalt der Episode
- Für wen die Show gedacht ist (Zielgruppe)
- Art der Sendung (Talk-Show, Musiksendung, Unterhaltung, etc.)`
: `Aus dem Titel extrahieren:
- Name des Interpreten/Künstlers
- Titel des Liedes/Stücks
- Art des Inhalts (Lied, Instrumental, Live-Auftritt, etc.)
@ -65,7 +75,13 @@ Erstelle eine informative Beschreibung, die Folgendes beinhaltet:
${includeArtistInfo ? '- Informationen über den Interpreten (Musikstil, kurze Geschichte, bekannte Stücke)' : ''}
- Beschreibung des Musikstils und Genres
- Kurzer Hintergrund zum Stück, falls bekannt
- Wofür es gedacht ist (Tanz, Zuhören, Konzert, etc.)
- Wofür es gedacht ist (Tanz, Zuhören, Konzert, etc.)`;
const prompt = `Analysiere diesen ${contentTypeText}: "${title}"
Schreibe auf DEUTSCH eine informative Beschreibung.
${contentDescription}
NUR wenn du SICHERE Informationen hast, erwähne:
${includeLabelInfo ? '- Label/Plattenfirma (nur wenn du es sicher weißt)' : ''}
@ -74,7 +90,7 @@ Wenn du keine sicheren Informationen zu einem Punkt hast, lasse ihn WEG. Schreib
Die Beschreibung soll maximal ${maxCharacters} Zeichen lang sein.
Schreibe in einem freundlichen, informativen Ton.
Verwende nicht die Wörter "Video" oder "Aufnahme" - schreibe über die Musik selbst.
${isShow ? 'Beschreibe die Show/Sendung, nicht die Musik.' : 'Verwende nicht die Wörter "Video" oder "Aufnahme" - schreibe über die Musik selbst.'}
${customInstructions ? `\nZUSÄTZLICHE ANWEISUNGEN: ${customInstructions}` : ''}
Schreibe nur die Beschreibung, keine zusätzlichen Erklärungen.${avoidRepetition}";`
@ -85,7 +101,7 @@ Schreibe nur die Beschreibung, keine zusätzlichen Erklärungen.${avoidRepetitio
messages: [
{
role: "system",
content: "Du bist ein Musikexperte und hilfst bei der Erstellung hochwertiger Beschreibungen für Musikinhalte. Du antwortest immer auf Deutsch und vermeidest Wiederholungen."
content: `Du bist ein ${isShow ? 'Medien- und TV-Show-Experte' : 'Musikexperte'} und hilfst bei der Erstellung hochwertiger Beschreibungen für ${isShow ? 'TV-Sendungen und Shows' : 'Musikinhalte'}. Du antwortest immer auf Deutsch und vermeidest Wiederholungen.`
},
{
role: "user",

View File

@ -1108,7 +1108,8 @@ export async function registerRoutes(app: Express): Promise<Server> {
language: "german",
includeArtistInfo,
includeLabelInfo,
customInstructions
customInstructions,
contentType: video.contentType || 'music_video'
});
console.log("Generated description:", description); // Debug log