Wie kann man KI für die Webentwicklung nutzen?

Back4app AI Web Development Cover

Seit der Veröffentlichung von ChatGPT haben KI-Tools viel Aufmerksamkeit auf sich gezogen, was viele Webentwickler dazu veranlasst hat, ein gewisses Maß an KI in ihren Arbeitsablauf zu integrieren.

In diesem Artikel erklären wir, wie Sie von der Verwendung von KI in der Webentwicklung profitieren können. Darüber hinaus werden wir uns ein praktisches Beispiel für die Automatisierung der Webentwicklung mit KI-Technologien ansehen.

In unserem Beispiel verwenden wir den Back4app-Agenten – einen KI-basierten DevOps-Assistenten – um eine Webanwendung für die Back4app.

Vorteile des Einsatzes von KI in der Webentwicklung

Der Einsatz von KI in der Webentwicklung hat viele Vorteile. Schauen wir uns einige von ihnen an.

Automatisierte Code-Generierung

KI-basierte Tools wie ChatGPTGitHub Copilot und Back4app Agent können Ihnen helfen, Ihren Entwicklungsprozess erheblich zu beschleunigen.

Sie können hilfreiche Code-Snippets, Code-Vervollständigung, Code-Analyse, Automatisierung von DevOps und vieles mehr bieten.

Der größte Nachteil dieser Tools sind Verwirrungen. Darüber hinaus können sie fehlerhaften oder suboptimalen Code einbringen. Stellen Sie sicher, dass Sie den gesamten von KI-Tools generierten Code gründlich analysieren.

Verbesserte Codeüberprüfung

Das Schreiben von Code macht Spaß, aber das Schreiben von Tests nicht so sehr. Testen ist der zweite Vorteil der KI-Webanwendungsentwicklung.

Durch den Einsatz von KI können Sie automatisch Tests auf der Grundlage Ihres Quellcodes erstellen. Dies kann Ihnen helfen, Ihren Code zu validieren und ihn weniger fehleranfällig und zuverlässiger zu machen.

SEO-Optimierung

KI-Tools eignen sich hervorragend zum Analysieren und Optimieren von Webinhalten für Suchmaschinen. Sie können effektive Schlüsselwörter, Metadaten und Tags generieren, um die Online-Sichtbarkeit zu verbessern.

Darüber hinaus können diese Tools sich an die sich entwickelnden SEO-Trends und Algorithmen anpassen und so sicherstellen, dass eine Website in den Suchmaschinenergebnissen hoch platziert bleibt.

Erstellung und Kuratierung von Inhalten

Mithilfe von KI lassen sich automatisch relevante und ansprechende Inhalte erstellen. Das kann für das Betreiben eines Blogs oder einer ähnlichen Marketingstrategie äußerst nützlich sein.

Außerdem können diese Tools Inhalte erstellen, die Ihre Leser ansprechen, so dass sie interessierter sind und eher bereit sind, etwas zu unternehmen, z. B. ein Produkt zu kaufen oder sich anzumelden.

Wie kann KI bei der Bereitstellung einer Webanwendung eingesetzt werden?

In diesem Abschnitt erklären wir, wie KI-Tools in den Entwicklungsprozess integriert werden können. Wir werden Back4app Agent verwenden, um eine Full-Stack-Webanwendung zu erstellen und bereitzustellen.

Wir werden versuchen, alles mit der Kraft der Konversation und mit einer minimalen Menge an Code zu tun.

Prerequisites

Was ist Back4app Agent?

Back4app Agent ist das AutoGPT für Entwickler. Er integriert KI-gesteuerte Entwicklungstools mit Cloud-Ausführung und ermöglicht es Ihnen, Cloud-Aufgaben mit der Kraft der Konversation auszuführen.

Back4app Agent ist so konzipiert, dass er automatisch mit Back4app BaaS und Back4app Containern interagiert.

Das Beste daran: Back4app Agent kann in Echtzeit lernen und sich durch direkte Interaktion mit Cloud-Umgebungen selbst optimieren. Er ist auf der Back4app-Plattform und als ChatGPT-Plugin verfügbar.

Denken Sie daran, dass Back4app Agent kein magisches Werkzeug ist. Es kann Fehler machen. Wenn das passiert, liegt es an Ihnen, diese zu beheben.

