haben
No-Code-KI-Tools wie "Readdy" Wir befinden uns jetzt in einer Zeit, in der jemand leicht KI verwenden kann, aber
haben Sie jemals gedacht: " Ich möchte KI in meine Dienste einbeziehen " oder " Ich möchte sie freier anpassen
In diesem Artikel zeigen wir Ihnen, wie Sie
eine Web -App erstellen, die mit Next.js (App -Router) , Tailwind CSS und OpenAs Chat -Abschlusspflichten
diejenigen, die es ein bisschen mühsam finden, Code zu schreiben, oder
diejenigen, die eine Vorlage mit einer Benutzeroberfläche wünschen, die schnell funktioniert, haben wir auch Vorlagen auf den folgenden Plattformen veröffentlicht.
Die in diesem Artikel eingeführten Vorlagen sind jetzt im Verkauf!
Diese Chatbot UI -Vorlage steht auf mehreren Plattformen zum Verkauf.
Die Struktur ist perfekt für diejenigen, die etwas ausprobieren möchten, das zuerst funktioniert: "Ich möchte es sofort verwenden, ohne eine Umgebung zu erstellen" oder "Ich möchte den gesamten Code überprüfen".
Über die verwendete Technologie
Diese LP -Generations -App wird mit den folgenden Technologien erstellt:
- Next.js (App Router -Konfiguration)
-
Mit einem React-basierten Framework können Sie einheitliche Seiten und API-Routen erstellen. Ich verwende eine App -Router -Konfiguration ab
SRC/App
- Rückenwind -CSS
-
Ein Utility-First CSS-Framework, mit dem Sie Ihre Designs effizient mit Klassen organisieren können. Erstellen Sie schnell eine reaktionsschnelle und einfache Benutzeroberfläche
- OpenAI -API (CHAT -Abschluss)
-
Dies ist ein Mechanismus für die Interaktion mit GPT-basierten Modellen mit dem
/v1/chat/completions
zwischen UmgebungsvariablenGPT-4,1-Mini
undGPT-3,5-Turbo
zu wechseln - API -Routen + abrufen
-
Ich schreibe die Serververarbeitung, die zwischen dem Browser und der OpenAI -API mit der nächsten.js -API -Root (
/API /CHAT
Clients mitFetch ("/api/chat")
Erstellen Sie einen OpenAI -API -Schlüssel
Dieses Mal werden wir die OpenAI -API verwenden, daher müssen wir einen OpenAI -API -Schlüssel erstellen.
Sie werden im OpenAI -API -Dashboard zu API -Schlüssel weitergeleitet. Wählen Sie "neue geheime Schlüssel erstellen".

Sie können das Projekt ausgewählt haben, wie Sie es mögen, und Berechtigungen für das Modell, das Sie verwenden möchten, oder alle auszuwählen, um es zu generieren.

Sobald die Erstellung abgeschlossen ist, wird eine Zeichenfolge, die mit "SK" beginnt, erstellt, sodass wir sie danach verwenden.
Bitte achten Sie darauf, dass dieser Schlüssel nicht gehen.
Umweltkonstruktion
Erstellen Sie zunächst eine Entwicklungsumgebung für Next.js.
Ein Projekt erstellen
Ich werde ein Projekt erstellen.
Grundsätzlich denke ich, dass es in Ordnung ist, alles bei den Standardeinstellungen zu lassen, aber es ist in Ordnung, solange Sie es bei Bedarf ändern können.
(In diesem Projekt wird Tailwind -CSS verwendet. Es ist daher am besten, es auf Ja einzustellen. Der Standard ist ja.)
$ npx create-next-App LP-Generator-Starter --app --Typescript müssen die folgenden Pakete installieren: create-next-app@15.4.4 OK, um fortzufahren? (y) ✔ Möchten Sie Eslint verwenden? … Nein / Ja ✔ Möchten Sie Rückenwind -CSS verwenden? … Nein / Ja ✔ Möchten Sie Ihren Code in einem SRC / ` -Verzeichnis? … Nein / Ja ✔ Möchten Sie Turbopack für `Next Dev` verwenden? … Nein / Ja ✔ möchten Sie den Import -Alias (`@ /*` standardmäßig) anpassen? … Nein / Ja Erstellen einer neuen nächsten.js-App in / LP-Generator-Starter. Verwenden von NPM. Initialisieren des Projekts mit Vorlage: App -TW Installieren von Abhängigkeiten: - React - React -Dom - Als nächstes installieren Sie DevDependencies: - TypeScript - @Typen/Knoten - @Typen/React - @typen/react -dom - @tailwindcss/postcss - Tailwindcss - Eslint - Eslint -config. 13S 137 Pakete suchen nach Finanzmitteln. NPM Fund "für Details gefunden 0 Schwachstellen initialisiert ein Git -Repository. Erfolg! Erstellte LP-Generator-Starter AT /LP-Generator-Starter
Wenn "Erfolg! Erstellt LP-Generator-Starter AT /LP-Generator-Starter" erscheint, ist die Projekterstellung abgeschlossen.
Wenn Sie das Projekt erstellt haben, verschieben Sie das Verzeichnis.
CD LP-Generator-Starter
Stellen Sie die OpenAI -API -Schlüssel ein
Erstellen Sie eine .env
im Stamm
Openai_api_key = sk -... openai_model = gpt-4.1-mini system_prompt = Sie sind ein hilfreicher Assistent für das Erstellen von LPS.
Kurzbeschreibung:
- OpenAI_API_KEY: Private Schlüssel, der für den OpenAI -API -Zugriff erforderlich ist (ausgestellt durch ein persönliches Konto)
- OpenAI_Model: Der zu verwendende Modellname. Abhängig von dem Zweck,
GPT-3,5-Turbo
,GPT-4,1-Mini
usw. - SYSTEM_PROMPT: Erste Nachricht, in der die Persönlichkeit und Rolle der KI angibt (effektiv, wenn der Chat beginnt)
Starten Sie den Entwicklungsserver
Durch das Ausführen des folgenden Befehls wird die Vorlage gestartet:
NPM Run Dev
Implementierung der Benutzeroberfläche (CHAT -Bildschirm)
Die Chat -Benutzeroberfläche SRC/App/page.tsx
konsolidiert
Die Gesamtmenge des Quellcodes lautet wie folgt:
"Client verwenden"; importieren {usestate} aus "react"; Standardfunktion exportieren home () {// Statusverwaltung des Eingabebilds // Status für jedes Eingabefeld const [productName, setProductName] = usestate (""); const [Kategorie, setCategory] = usustate ("web"); const [Beschreibung, setDescription] = usustate (""); const [Merkmale, SetFeatures] = Usestate (["", "", ","]); const [targetUser, settargetUser] = usustate (""); const [Ziel, SetGoal] = Usestate (""); const [ton, settone] = useSestate (""); const [style, setStyle] = useSestate (""); const [referenceUrl, setReference] = usustate (""); const [laden, setloading] = usustate (false); const [result, setResult] = usustate (""); // LP -Erzeugungsprozess // Funktion zum API aufrufen und die Zielseite html const Generatelp = async () => {setloading (true); setResult (""); try {const res = uaait fetch ("/api/generate-lp", {methode: "post", header: {"content-type": "application/json"}, body: json.stringify ({{productName, kategorie, Beschreibung, Merkmale, TargetUser, Ton, Stil, Stil, Referenz,}),}); const data = warte res.json (); setResult (data.html || "Es wurde nicht generiert, html zu generieren."); } catch (err) {setResult ("Es ist ein Fehler aufgetreten"); } endlich {setloading (false); }}; // Die generierte HTML als Datei const downloadhtml = () => {const blob = neuer Blob ([Ergebnis], {Typ: "text/html"}) herunterladen; const url = url.createObjecturl (Blob); const a = document.createelement ("a"); a.reif = url; A.Download = "Landing_page.html"; A.Click (); Url.revokeObjecturl (URL); }; // Vorschau im neuen Fenster // Vorschau der generierten HTML in einem neuen Browserfenster const openPreview = () => {const preview = window.open ("", "_blank"); if (preview) {preview.document.write (result); preview.document.close (); }}; zurückkehren ( <main className="min-h-screen bg-gray-900 text-white p-6"><div className="max-w-3xl mx-auto space-y-8"><h1 className="text-3xl font-bold text-center"> LP -Generator</h1> {/ * Formulationseingänge - Eingabefeld */} <Input label="Product Name" value={productName} onChange={setProductName} /><Select label="Category" value={category} onChange={setCategory} options={[ { value: "web", label: "Web Service" }, { value: "cafe", label: "Cafe / Restaurant" }, { value: "app", label: "Application" }, { value: "lesson", label: "Online Course" }, { value: "other", label: "Other" }, ]} /><Textarea label="Short Description" value={description} onChange={setDescription} /> <Div> <label className = "block text-sm mb-1"> Schlüsselfunktionen (bis zu 3) </label> {features.map ((f, i) => (<Eingabe key = {i} value = {f} onchange = {(e) => {constreatures = [... features]; newfeatures [i) {i]}}}}}}} ·} ·} · E. E. E. placeholder = {`feature $ {i + 1}`} className = "w-full Mb-2 p-2 gerundetes BG-Gray-800 Border-Gray-600" />)} < /div> <Input-Label = "Zielpublikum" value = {TargetUser} Onchange = {SETTAGERGEL}} /> <Personal =} =}} /> <E> <Pl. onChange={setGoal} /> <Input label="Tone of Voice" value={tone} onChange={setTone} /> <Input label="Visual Style" value={style} onChange={setStyle} /> <Input label="Reference LP URL (optional)" value={referenceUrl} onChange={setReferenceUrl} /> {/* Generate Button */} <div className = "text-center"> <button onclick = {generatelp} deaktiviert = {laden} classname = "px-6 py-3 bg-green-500 gerundet schwebe: bg-green-600 text-black font-semibold deaktiviert: OPCITACITY-50"> {laden? "Generating..." : "Generate LP"} </button> </div> {/* Result & Actions */} {result && ( <div className="space-y-4"> {/* Display result (plain text) */} <div className="whitespace-pre-wrap bg-gray-800 border border-gray-600 p-4 rounded max-h-[400px] Überlauf-y-auto text-sm "> {result} </div> {/ * preview download */} <div classname =" flex gap-4 justify-center "> <button onclick = {openPreview} className =" px-4 py-2 bg-bblue-500 Hover: BG-BLU-BUTH: onclick = {downloadHtml} className = "px-4 py-2 bg-purpur-500 hover: bg-purpur-600 text-weiß abgerundet"> Download html </button> </div> </div>)} </div> </main>); } // Gemeinsame Eingangsformularkomponentenkomponenteneingabe ({Label, Wert, Onchange,}: {Label: String; Wert: String; Onchange: (v: String) => void;}) {return (<Div> <label className = "block text-sm mb-1"> {label} </label> <Eingabewert = {value {value}}}} onchange (e.target.Value)} className = "W-Ful P-2 gerundetes BG-Gray-800 Border Border-Gray-600" /> < /div>); } // Common Select Box // Reusable Select Component function Select({ label, value, onChange, options, }: { label: string; value: string; onChange: (v: string) => void; options: { value: string; label: string }[]; }) { return ( <div> <label className="block text-sm mb-1">{label}</label> <select value={value} onChange={(e) => onChange(e.target.value)} className="w-full p-2 rounded bg-gray-800 border border-gray-600" > {options.map((opt) => ( <option key={opt.value} value={opt.value}> {opt.label} </option> ))} </select> </div>); } // Common textarea // Reusable Textarea Component function Textarea({ label, value, onChange, }: { label: string; value: string; onChange: (v: string) => void; }) { return ( <div> <label className="block text-sm mb-1">{label}</label> <textarea value={value} onChange={(e) => onchange (e.target.Value)} rows = {3} className = "W-Ful P-2 gerundetes BG-Gray-800 Border Border-600" /> < /div>); }
Steuerung des Status des Eingangsformulars
const [productName, setProductName] = usustate (""); const [Kategorie, setCategory] = usustate (""); const [Beschreibung, setDescription] = usustate (""); const [Merkmale, SetFeatures] = Usestate (["", "", ","]); const [targetUser, settargetUser] = usustate (""); const [Ziel, SetGoal] = Usestate (""); const [ton, settone] = useSestate (""); const [style, setStyle] = useSestate (""); const [referenceUrl, setReference] = usustate (""); const [laden, setloading] = usustate (false); const [result, setResult] = usustate ("");
Kurzbeschreibung:
Produktname
: ProduktnameKategorie
: Genre (Web, Cafés, Apps usw.)Beschreibung
: Produktbeschreibung (kurzer Text)Funktionen
: Ein Array zum Eingeben von bis zu drei FunktionenTargetUser
: Zielbenutzer (z. B. alleinige Eigentümer)Ziel
: Zweck von LP (z. B. Kauf, Registrierung)Ton
: Tonmana (Freundlichkeit, formell usw.)Stil
: Die Atmosphäre des Designs (süß, cool usw.)Referenzurl
: URL der Referenz LPLaden
: Ob Sie auf die API -Antwort warten oder nichtErgebnis
: generierte HTML -Zeichenfolge
LP -Generierungsverarbeitung und API -Aufrufe
const Generatelp = async () => {setloading (true); setResult (""); try {const res = uaait fetch ("/api/generate-lp", {methode: "post", header: {"content-type": "application/json"}, body: json.stringify ({{productName, kategorie, Beschreibung, Merkmale, TargetUser, Ton, Stil, Stil, Referenz,}),}); const data = warte res.json (); setResult (data.html || "Es wurde nicht generiert, html zu generieren."); } catch (err) {setResult ("Es ist ein Fehler aufgetreten"); } endlich {setloading (false); }};
Kurzbeschreibung:
- Senden Sie die Eingabedaten
/api /generieren
- Bei Erfolg wird die HTML im
Ergebnis
Vorschau -Anzeigeprozess
const openPreview = () => {const preview = window.open ("", "_blank"); if (preview) {preview.document.write (result); preview.document.close (); }};
Kurzbeschreibung:
- Zeigen Sie die generierte HTML in einer neuen Registerkarte an und Vorschau der tatsächlichen LP
HTML -Download -Verarbeitung
const downloadhtml = () => {const blob = neuer Blob ([Ergebnis], {type: "text/html"}); const url = url.createObjecturl (Blob); const a = document.createelement ("a"); a.reif = url; A.Download = "Landing_page.html"; A.Click (); Url.revokeObjecturl (URL); };
Kurzbeschreibung:
- Verwenden Sie
einen Blob,
undA.Download
zu ermöglichen , ihn als statische HTML zu speichern
Ausgabeergebnisse + Vorschau -Download -Schaltfläche
{Ergebnis && ( <div className="space-y-4"><div className="whitespace-pre-wrap bg-gray-800 border border-gray-600 p-4 rounded max-h-[400px] overflow-y-auto text-sm"> {Ergebnis}</div><div className="flex gap-4 justify-center"> <button onClick={openPreview} className="px-4 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded" >Vorschau</button> <button onClick={downloadHTML} className="px-4 py-2 bg-purple-500 hover:bg-purple-600 text-white rounded" >Download HTML</button></div></div> )}
Kurzbeschreibung:
- Die HTML der erzeugten LP wird direkt auf dem Bildschirm angezeigt.
- Sie können es im Browser mit "Vorschau" anzeigen und Dateien mit "Download" speichern
Serverseitige Implementierung (OpenAI-API-Integration)
Bei der Interaktion zur LP-Generierung eine Anfrage vom Client an
/api /generate-lp
dann ein Relais und eine Antwort auf die Chat-API von OpenAI auf dem Server zurückgegeben.
Die Gesamtmenge des serverseitigen Quellcodes lautet wie folgt:
importieren {nexTrequest, nexTesponse} aus "next/server"; // API -Endpunkt (post) // generiert automatisch eine Zielseite im HTML -Format // Endpoint zum Generieren der Zielseite HTML basierend auf Benutzereingaben exportieren asynchronisierte Funktionen (Req: NexTrequest) {Try {// extrahieren JSON Body aus Client // Payload aus der Anfrage aus der Anfrage. req.json (); // Erforderliche Felder validieren if (! ProductName ||! Beschreibung ||! } // Eingabeaufforderung zum Senden an Openai API const Eingabeaufforderung = `Sie sind ein professioneller Texter und HTML -Entwickler. Ihre Aufgabe ist es, eine saubere, vollständige HTML -Zielseite für das folgende Produkt zu generieren. Strukturieren Sie es basierend auf drei Hauptabschnitten: Erste Ansicht, Körper und Schließen. Anweisungen: - Ausgabe eines vollständigen und gültigen HTML -Dokuments (inklusive)<!DOCTYPE html> Anwesend<html> Anwesend<head> , Und<body> ). - Nur Englisch. - Formatieren Sie das Ergebnis nicht mit Markdown. - Fügen Sie keine Erklärungen vor oder nach dem Code hinzu. - Verwenden Sie nur RAW -HTML als Ausgang. - Fügen Sie keine JavaScript- oder externen CSS -Frameworks hinzu. - Verwenden Sie Inline -Stile oder intern<style> for layout and design. - Use a clear, persuasive tone for copywriting. - Use semantic HTML elements (header, section, footer, etc.). Sections to include: 1. First View - Headline (h1) with the product name - Subheadline with a short summary - Prominent CTA button (e.g. "Start Now") 2. Body - Detailed product description - Bullet point list of key features - Optional paragraph about who it’s for 3. Closing - Final persuasive message - CTA button (again) - Optional tagline (e.g. “No credit card required”) Product Info: - Product Name: ${productName} - Category: ${category} - Description: ${description} - Key Features: ${features.filter(Boolean).join(" / ") || "None"} - Target Audience: ${targetUser || "Not specified"} - Goal or Call-to-Action: ${goal} - Tone of Voice: ${tone || "Neutral"} - Visual Style: ${style || "Clean"} - Reference URL: ${referenceUrl || "None"} Respond only with the HTML. Do not include markdown code blocks or explanations.`; // OpenAI APIを呼び出す // Call OpenAI Chat API const response = await fetch("https://api.openai.com/v1/chat/completions", { method: "POST", headers: { Authorization: `Bearer ${process.env.OPENAI_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ model: process.env.OPENAI_MODEL || "gpt-4o", messages: [ { role: "system", content: "You are a helpful assistant and skilled HTML designer.", }, { role: "user", content: prompt, }, ], temperature: 0.8, }), }); const data = await response.json(); // エラーハンドリング(OpenAIの応答に問題がある場合) // Handle OpenAI error response if (data.error) { console.error("OpenAI API Error:", data.error); return NextResponse.json( { error: "Failed to generate landing page." }, { status: 500 } ); } // HTML出力を取得 // Extract the generated HTML content const html = data.choices?.[0]?.message?.content || ""; // クライアントへHTMLを返却 // Return HTML back to client return NextResponse.json({ html }); } catch (err) { // サーバー側の予期せぬエラー対応 // Catch any server-side error console.error("Server Error:", err); return NextResponse.json( { error: "Internal server error." }, { status: 500 } ); } }
Grundkonfiguration (Empfangen von Anforderungen mit der Post -Methode)
importieren {nexTrequest, nexTesponse} aus "next/server"; Exportieren Sie Async Funktionspost (Req: NexTrequest).
Kurzbeschreibung:
- Definiert API -Endpunkte
Post
beschränkt sind - Empfängt die Parameter (Produktname, Beschreibung, Zweck usw.), die von der Client -Seite (
JSON
Überprüfen Sie die erforderlichen Felder
if (! productName ||! Beschreibung ||! }
Kurzbeschreibung:
- Wenn der Produktname, die Beschreibung oder der Zweck nicht eingegeben werden, ein 400 -Fehler zurückgegeben und die Verarbeitung wird ausgesetzt.
- Sicherheit beim Durchlaufen der Validierung auf der Vorderseite
Schnellgenerierung (Anweisungen für Chatgpt)
const prompt = `Sie sind ein professioneller Texter und HTML -Entwickler. Ihre Aufgabe ist es, eine saubere, vollständige HTML -Zielseite für das folgende Produkt zu generieren. Strukturieren Sie es basierend auf drei Hauptabschnitten: Erste Ansicht, Körper und Schließen. Anweisungen: - Ausgabe eines vollständigen und gültigen HTML -Dokuments (inklusive<!DOCTYPE html> Anwesend<html> Anwesend<head> , Und<body> ). - Nur Englisch. - Formatieren Sie das Ergebnis nicht mit Markdown. - Fügen Sie keine Erklärungen vor oder nach dem Code hinzu. - Verwenden Sie nur RAW -HTML als Ausgang. - Fügen Sie keine JavaScript- oder externen CSS -Frameworks hinzu. - Verwenden Sie Inline -Stile oder intern<style> for layout and design. - Use a clear, persuasive tone for copywriting. - Use semantic HTML elements (header, section, footer, etc.). Sections to include: 1. First View - Headline (h1) with the product name - Subheadline with a short summary - Prominent CTA button (e.g. "Start Now") 2. Body - Detailed product description - Bullet point list of key features - Optional paragraph about who it’s for 3. Closing - Final persuasive message - CTA button (again) - Optional tagline (e.g. “No credit card required”) Product Info: - Product Name: ${productName} - Category: ${category} - Description: ${description} - Key Features: ${features.filter(Boolean).join(" / ") || "None"} - Target Audience: ${targetUser || "Not specified"} - Goal or Call-to-Action: ${goal} - Tone of Voice: ${tone || "Neutral"} - Visual Style: ${style || "Clean"} - Reference URL: ${referenceUrl || "None"} Respond only with the HTML. Do not include markdown code blocks or explanations.`;
Kurzbeschreibung:
- Generiert dynamisch eine Anweisung (Eingabeaufforderung), um an ChatGPT zu senden
- das Einbetten von Produktinformationen und die Angabe des Konfigurations- und Ausgangsformats im Detail können Sie hochwertige HTML erzeugen.
- Senden Sie eine bessere Eingabeaufforderung und Sie können bessere HTML generieren. Versuchen Sie es daher anzupassen.
Senden Sie eine Anfrage an die OpenAI -API
const response = actait fetch ("https://api.openai.com/v1/chat/completions", {methode: "post", Header: {Autorisierung: "Bearer $ {process.env.openai_api_api_key}`, "content-type": "application/json,},},},},}, Body: Json: Json.Stringify (": "Json",},}, Body: Jon.Stringify (":" json ",},},},}, body: jon.string process.env.openai_model ||. const data = warte auf response.json ();
Kurzbeschreibung:
- Senden Sie eine HTTP -Postanforderung an OpenAI -API (CHAT -Abschluss).
Modell
,api_key
,System_prompt
usw..Env
geladenDas Message
Array spielt eine Systemrolle (Persönlichkeit) und Benutzerrolle (Anweisung)
Überprüfen und zurückgeben oder Fehler behandeln oder Fehler behandeln
if (data.Error) {console.Error ("OpenAI -API -Fehler:", data.Error); return nexTesponse.json ({error: "fehlgeschlagene Zielseite"}, {Status: 500}); } const html = data.choices?. [0]? ""; return nexTesponse.json ({html}); }
Kurzbeschreibung:
- Wenn die ChatGPT -Antwort → Protokollausgabe + 500 Fehler zurückgibt
- Wenn die Antwort normal ist, wird die HTML mit
JSON
inder HTML
[Bonus] Dinge zu beachten
mit .EnV
verwalten,
damit sie niemals entlarvt werden Wenn Ihre API -Taste durchgesickert ist, entfernen Sie die API -Taste aus dem OpenAI -Dashboard.
Der Modellname ist eine Umgebungsvariable. Bitte ersetzen Sie sie nach dem Zweck.
Die Menge an Geld variiert je nach Modell. Seien Sie daher bei der Auswahl eines Modells vorsichtig.
Eingabeaufforderungen können den generierten Inhalt ändern. Passen Sie also Ihre Eingabeaufforderung an.
Betriebsprüfung
Sobald Sie dies getan haben, überprüfen wir die Operation!
Sie sehen den Bildschirm unten. Fügen Sie also die Informationen zum Eingabedformular hinzu und generieren Sie sie!

