Blog

Wie ich die Führungsebene von Xebia durch künstliche Intelligenz ersetzte

Dennis Vink

Dennis Vink

Aktualisiert Oktober 15, 2025
8 Minuten

Sie haben schon von dem alten Sprichwort gehört: "Wenn Sie sie nicht schlagen können, schließen Sie sich ihnen an", oder? Nun, ich habe beschlossen, einen Schritt weiter zu gehen und eine KI-Kopie des Xebia-Führungsteams zu erstellen. Das ist richtig, Leute; ich habe die Xebia-Führungsriege durch künstliche Intelligenz ersetzt! In diesem Blogbeitrag erzähle ich Ihnen, wie ich auf amüsante Weise Virtual Xebian geschaffen habe, eine Website, auf der Besucher Fragen an die virtuelle Xebia-Führungsriege stellen können und Antworten im Geiste ihrer Persönlichkeiten erhalten.

Wir stellen vor: Virtual Xebian

Der erste Schritt in meinem großen Experiment bestand darin, eine Website namens Virtual Xebian zu erstellen. Hier können Besucher auswählen, welches Mitglied des Xebia Führungsteams sie befragen möchten. Dann können sie eine beliebige Frage stellen und der virtuelle Xebian wird eine Antwort geben, die mit der Persönlichkeit der ausgewählten Führungskraft sowie mit der Mission, der Vision und den Werten von Xebia übereinstimmt.

Frage an Andrew

Die technische Raffinesse hinter den Kulissen

Jetzt fragen Sie sich vielleicht, wie ich das geschafft habe. Die Magie geschieht durch eine Kombination aus Serverless, Benutzereingaben, einer CloudFront-Verteilung, einer Lambda-Funktion und der OpenAI API. Hier ist ein kurzer Überblick über den Prozess:

  • Die Benutzer stellen ihre Fragen über das Frontend der Website.
  • Die Nutzdaten, die das ausgewählte Xebian und die Frage enthalten, werden an den API-Endpunkt unter https://api.virtualxebian.com gesendet.
  • Dieser Endpunkt ist eine CloudFront-Verteilung vor einer AWS Lambda-Funktion, die als HTTP-Endpunkt fungiert.
  • Bei der Lambda-Funktion handelt es sich um ein Python-Skript, das die Mission, die Vision und die Werte von Xebia sowie die Persönlichkeit und den Sprachstil der jeweiligen Führungskraft enthält. Es erzeugt eine einzige Eingabeaufforderung, die es an die OpenAI API sendet.
  • Die OpenAI API generiert auf der Grundlage der Eingabeaufforderung eine Antwort, die dann über das Frontend der Website an den Benutzer zurückgegeben wird.

Ich habe unter github.com/binxio/ai-lambda-starter einige Beispielcodes zur Verfügung gestellt, so dass jeder Interessierte schnell mit der Erstellung seiner eigenen KI-API-Implementierungen und -Integrationen beginnen kann.

Architektur

Da es sich um eine serverlose Anwendung handelt, ist die Architektur sehr einfach:

Virtuelle Xebian KI-Architektur

Aufbau eines KI-integrierten Lambdas: Die wichtigsten Prinzipien

Bei der Erstellung von Virtual Xebian habe ich eine Lambda-Funktion entwickelt, die mit der OpenAI-API integriert ist und POST-Anfragen vom Frontend verarbeitet. Hier sind einige wichtige Grundsätze, die Sie bei der Entwicklung eines solchen Lambdas beachten sollten:

  • Sicherheit und API-Schlüsselverwaltung: Wenn Sie mit externen APIs wie OpenAI arbeiten, ist es wichtig, die API-Schlüssel sicher zu verwalten. In meinem Code habe ich den OpenAI-API-Schlüssel als Umgebungsvariable gespeichert, damit er geschützt bleibt und nicht fest in das Skript kodiert wird (und in GIT landet). Es ist jedoch besser, SSM oder den Parameter Store zu verwenden, damit Sie keine Anmeldedaten auf Ihrem Rechner oder in der CI/CD-Pipeline benötigen.
openai.api_key = os.environ.get('OPENAI_API_KEY')
  • Kontext und Personalisierung: Um personalisierte Antworten geben zu können, müssen wir die KI mit relevanten Informationen über die Person, die sie nachahmt, versorgen. In meinem Beispiel definieren wir den Kontext, die Rolle, den Job, die Persönlichkeit und den bevorzugten Schreibstil des virtuellen CEOs:
context = """...some long blob of information..."""
role = 'Barry',
job = 'the CEO of PaperCraft Unlimited',
personality = '...'
style = 'Stephen King'
  • Fragen an die KI: Damit unsere KI effektiv auf Benutzerfragen antworten kann, erstellen wir einen gut strukturierten Prompt, der den Kontext, die Persönlichkeit und den Schreibstil enthält. Diese Aufforderung wird an die OpenAI API gesendet:
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": f"You are Virtual {role}, {job}"},
        {"role": "user", "content": f"... {context}. {personality}. Stay in character. Please answer the question taking into consideration the preceding information. Answer in the style of {style}.nMy question is: {question}."}
    ]
)
  • Bearbeitung von POST-Anfragen: Um eingehende POST-Anfragen zu verarbeiten, prüfen wir zunächst, ob die HTTP-Methode POST ist. Wenn ja, analysieren wir den Text der Anfrage, extrahieren die Frage des Benutzers und rufen die Funktion ask_ai() auf, um eine Antwort von der KI zu erhalten:
if event["requestContext"]["http"]["method"] == "POST":
    body = json.loads(event['body'])
    question = body.get('question')
    ...
  • CORS-Behandlung und Antwortformatierung: Bei der Beantwortung von Frontend-Anfragen ist der korrekte Umgang mit Cross-Origin Resource Sharing (CORS) unerlässlich. In unserem Lambda setzen wir entsprechende CORS-Header und geben die Antwort der KI als JSON-Objekt zurück:
return {
    'statusCode': 200,
    'headers': {
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Headers': '*',
        'Access-Control-Allow-Methods': 'OPTIONS,POST,GET'
    },
    'body': json.dumps(
        {
            'answer': ask_ai(question)
        }, indent=2
    )
}
  • Fallback und Nicht-POST-Anfragen: Für den Fall, dass unser Lambda eine Nicht-POST-Anfrage erhält, sollten wir eine Fallback-Antwort bereitstellen. In unserem Beispiel geben wir eine spielerische Nachricht zurück, die besagt, dass die Systeme des virtuellen CEO betriebsbereit sind:
Copy code
else:
    return {
        ...
        'body': json.dumps({'message': 'The circuits of PaperCraft Unlimited's CEO are functioning perfectly and all systems are operational.'}, indent=2)
    }

Xebia Leadership nachahmen: Persönlichkeiten und Redestile

Die Antworten unserer virtuellen Xebianer sind nicht nur informativ, sondern spiegeln auch ihre einzigartige Persönlichkeit und ihren Sprachstil wider.
Die Methode ask_xebian() ist so konzipiert, dass sie Fragen für verschiedene Anführer unter Berücksichtigung ihrer individuellen Merkmale bearbeiten kann. Das mitgelieferte Code-Snippet enthält Beispiele für zwei Anführer: Anand und Andrew.

if role == 'Anand':
    job = 'the CEO of Xebia Global.'
    personality = '...'
    technical = False
    style = 'Reid Hoffman'
elif role == 'Andrew':
    job = 'the CEO of Xebia Netherlands.'
    personality = '...'
    technical = False
    style = 'John F. Kennedy'

Durch die Einbeziehung dieser Details in die KI-Eingabeaufforderung beantworten die Antworten des virtuellen Xebian nicht nur die Frage des Benutzers, sondern bleiben auch dem Charakter, der Persönlichkeit und dem Sprachstil des ausgewählten Anführers treu. Diese Liebe zum Detail sorgt für eine fesselnde und authentische Benutzererfahrung.

Frontend-Integration mit der API

Die Anfrage, die an die API gesendet wird, sieht wie folgt aus:

{
    "question": "What is the answer to life, the universe and everything?",
    "role": "anand"
}

Die Antwort wird im Frontend gerendert:

let response = await fetch('https://api.virtualxebian.com/', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ "question": question, "role": person }),
});
if (response.ok) {
    const data = await response.json();
    answerTextarea.value = data.answer;
} else {
    answerTextarea.value = 'I am sleeping right now. Please try again later.';
}

Ein Blick auf die Serverless-Konfiguration