Außerdem kann es sein, dass das Senden der gleichen Aufforderungen an Back4app Agent unterschiedliche Ergebnisse liefert.

Wenn Sie Ihre LLM-Eingabeaufforderungen verbessern möchten, lesen Sie bitte Wie erstelle ich eine App mit ChatGPT?

Projektübersicht

Im Laufe des Artikels werden wir an einer Event-Management-Web-App arbeiten und KI für eine effiziente Web-App-Bereitstellung nutzen. Die App wird es uns ermöglichen, Veranstaltungsorte und Events zu verwalten. Jede Veranstaltung findet an einem bestimmten Ort statt.

Wir werden das Backend mit Back4app erstellen und dann mit dem Frontend fortfahren. Das Frontend wird mit React erstellt, gedockt und später in Back4app Containern bereitgestellt. Um das Frontend mit dem Backend zu verbinden, werden wir das Parse SDK verwenden. 

Ich empfehle Ihnen, sich mit der Event Management Web App vertraut zu machen. Die App soll Ihnen ein solides Verständnis der Back4app-Plattform und der Funktionsweise von Back4app Agent in der Praxis vermitteln.

Backend

In diesem Artikelabschnitt bauen wir das Backend unserer Web-App auf.

Back4app App

Öffnen Sie zunächst Ihren bevorzugten Webbrowser und navigieren Sie zur Back4app Agent-Seite. Erstellen Sie einen neuen Agenten, indem Sie auf die Schaltfläche “Neuer Agent” klicken.

Back4app Agent New Agent

Um ein Backend für Back4app bereitzustellen, müssen Sie zunächst eine Back4app-Anwendung erstellen.

Fordern Sie den Agenten auf, eine neue Back4app-Anwendung zu erstellen. Ich werde meinen Agenten “back4app-ai-agent” nennen:

Create a new Back4app app named "back4app-ai-agent".
Back4app Agent App Created

Wie Sie sehen können, hat der Agent erfolgreich eine Back4app-Anwendung erstellt. Er lieferte uns die “App-ID”, die “Dashboard-URL” und alle anderen hilfreichen Informationen, die wir benötigen könnten.

App-Idee und Datenbank

Um die Antworten des Agenten zu verbessern, müssen wir ihm mehr Kontext zu dem geben, was wir erstellen. Erläutern Sie dem Agenten die App-Idee und die Datenbankstruktur:

We're building a backend for an event management app. The app will allow us to manage venues and events. Each event will happen in a specific venue. Please create the following database classes:

1. `Venue`: `name`, `location`, `capacity`
2. `Event`: `name`, `description`, `date`, `venue`
Back4app Agent Database Models

Der Agent erstellte erfolgreich die gewünschten Datenbankklassen. Er hat automatisch die Beziehung zwischen Veranstaltungen und Veranstaltungsorten bestimmt und uns eine Übersicht über die Felder jeder Datenbankklasse gegeben.

Fordern Sie den Agenten nun auf, die Datenbank zu befüllen, um einige Testdaten zu erhalten, mit denen Sie später arbeiten können:

Please populate my database with 5 venues and 10 events. Some of the events should be music events.
Back4app Agent Database Populated

Stellen Sie sicher, dass alles funktioniert, indem Sie die Datenbankstruktur und ihren Inhalt manuell überprüfen. Öffnen Sie dazu das Back4app-Dashboard, wählen Sie Ihre App aus und klicken Sie in der Seitenleiste auf “Datenbank > Browser”.

Back4app Database View

Die Klassen Event und Venue sollten sich in Ihrer Datenbank befinden, und jede sollte einige Beispielzeilen enthalten.

Cloud Code

Back4app Agent eignet sich auch hervorragend zum Schreiben eigener Cloud-Code-Funktionen. Angenommen, wir wollten einen API-Endpunkt, der alle Ereignisse an einem bestimmten Ort zurückgibt.

Bitten Sie den Agenten, die gerade erwähnte Funktion zu erstellen und bereitzustellen:

Create a Cloud Code function called `eventsByVenue(venueId)` that will allow me to provide a venue ID, and it'll return all the events happening in that venue.
Back4app Agent Cloud Code

Um dies zu testen, fordern Sie den Agenten auf, einen cURL-Befehl zu generieren, der auf den API-Endpunkt zugreift:

Write me a cURL command that hits `eventsByVenue(venueId)` to get all the events of some venue in my database.
Back4app Agent cURL Command