Diese LP wurde generiert! ! Nun, ich habe es mit GPT-4O erzeugt, aber ich denke, es ist ein Kompromiss.

Als ich es mit GPT-4,1-Mini erzeugt habe, wurde es so generiert!
Ich denke, indem wir die Eingabeaufforderung ein wenig besser machen oder mehrmals antworten, können wir etwas mehr Qualität erreichen. (Dies war meine Grenze ...)

Informationen zum Vorlagenverkauf
in diesem Artikel eingeführte automatische App -Generation von LP wird als Vorlage verkauft, die auch für kommerzielle Zwecke verwendet werden kann.
Warum Vorlagen verkaufen?
Wir haben dies für diejenigen vorbereitet, die die folgenden Bedürfnisse erleben:
- "Auch wenn Sie den Schritten befolgen, funktioniert die Umgebung nicht ..."
- "Ich möchte nur mit einem bewegenden Beispiel beginnen."
- "Ich habe mir meinen Blog angesehen und fand ihn nützlich, also möchte ich ihn mit dem Ziel kaufen, zu unterstützen und zu spenden."
Sogar diejenigen, die es nicht gewohnt sind, das Spiel zu entwickeln, können mit minimalem Aufwand schnell starten und es schnell ausprobieren
Beispiele für die Verwendung von Vorlagen (Anpassungsideen)
Diese Vorlage ist perfekt für die persönliche Entwicklung und Lernzwecke.
Zum Beispiel empfehlen wir, Folgendes zu ändern und zu erweitern:
- Ermöglicht die Einfügung von Bildern und Logos in die erzeugte LP
- Fügen Sie mehrsprachige LP -Unterstützung hinzu (japanische und englische Wechsel usw.)
- Speichern und verwalten Sie die generierten Ergebnisse (entfernen Sie die Geschichte früherer LPS)
- Erstellen Sie eine Funktion, die so gehostet werden kann, wie sie sind
- Fügen Sie eine Benutzeroberfläche hinzu, um Eingabeaufforderungen und Designvorlagen auszuwählen
Es ist auch eine gute Praxis, es auf "serieller Basis" für Programmieranfänger auszuprobieren.
Was ist in der Vorlage enthalten
enthält
den gesamten Quellcode für das hier eingeführte Projekt Daher müssen Sie Ihr eigenes Projekt nicht von Grund auf neu erstellen oder konfigurieren, und Sie können es sofort starten .
- LP -Eingangsformular und Vorschau -Benutzeroberfläche mit Next.js (App -Router)
- Serverseitige Implementierung mit OpenAI-API-Integration
- Einfach zu lesen Quellcode mit Kommentaren
- Einfach und leicht zu verbessern mit Rückenwind -CSS
- Docker Startup-Konfigurationsdateien (DockerFile, Docker-compose.yml)
Die in diesem Artikel eingeführten Vorlagen sind jetzt im Verkauf!
Diese Chatbot UI -Vorlage steht auf mehreren Plattformen zum Verkauf.
Die Struktur ist perfekt für diejenigen, die etwas ausprobieren möchten, das zuerst funktioniert: "Ich möchte es sofort verwenden, ohne eine Umgebung zu erstellen" oder "Ich möchte den gesamten Code überprüfen".
Zusammenfassung
Dieses Mal haben wir vorgestellt, wie man
eine einfache Landing Page (LP) automatisch generierende App mit der OpenAI-API und Next.js.
Rückblick auf die Punkte:
- Mit der API der Chat-Abschlüsse können Sie hochwertige HTML mit nur wenigen Eingabeaufforderungen generieren
- Next.js App Router + Tailwind CSS macht es einfach und einfach anpassen
- Durch die Verwendung von Vorlagen können Sie von einem Zustand aus starten, in dem Sie es schnell ausprobieren können, um den Aufbau einer Umgebung zu beseitigen.
Diese Vorlage
wird besonders für Entwickler und Designer empfohlen , die LPS -Einführung von Produkten schnell prototypisieren oder
LP -Automatisierung erleben möchten
Verwenden Sie es als Basis, um die Eingabeaufforderungen und Designs anzupassen
, um sich zu Ihrem eigenen LP -Generator zu entwickeln Es wird nicht nur als Basis für das Hinzufügen von einzigartigen Funktionen und zum Anpassen der Benutzeroberfläche empfohlen.
Die in diesem Artikel eingeführten Vorlagen sind jetzt im Verkauf!
Diese Chatbot UI -Vorlage steht auf mehreren Plattformen zum Verkauf.
Die Struktur ist perfekt für diejenigen, die etwas ausprobieren möchten, das zuerst funktioniert: "Ich möchte es sofort verwenden, ohne eine Umgebung zu erstellen" oder "Ich möchte den gesamten Code überprüfen".