Im Zeitalter der KI-gestützten Programmierung wollen wir, dass die KI Code erzeugt, der nicht nur aus statischem Text besteht, sondern auch Parsen, Bearbeiten, Vorschauen und sogar Ausführen Die. Dieses Bedürfnis hat eine neue Form der Interaktion hervorgebracht - die Artefakt .. Dieser Beitrag beginnt mit der theoretisches Konzept bis (eine Zeit) praktische Umsetzung Eingehende Analyse Funktionsprinzip, Kerntechnologie und Anwendungsszenarien von Artifact .
1. was ist ein Artefakt?
Artefakt ist kein spezifischer Fachbegriff, sondern eher ein AI-Code-Interaktion Das früheste bekannte Beispiel hierfür findet sich in Claude (Anthropische KI) erscheint in der Webversion der Website. Ihr Hauptziel ist es Erleichterung der Analyse, Bearbeitung und Vorschau von KI-generiertem Code .
Beim herkömmlichen Modell der KI-Codegenerierung gibt die KI nur den Code-Text zurück, den der Benutzer manuell kopieren und in den Editor einfügen muss, um ihn auszuführen. Dieser Ansatz hat die folgenden Probleme:
- Mangel an strukturierten Informationen Der von AI erzeugte Code ist nur einfacher Text und kann Schlüsselinformationen wie Dateinamen und Dateityp nicht unterscheiden.
- Begrenzte redaktionelle Erfahrung Benutzer können den Code nicht direkt in der KI-Dialogschnittstelle ändern und müssen zusätzliche Tools verwenden.
- Fehlen einer Sofortvorschau Für HTML/CSS/JS-Code ist es nicht möglich, den laufenden Effekt in Echtzeit zu sehen, was die Entwicklungseffizienz beeinträchtigt.
Artefakt Interaktiver Modus passieren (eine Rechnung oder Inspektion etc.) Strukturierte Daten, Parsing und dynamische Front-End-Präsentation Die Lösung dieser Probleme ermöglicht KI-generierten Code:
- Strukturierte Speicherung (Enthält Informationen wie Dateiname, Dateityp usw.).
- dynamisch geparst (extrahiert Codeblöcke und unterscheidet Klartext).
- Im Code-Editor anzeigen (Unterstützung für sofortige Änderung).
- Unterstützung der Vorschau (z.B. HTML/SVG/React-Komponenten, usw.).
2. wie das Artefakt funktioniert
2.1 Interaktionsprozess
vollständig Artefakt-Interaktion Sie besteht aus fünf Hauptschritten:
- AI erzeugt strukturierte Codeblöcke
- Der Code muss zum Parsen in spezielle Tags verpackt werden.
- Analysieren, was AI zurückgibt
- Erkennen von Text- und Codeblöcken und Extrahieren von Dateinamen, Typ und Codeinhalt.
- Speicherung von Datenstrukturen
- Speichert den geparsten Inhalt in einer geeigneten Datenstruktur, wobei zwischen Klartext und Code unterschieden wird.
- Dynamische Front-End-Anzeige
- Rendert Code auf der Benutzeroberfläche und bietet Bearbeitungsmöglichkeiten.
- Code-Vorschau
- Wenn der Code aus HTML/CSS/JS oder Reagieren Sie Komponente, die direkt ausgeführt und in der Vorschau angezeigt werden kann.
3. die Kernimplementierung von Artifact
3.1 AI-generiertes Code-Format
Damit das Front-End den von der KI generierten Code korrekt parsen kann, müssen wir eine Reihe von Standardformular Der übliche Weg, dies zu tun, ist die Verwendung von DSL (Domänenspezifische Sprache) Kennzeichnung. Beispiel:
<<artifact-start>>[{
"Dateiname": "index.html",
"filetype": "html"
}]
<!DOCTYPE html>
<html>
<head>
<title>Meine Seite</title>
</head>
<body>
<h1>Hallo, Artefakt!</h1>
</body>
</html>
<<artifact-end>>
In dieser Codestruktur ist die<>
im Gesang antworten <>
als Markierungen, die intern enthalten sind:
- Dateiname : Dateiname (z.B.
index.html
). - Dateityp : Dateityp (z.B.
html
). - Code Inhalt .
3.2 Parsen von Artefakt-Codeblöcken
Am vorderen Ende müssen wir Folgendes entwickeln ArtifactParser um Codeblöcke zu extrahieren. Die Codeblöcke können mit der Funktion regulärer Ausdruck (math.) zu entsprechen <>
im Gesang antworten <>
Der Inhalt zwischen:
Parse-Logik
- Passende Code-Blöcke
const artifactRegex = /<>(. *?) <>/gs. const matches = responseText.match(artifactRegex);
- JSON-Informationen extrahieren
const jsonRegex = /\[(. *?) \]/s; const jsonMatch = codeBlock.match(jsonRegex); const jsonMatch = codeBlock.match(jsonRegex); const artifactInfo = JSON.parse(jsonMatch[1]);
- Speichern von strukturierten Objekten
const artifact = { filename: artifactInfo.filename, filetype: artifactInfo.filetype, artifactInfo. filetype: artifactInfo.filetype, Inhalt: codeBlock.replace(jsonMatch[0], "").trim() };
3.3 Strukturierte Datenspeicherung
Der geparste Code muss in einer Datenstruktur gespeichert werden, damit er vom Front-End korrekt wiedergegeben werden kann.
Datenstruktur
Schnittstelle Artifact {
Dateiname: string;
filetype: string; Inhalt: string;
Inhalt: string;
}
Schnittstelle MixContent {
Typ: "Text" | "Artefakt"; text?
text?: string; artifact?
artifact?: Artefakt; }
}
Artefakt
Strukturen werden verwendet, um zu speichern Code-Datei .MixContent
Strukturen werden verwendet, um zu speichern Gemischter Inhalt aus einfachem Text und Code .
3.4 Dynamische Front-End-Anzeige
Das Frontend kann verwendet werden React + CodeMirror um z.B. editierbare Code-Fenster zu erstellen:
import CodeMirror von '@uiw/react-codemirror';
function CodeEditor({ artifact }) {
return (
);
}
(coll.) durchfallen (ein Schüler) Artefakt (Lehnwort)
Nach dem Parsen wird der Codeblock automatisch mit der Code-Editor für die Bearbeitung durch den Benutzer.
3.5 Code-Vorschau
Für HTML-Code können wir verwenden iframe
Direkte Vorschau:
function Vorschau({ artifact }) {
return (
);
}
Wenn es sich React-Komponenten Im Folgenden finden Sie ein Beispiel für die Art der Arbeiten, die von der CDN führt React ein Der erste Schritt besteht darin, dynamisches HTML für die Vorschau zu erstellen.
4. erweitert: Unterstützung für das Parsen mehrerer Dokumente
Wenn die KI Folgendes erzeugt Mehrere Dokumente Die Erweiterung ist erforderlich für die ArtifactParser
damit es mehr als einen Artefakt (Lehnwort)
bietet auch Dateiwechsel-Funktion .
Schnittstelle MultiArtifact {
files: Artefakt[];
}
Front-End verfügbar Liste der Dokumente damit der Benutzer die verschiedenen Codedateien einsehen kann.
5. artefaktische Anwendungsszenarien
✅ AI-Code-Assistent
- Abrufen von AI-generiertem Code Bearbeitbar, vorzeigbar, ausführbar um die Effizienz der Entwicklung zu verbessern.
✅ Low-Code-Entwicklungsplattform
- Machen Sie KI-generierte UI-Komponenten sofort visualisierbar und anpassbar.
✅ AI-unterstütztes Webdesign
- Generieren und rendern Sie HTML/CSS/JS-Code direkt, um die Effizienz der Webentwicklung zu verbessern.
6. zusammenfassung
Artefakt Interaktiver Modus Der Kern der Sache liegt darin:
- AI erzeugt strukturierte Codeblöcke (mit DSL beschriftet).
- Front-End-Parsing-Code (Extraktion von Code und Metadaten mit regulären Ausdrücken).
- Als strukturierte Daten gespeichert (Unterscheiden Sie zwischen Text und Code).
- Dynamische Präsentation und Bearbeitung (Code-Editor-Unterstützung ist vorhanden).
- Unterstützung der Vorschau (mit HTML-, SVG- oder React-Komponenten).
Durch diese Art der Interaktion wird dieKI-generierter Code wird intuitiver und einfacher zu verwenden, was die Erfahrung der Entwickler erheblich verbessert 🚀.