Kopieren Sie den Befehl, ersetzen Sie den Platzhalter, und führen Sie ihn in Ihrer Konsole aus:

$ curl -X POST \
    -H "X-Parse-Application-Id: <Your-App-Id>" \
    -H "X-Parse-REST-API-Key: <Your-REST-API-Key>" \
    -H "Content-Type: application/json" \
    -d '{"venueId":"<Venue-Object-Id>"}' \
    https://<Your-Parse-Server-Url>/functions/eventsByVenue

Sie sollten eine ähnliche Antwort erhalten:

{
   "result": [
      {
         "id": "peae9x7MAH",
         "name": "Classical Evening",
         "description": "...",
         "date": "2023-07-15T19:30:00.000Z"
      },
      {
         "id": "uIeSmK0KJj",
         "name": "Symphonic Extravaganza",
         "description": "...",
         "date": "2023-12-25T19:30:00.000Z"
      }
   ]
}

Wenn Sie sich für den im Hintergrund generierten Code interessieren, navigieren Sie zum Back4app-Dashboard, wählen Sie Ihre App aus und klicken Sie in der Seitenleiste auf “Cloud Code > Functions & Web Hosting”.

Back4app Cloud Code

Großartig, das war’s!

Wir haben erfolgreich ein vollwertiges Backend mit null Code erstellt. Alles, was wir tun mussten, war, dem KI-Agenten ein paar Eingabeaufforderungen zu übermitteln. Viel einfacher kann es nicht werden.

Frontend

In diesem Artikelabschnitt werden wir das Frontend unserer Webanwendung erstellen und bereitstellen.

Project Init

Bei der Arbeit mit LLMs ist es ratsam, zuerst nach den allgemeinen Schritten zu fragen. Sobald Sie die Schritte kennen, können Sie nach weiteren Erklärungen fragen. Lassen Sie uns das ausprobieren.

Erklären Sie dem Agenten die Idee des Frontends und bitten Sie ihn um eine Schritt-für-Schritt-Anleitung:

Describe the steps of building a React application for my backend. I want my app to have three endpoints:

1. `/` displays all the events
2. `/<objectId>/` displays the specific event's details
3. `/venue/<objectId>/` displays all the events in a specific venue 

Please use Vite to generate a React application.
Back4app Agent Frontend Steps

Der Agent antwortete mit einer kurzen Liste von Schritten. Führen wir sie aus.

Bootstrappen Sie ein neues React-Projekt mit Vite:

$ npm create vite@latest my-app -- --template react 
$ cd my-app

Installieren Sie die Abhängigkeiten:

$ npm install

Starten Sie den Entwicklungsserver:

$ npm run dev

Öffnen Sie Ihren bevorzugten Webbrowser und navigieren Sie zu http://localhost:5173/. Sie sollten die standardmäßige Vite-Landingpage sehen können.

Vite + React Index Page

Routen

Wie vom KI-Agenten vorgeschlagen, verwenden wir react-router-dom, um das Routing zu steuern. React Router DOM ist ein hervorragendes Paket für die Handhabung von Routing in React-Anwendungen, ohne die Seite zu aktualisieren.

Fragen Sie zunächst nach, wie Sie rreact-router-dom einrichten und verwenden können:

How to install and use `react-router-dom` to implement the previously-mentioned routes?
Back4app Agent React Router DOM

Der Agent hat den Code erfolgreich mit einem Router versehen, der unsere Anforderungen erfüllt. Jede Route gibt eine andere React-Komponente aus dem Komponenten-Ordner wieder (den wir im nächsten Schritt erstellen werden).

Installieren Sie das Paket über NPM:

$ npm install react-router-dom

Als Nächstes ersetzen Sie den Inhalt Ihrer App.jsx durch den folgenden Text:

// src/App.jsx

import {BrowserRouter as Router, Route, Routes} from 'react-router-dom';
import './index.css';

import EventsList from './components/EventList';
import EventDetails from './components/EventDetails';
import EventsByVenue from './components/EventsByVenue';

function App() {
  return (
    <Router>
      <Routes>
        <Route exact path='/' element={<EventsList/>}/>
        <Route path='/:objectId' element={<EventDetails/>}/>
        <Route path="/venue/:venueId" element={<EventsByVenue/>}/>
      </Routes>
    </Router>
  );
}

export default App;

