Schritt 1: Installation der notwendigen Pakete
Bevor Sie mit der eigentlichen Entwicklung beginnen können, müssen Sie die erforderlichen Pakete installieren. Dies umfasst die Strapi-CLI, LangChain und Open AI-Abhängigkeiten. Verwenden Sie Yarn oder npm, um diese Pakete zu Ihrem Projekt hinzuzufügen.
yarn add @langchain/OpenAI langchain
Dieser Befehl installiert die LangChain-Bibliothek und die Open AI-Integration, die für die Kommunikation mit den Open AI-Modellen erforderlich ist.
Stellen Sie sicher, dass Sie die Pakete im Frontend Ihres Projekts installieren, um Kompatibilitätsprobleme zu vermeiden.
npx create-strapi-app my-project --quickstart
Mit diesem Befehl erstellen Sie ein neues Strapi-Projekt. Das --quickstart
Flag beschleunigt die Einrichtung und verwendet Standardeinstellungen, um den Prozess zu vereinfachen. Nach der Installation können Sie das Strapi-Backend über yarn develop
starten und mit der Konfiguration beginnen. Achten Sie darauf, während der Installation einen Namen für Ihr Projekt zu wählen, der Ihre Absichten widerspiegelt, z.B. youtube-summary-app
.
Schritt 2: Konfiguration der API-Route in Next.js
Um die Zusammenfassungsanfragen zu verarbeiten, erstellen Sie eine API-Route in Next.js. Navigieren Sie zum src/app/api
-Verzeichnis und erstellen Sie eine Datei namens summarize/route.ts
. Diese Datei wird die Logik zur Entgegennahme der YouTube-Video-ID und zur Generierung der Zusammenfassung enthalten. Importieren Sie die notwendigen Abhängigkeiten von LangChain und Open AI, um die Kommunikation mit den AI-Modellen zu ermöglichen. Definieren Sie eine asynchrone Funktion, die die Anfrage entgegennimmt und die Zusammenfassung generiert.
import { ChatOpenAI } from "@langchain/openai";
import { PromptTemplate } from "langchain/core/prompts";
import { StringOutputParser } from "langchain/core/output_parsers";
// ... weitere Imports und Funktionen
Stellen Sie sicher, dass Sie die Open AI API-Schlüssel sicher verwalten. Verwenden Sie Umgebungsvariablen, um die Schlüssel zu speichern und zu laden, um eine Offenlegung in Ihrem Code zu vermeiden.
const openAiApiKey = process.env.OPENAI_API_KEY;
Schritt 3: Implementierung der Zusammenfassungslogik
Die Implementierung der Zusammenfassungslogik umfasst mehrere Schritte. Zuerst müssen Sie eine Funktion erstellen, die die YouTube-Video-ID entgegennimmt und das Transkript abruft. Verwenden Sie eine Bibliothek wie youtube-transcript
, um das Transkript zu extrahieren.
Anschließend verwenden Sie LangChain und Open AI, um das Transkript zusammenzufassen. Definieren Sie ein Prompt-Template, das die Anweisungen für das AI-Modell enthält. Dieses Template sollte Anweisungen zur Erstellung einer prägnanten Zusammenfassung, zur Identifizierung der wichtigsten Themen und zur Formulierung einer ansprechenden Videobeschreibung enthalten.
const prompt = PromptTemplate.fromTemplate("Für diesen Text {text} führe folgende Schritte aus:
Generiere den Titel basierend auf dem Inhalt.
Fasse folgenden Inhalt zusammen und nenne 5 Key Topics.
Schreibe eine YouTube Video Beschreibung.");
Verwenden Sie dann die ChatOpenAI
-Klasse, um eine Verbindung zum Open AI-Modell herzustellen und die Zusammenfassung zu generieren.
const model = new ChatOpenAI({
openAIApiKey: process.env.OPENAI_API_KEY,
modelName: process.env.OPENAI_MODEL ?? "gpt-4-turbo-preview",
temperature: parseFloat(process.env.OPENAI_TEMPERATURE || "0.7"),
maxTokens: parseInt(process.env.OPENAI_MAX_TOKENS || "4000"),
});
Verwenden Sie die StringOutputParser
-Klasse, um die Ausgabe des AI-Modells zu parsen und in ein lesbares Format zu konvertieren.
const outputParser = new StringOutputParser();
Erstellen Sie eine Chain, um die Schritte zu verbinden und die Zusammenfassung zu generieren.
const chain = prompt.pipe(model).pipe(outputParser);
Führen Sie die Chain aus und geben Sie die Zusammenfassung zurück.
try {
const summary = await chain.invoke({ text: content });
return summary;
} catch (error) {
// ... Fehlerbehandlung
}
Schritt 4: Speicherung der Zusammenfassung in Strapi
Nachdem die Zusammenfassung generiert wurde, speichern Sie sie in Strapi. Erstellen Sie einen neuen Collection-Typ in Strapi, der die Zusammenfassung und die zugehörige YouTube-Video-ID speichert. Verwenden Sie die Strapi-API, um die Zusammenfassung zu speichern, sobald sie generiert wurde. Dies ermöglicht es Ihnen, die Zusammenfassungen zentral zu verwalten und bei Bedarf abzurufen. Implementieren Sie die notwendigen Funktionen im Next.js Frontend, um die Zusammenfassungen aus Strapi abzurufen und anzuzeigen.
// Beispielcode zur Speicherung der Zusammenfassung in Strapi
async function saveSummaryToStrapi(videoId: string, summary: string) {
// ... Logik zur Speicherung der Zusammenfassung in Strapi
}