Für die Bereitstellung der Virtual Xebian API haben wir das Serverless Framework verwendet, das den Prozess der Bereitstellung von serverlosen Anwendungen auf Cloud-Plattformen wie AWS vereinfacht. Die Konfigurationsdatei serverless.yml ist das Herzstück meines Projekts und umreißt verschiedene Einstellungen und Ressourcen, die für die Bereitstellung erforderlich sind. Lassen Sie uns die wichtigsten Komponenten dieser Datei aufschlüsseln:

  • Dienst und Framework-Version: Ich habe meinen Dienst virtualxebian-api genannt und angegeben, dass wir Version 3 des Serverless Frameworks verwenden.
service: virtualxebian-api
frameworkVersion: '3'
  • Plugins: Wir haben das Plugin serverless-aws-function-url-custom-domain hinzugefügt, mit dem wir die Domain für unseren API-Endpunkt anpassen können.
plugins:
  - serverless-aws-function-url-custom-domain
  • Provider-Einstellungen: Wir haben AWS als unseren Cloud-Anbieter angegeben und Laufzeit, Stufe, Region, Timeout, Speichergröße und andere Einstellungen konfiguriert.
provider:
  name: aws
  runtime: python3.9
  stage: prod
  region: us-east-1
  timeout: 60
  memorySize: 512
  versionFunctions: false
  environment:
    OPENAI_API_KEY: ${file(../.private.json):OPENAI_API_KEY}
  • Funktionen: Wir haben eine einzelne Lambda-Funktion namens api-handler definiert, die das Python-Skript api-handler.api als Handler verwendet. Wir haben auch eine OpenAI Python-Schicht hinzugefügt und die URL-Anpassung für die Funktion aktiviert.
functions:
  api-handler:
    handler: api-handler.api
    layers:
      - arn:aws:lambda:us-east-1:<acount_id>:layer:openai-py-layer:1
    url: true

Sie finden die Docker-Datei für die Schicht unter github.com/binxio/ai-lambda-starter/

Schließlich wird die Konfiguration des Domänennamens wie folgt vorgenommen:

custom:
  urlDomain:
    domains:
      - api.virtualxebian.com
    hostedZoneName: virtualxebian.com.
    certificateArn: 'arn:aws:acm:us-east-1:<account_id>:certificate/some-cert-id'
    route53: true

Das bedeutet allerdings, dass Sie bereits ein ACM-Zertifikat für die Region us-east-1 besitzen müssen. Auch diesen Teil können Sie automatisieren. Lesen Sie mehr darüber unter serverless.com/plugins/serverless-certificate-creator. Zum Zeitpunkt der Erstellung dieses Artikels hatte ich ein Problem mit diesem speziellen Modul, weshalb ich es nicht verwendet habe.

Das Ergebnis: Ein unterhaltsames und wertvolles Hilfsmittel

Ich habe für jeden KI-Charakter einige persönliche Informationen hinzugefügt, eine Art Hintergrundgeschichte, und sie im Stil eines öffentlichen Redners sprechen lassen, der am besten zu ihrer Persönlichkeit passt. Während der Titel dieses Blogbeitrags vielleicht eine spielerische Anspielung auf das Konzept ist, menschliche Führung durch KI zu ersetzen, ist das Ergebnis ein interessanter Gesprächsanstoß über die Möglichkeiten der KI. Es ist jedoch mehr als nur ein Gimmick. Diese virtuellen Figuren sind sich der Mission, der Vision und der Werte von Xebia voll bewusst. Darüber hinaus weiß GPT bereits von der Existenz von Xebia. Wenn Sie berufs- oder geschäftsbezogene Fragen stellen, werden Sie höchstwahrscheinlich eine Antwort erhalten, die dem entspricht, was Ihnen die tatsächliche Xebia-Führung geben würde.

Wir sind zwar noch nicht ganz so weit, dass wir reale Führungskräfte durch KI ersetzen können, aber es ist faszinierend zu sehen, wie die Technologie virtuelle Doppelgänger erschaffen kann, die sowohl unterhaltsam als auch nützlich sind. Was würden Sie bauen?

Verfasst von

Dennis Vink

Crafting digital leaders through innovative AI & cloud solutions. Empowering businesses with cutting-edge strategies for growth and transformation.

Contact

Let’s discuss how we can support your journey.