Erstellen Sie dann die folgende Dateistruktur in Ihrem src-Ordner:

src/
└── components/
    ├── EventDetails.jsx
    ├── EventList.jsx
    └── EventsByVenue.jsx

Als nächstes fügen Sie Folgendes in die Datei EventsList.jsx ein:

// src/components/EventsList.jsx

import React from 'react';

const EventsList = () => {
  // fetch the events from the backend

  return (
    <div>
      {/* Map through the events data and display them */}
    </div>
  );
};

export default EventsList;

Dann die Datei EventDetails.jsx:

// src/components/EventDetails.jsx

import React from 'react';
import {useParams} from 'react-router-dom';

const EventDetails = () => {
  let {objectId} = useParams();

  // use objectId to fetch data from the backend

  return (
    <div>
      {/* render the specific event details using objectId */}
    </div>
  );
};

export default EventDetail;

Und schließlich die Datei VenueEventsList.jsx:

// src/components/VenueEventsList.jsx

import React from 'react';
import {useParams} from 'react-router-dom';

const VenueEventsList = () => {
  let {objectId} = useParams();

  // use objectId to fetch data from the backend

  return (
    <div>
      {/* render the events for a specific venue using objectId */}
    </div>
  );
};

export default VenueEventsList;

Starten Sie den Entwicklungsserver und testen Sie, ob die Routen wie erwartet funktionieren.

Parse SDK

Der einfachste Weg, das Frontend mit einem Back4app-basierten Backend zu verbinden, ist über Parse SDK. Bitten wir den Agenten, uns zu erklären, wie das geht:

How to install and use Parse SDK to connect my frontend with the backend?
Back4app Agent Parse Install

Die Antwort enthält einen kleinen Fehler. Statt index.jsx sollte es main.jsx heißen, da wir ein Vite-Projekt verwenden. Nichtsdestotrotz, führen wir die Schritte durch.

Installieren Sie das Paket:

$ npm install parse

Als nächstes muss main.jsx leicht modifiziert werden, um die Parse-Instanz zu initialisieren:

// src/main.jsx

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App.jsx';
import './index.css';
import Parse from 'parse';

Parse.initialize(
  '<parse-application-id>',  // replace me with your actual app id
  '<parse-javascript-key>',  // replace me with your actual js key
);
Parse.serverURL = 'https://parseapi.back4app.com/';

ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <App/>
  </React.StrictMode>,
);

Starten Sie den Entwicklungsserver neu und navigieren Sie zu Ihrer Webanwendung. Öffnen Sie die Konsole und prüfen Sie, ob Fehler aufgetreten sind. Keine Fehler bedeuten, dass die Verbindung zum Backend erfolgreich war.

Anwendungslogik

Fordern Sie nun den Agenten auf, die eigentliche Anwendungslogik zu generieren:

Write me the code for `EventList.jsx`, `EventDetails.jsx`, and `EventsByVenue.jsx`. 
Use Parse to fetch the required information. I want each page to have a `loading`
and `error` state.

Der KI-Agent liefert den Code für jede der Routen. Hier ist ein Beispiel:

// src/components/EventList.jsx

import {useEffect, useState} from 'react';
import {Link} from 'react-router-dom';
import Parse from 'parse';

const EventsList = () => {

  const [events, setEvents] = useState([]);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState(null);

  useEffect(() => {
    const eventObject = Parse.Object.extend('Event');
    const query = new Parse.Query(eventObject);

    query.find().then((results) => {
      const eventsData = results.map((event) => ({
        id: event.id,
        ...event.attributes,
      }));
      setEvents(eventsData);
      setLoading(false);
    }, (error) => {
      console.error('Error while fetching events', error);
      setError(error);
      setLoading(false);
    });
  }, []);

  if (loading) return <div>Loading...</div>;
  if (error) return <div>Error: {error}</div>;

  return (
    <div>
      <h1>Event List</h1>
      <p>Here is a list of all the events.</p>
      <ul>
        {events.map((event) => (
          <li key={event.id}>
            <Link to={`/${event.id}`}>
              {event.name}
            </Link>
          </li>
        ))}
      </ul>
    </div>
  );
};

export default EventsList;

Kopieren Sie den Code und fügen Sie ihn in EventsList.jsx ein. Ändern Sie dann die beiden anderen Dateien entsprechend:

  1. EventDetails.jsx
  2. EventsByVenue.jsx

