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:
parent
fb4aea7b25
commit
19e957153f
BIN
attached_assets/image_1756823508255.png
Normal file
BIN
attached_assets/image_1756823508255.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
@ -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",
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user