Damit ist Ihr Frontend mehr oder weniger komplett. Starten Sie den Entwicklungsserver:

$ npm run dev

Öffnen Sie Ihren Lieblings-Webbrowser und navigieren Sie zu http://localhost:5173/. Sie werden sehen, dass die Daten jetzt vom Backend geholt werden. Klicken Sie ein wenig herum, um zu sehen, ob alles funktioniert.

Back4app Events App

Dockerisierung

Wir verwenden Back4pp Containers, eine kostenlose CaaS-Plattform, um unser Frontend bereitzustellen. Wie der Name schon sagt, wird die Plattform für die Bereitstellung von Containern verwendet; um unser Frontend bereitzustellen, müssen wir es daher zunächst dockerisieren.

Erstellen Sie eine Dockerfile-Datei im Stammverzeichnis des Projekts wie folgt:

# Dockerfile

FROM node:18-alpine3.17 as build

WORKDIR /app
COPY . /app

RUN npm install
RUN npm run build

FROM ubuntu

RUN apt-get update
RUN apt-get install nginx -y

COPY --from=build /app/dist /var/www/html/

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

Dieses Dockerfile nutzt mehrstufige Builds. Es umfasst zwei Phasen, die build – und die runner-Phase.

In der build -Phase wird das Projekt kopiert, die Abhängigkeiten werden installiert und das Projekt wird gebaut. Der runnerhingegen liefert die Ausgabe des builds mit Nginx aus.

Um die Größe des Images zu verringern, können wir auch eine .dockerignore-Datei definieren:

# .dockerignore

.idea/

node_modules/
out/
build/

Stellen Sie sicher, dass Sie die .dockerignore-Datei entsprechend anpassen.

Bevor Sie ein Docker-Image bereitstellen, ist es ratsam, es lokal zu testen.

Erstellen Sie das Docker-Image:

$ docker build -t back4app-events:1.0 .

Starten Sie einen Container mit dem neu erstellten Image:

$ docker run -it -p 80:80 back4app-events:1.0

Ihre Webapplikation sollte nun erreichbar sein unter http://localhost/.

Push Code

Back4app Containers ist eng mit GitHub integriert. Um Ihren Code dort bereitzustellen, müssen Sie ihn zunächst in ein entferntes GitHub-Repository pushen.

Navigieren Sie zunächst zu GitHub und erstellen Sie ein neues Repository. Notieren Sie sich die Remote-URL, z. B.:

[email protected]:<username>/<repository-name>.git

Example:
[email protected]:duplxey/back4app-ai-agent.git

Als Nächstes initialisieren Sie Git, erstellen ein VCS für alle Dateien und übertragen sie:

$ git init
$ git add .
$ git commit -m "project init"

Verwenden Sie das Remote aus dem vorherigen Schritt, um den Code zu übertragen:

$ git remote add origin <your_remote_url>
$ git push origin master

Wenn Sie alles richtig gemacht haben, sollten Ihre Dateien im GitHub-Repo angezeigt werden.

Code bereitstellen

Ihre Dateien sollten im GitHub-Repository angezeigt werden, wenn Sie alles richtig gemacht haben.

Connect to my "<username>/<repository-name>" repository on GitHub and deploy it to Back4app Containers.
Back4app Agent Deploy

Warten Sie ein paar Minuten, bis das Projekt bereitgestellt ist.

Sobald Sie bereit sind, klicken Sie auf die URL der App und stellen Sie sicher, dass alles funktioniert, indem Sie die App testen.

Zusammenfassung

Abschließend haben wir erfolgreich eine Full-Stack-Webanwendung auf der Back4app-Plattform erstellt und bereitgestellt und erklärt, wie man KI in einen Webentwicklungs-Workflow einbindet.

Auch wenn wir nicht viel Code selbst geschrieben haben, war dennoch eine Menge technisches Wissen erforderlich.

Back4app Agent kann in Kombination mit anderen KI-basierten Tools wie GitHub Copilot den Entwicklungsprozess erheblich beschleunigen.

Mit ihnen können Sie banale, sich wiederholende Aufgaben automatisieren und sich auf die spannenderen Dinge konzentrieren.

Holen Sie sich den endgültigen Quellcode aus dem back4app-ai-agent GitHub Repo.


Leave a reply

Your email address will not be published.