RealChar: AI Rollen „leben“ lassen mit der Open-Source-Plattform
In einer Zeit, in der AI Chatbots im Jahr 2026 allgegenwärtig sind, bleiben die meisten Produkte auf der Ebene von „Textgesprächen“ stehen: Du gibst Text ein, die KI antwortet mit Text – die Interaktion ist eintönig und fehlt an Immersion. RealChar bricht dieses Muster auf: Es handelt sich um eine komplett quelloffene Plattform für Echtzeit-Rolleninteraktion mit KI, die es dir ermöglicht, nicht nur KI-Charaktere mit einzigartiger Persönlichkeit und Hintergrundgeschichte zu erschaffen, sondern auch per Sprachdialog mit ihnen zu kommunizieren – genauso wie bei einem Gespräch mit einer echten Person.
Das RealChar-Projekt hat auf GitHub mehr als 8.000 Sterne erhalten und wird im offiziellen LangChain-Blog als Paradebeispiel dafür empfohlen, „AI Begleiter mit Open-Source-Werkzeugen zu erschaffen“. Die Kernidee ist simpel: Jeder soll ohne Programmieren eigene AI-Rollen erschaffen können und diese auf die natürlichste Weise – per Stimme – steuern können.
Dieser Beitrag beleuchtet RealChar aus technischer Sicht, behandelt Aufbau, Bereitstellung, Rollenerstellung sowie Echtzeit-Interaktionsmechanismen und zeigt, wie das Projekt in Bildung, Unterhaltung und Kundenservice eingesetzt werden kann.
Technische Architektur: Modularer Aufbau, flexible Erweiterbarkeit
Der Technologie-Stack von RealChar folgt einer typischen modernen Web-App-Architektur, wobei beim Einbinden von KI-Funktionen zahlreiche Innovationen vorgenommen wurden. Das System lässt sich in vier zentrale Schichten unterteilen:
Frontend-Interaktionsschicht
RealChar bietet drei Client-Varianten:
- Web-Client: Auf Basis von React.js und Vanilla JS entwickelt, nutzt WebSocket für bidirektionale Echtzeitkommunikation. Die Benutzeroberfläche ist schlicht und intuitiv und unterstützt sowohl Text- als auch Sprachmodus.
- Mobile Client: Nativ in Swift für iOS entwickelt, ebenfalls auf WebSocket basierend und bietet ein flüssiges mobiles Erlebnis. RealChar zählt zu den wenigen Open-Source-Mobile-Apps für KI-Rollen.
- Terminal-CLI: Ein Entwickler-orientierter Kommandozeilen-Client, ideal zum schnellen Testen und zur Integration.
Backend-Serviceschicht
Das Backend setzt auf das FastAPI Framework – ein hochperformantes Python-Webframework mit nativer Unterstützung für asynchrone Verarbeitung und WebSockets. FastAPI übernimmt folgende Aufgaben:
- Verwaltung von Benutzersitzungen und Rollenstatus
- Koordination der Aufrufe von LLM-Inferenz, Spracherkennung und Sprachsynthese
- Echtzeit-Push von Audio-Strömen an das Frontend über WebSocket
- Bereitstellung einer RESTful API für externe Systemintegrationen
Zur Datenspeicherung kommt SQLite (Entwicklung) bzw. PostgreSQL (Produktion) zum Einsatz; dort werden Rollenkonfigurationen, Chatverläufe und Benutzerinformationen abgelegt.
KI-Fähigkeitsschicht
Hier liegt der wahre Wettbewerbsvorteil von RealChar: Die Integration führender KI-Dienste.
Große Sprachmodelle (LLM): Unterstützung verschiedener aktueller LLMs, darunter:
- OpenAI GPT-4 / GPT-3.5
- Anthropic Claude 2
- Anyscale Llama2 (Open-Source-Modell)
- ReByte-Plattform (empfohlen, bietet einheitliche API-Schnittstelle)
- Lokale LLMs (über OpenAI-kompatible API)
Spracherkennung (STT):
- Lokaler Whisper / WhisperX (empfohlen für lokale Deployment)
- OpenAI Whisper API
- Google Speech-to-Text
Sprachsynthese (TTS):
- Edge TTS (Standard, kostenfrei)
- ElevenLabs (hohe Qualität, unterstützt Stimmklon)
- Google Text-to-Speech
Vektordatenbank: Einsatz von Chroma zur Speicherung von Rollen-Wissensbasis, ermöglicht RAG (Retrieval-Augmented Generation), sodass Rollen auf fachspezifisches Wissen zugreifen können.
Datenaufnahmeschicht
Mithilfe von LlamaIndex lässt sich Wissen aufnehmen: Dokumente, Webseiten, Datenbanken usw. werden in Vektoren umgewandelt und in Chroma abgelegt. Auf diese Weise kann man Rollen fachspezifisches Wissen vermitteln – zum Beispiel einen „Historiker“ mit historischen Texten füttern oder einen „Produktexperten“ mit Handbüchern versorgen.
Docker-Deployment: Schneller Start in 5 Minuten
RealChar stellt vollständige Docker-Unterstützung bereit – dies ist die empfohlene Installationsmethode. Der Vorgang besteht aus nur drei Schritten:
Schritt 1: Repository klonen und Umgebungsvariablen setzen
git clone https://github.com/Shaunwei/RealChar.git
cd RealChar
cp .env.example .env
Bearbeite die .env Datei und füge deine API-Schlüssel ein. Eine Minimal-Konfiguration benötigt lediglich einen LLM-API-Schlüssel:
# Variante 1: Nutzung von ReByte (empfohlen)
REBYTE_API_KEY=dein_rebyte_api_key
# Variante 2: Nutzung von OpenAI
OPENAI_API_KEY=dein_openai_api_key
# Spracherkennung-Konfiguration (empfohlen: lokaler Whisper)
SPEECH_TO_TEXT_USE=LOCAL_WHISPER
LOCAL_WHISPER_MODEL=base
# Sprachsynthese-Konfiguration (Edge TTS ist kostenfrei)
EDGE_TTS_DEFAULT_VOICE=en-US-ChristopherNeural
Schritt 2: Docker-Container starten
docker compose up
Dieser Befehl baut automatisch drei Services und startet sie:
- db: PostgreSQL-Datenbankservice
- backend: FastAPI-Backenddienst (Port 8000)
- web: React-Frontenddienst (Port 3000)
Die vollständige docker-compose.yaml sieht wie folgt aus:
version: '3.8'
services:
db:
build:
context: .
dockerfile: Dockerfile.postgres
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
PGDATA: /var/lib/postgresql/data/realchar
ports:
- '5432:5432'
volumes:
- db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
backend:
build:
context: .
dockerfile: Dockerfile
ports:
- "8000:8000"
depends_on:
db:
condition: service_healthy
env_file:
- ./.env
environment:
- DATABASE_URL=postgresql://postgres:***@db:5432/postgres
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/status"]
interval: 10s
timeout: 5s
retries: 5
web:
build:
context: ./client/next-web/
dockerfile: Dockerfile.dev
ports:
- "3000:3000"
depends_on:
backend:
condition: service_healthy
db:
condition: service_healthy
environment:
- NEXT_PUBLIC_API_HOST=http://localhost:8000
- API_HOST=http://backend:8000
volumes:
db:
driver: local
Schritt 3: Anwendung öffnen
Öffne deinen Browser und rufe http://localhost:3000 auf – dort erscheint die Weboberfläche von RealChar. Wähle ein vorgefertigtes Modell und starte das Gespräch!
Hinweise:
- Bei Nutzung von Docker Desktop (Windows/Mac) ausreichend RAM zuweisen (empfohlen 8 GB+).
- Beim ersten Start werden Abhängigkeiten und Modelle heruntergeladen – kann 10–20 Minuten dauern.
- Für Remote-Zugriff muss SSL konfiguriert werden (WebSocket erfordert HTTPS).
Python-Deployment: Entwicklerfreundlich
Falls du lieber die Python-Umgebung direkt kontrollieren möchtest (oder den Sourcecode anpassen willst), steht die Python-Deploymentsvariante zur Verfügung:
Umgebung vorbereiten
# Repository klonen
git clone https://github.com/Shaunwei/RealChar.git
cd RealChar
# Systemabhängigkeiten installieren
# macOS
brew install portaudio ffmpeg
# Ubuntu
sudo apt update
sudo apt install portaudio19-dev ffmpeg
# Virtuelle Umgebung anlegen (empfohlen)
python -m venv venv
source venv/bin/activate # Linux/macOS
# venv\\Scripts\\activate # Windows
# Python-Abhängigkeiten installieren
pip install -r requirements.txt
# (Optional) WhisperX für schnellere lokale Spracherkennung installieren
pip install git+https://github.com/m-bain/whisperX.git
Datenbank initialisieren
# SQLite-Datenbank anlegen
sqlite3 test.db "VACUUM;"
# Datenbank-Migrationen ausführen
alembic upgrade head
Dienst starten
# Umgebungsvariablen setzen
cp .env.example .env
# .env mit API-Schlüsseln editieren
# Backend starten
python cli.py run-uvicorn
# bzw. direkt uvicorn nutzen
uvicorn realtime_ai_character.main:app
# Frontend starten (neues Terminal-Fenster)
cd client/next-web
cp .env.example .env
npm install
npm run dev
Danach ist die Anwendung unter http://localhost:3000 erreichbar.
Eigene AI-Rollen erschaffen
Der Kernwert von RealChar liegt darin, dir die Erstellung einzigartiger KI-Rollen zu ermöglichen. Es gibt zwei Wege dazu:
Weg 1: Über die Web-UI erstellen (keine Programmierung nötig)
- In der Web-Oberfläche einloggen und auf „Create Character“ klicken.
- Rolleninfo ausfüllen: - Name: Rollenname - Description: Kurzbeschreibung der Rolle - Personality: Persönlichkeitsbeschreibung (z. B. „freundlich, humorvoll, geduldig“) - Background: Hintergrundgeschichte (z. B. „mittelalterlicher Ritter, nahm am Kreuzzug teil“) - Greeting: Begrüßungssatz der Rolle
- Optional: Avatar hochladen
- Stimme auswählen (bei ElevenLabs lässt sich eine bestimmte Stimme klonen)
- Auf „Save“ klicken – die Rolle wird angelegt.
Weg 2: Über Code erstellen (für Fortgeschrittene)
Im Verzeichnis realtime_ai_character/character_catalog/ eine neue YAML-Datei anlegen:
# my_character.yaml
name: "Historiker Aristoteles"
description: "Antike griechischer Philosoph, versiert in Philosophie, Wissenschaft und Politik"
personality: |
Du bist ein gebildeter antiker griechischer Philosoph, dessen Sprache von Weisheit durchzogen ist, du nutzt gerne Gleichnisse und Geschichten, um komplexe Sachverhalte zu erklären.
Du brennst für Wissen und führst das Gespräch stets dazu, den Kern der Fragen zu erfassen.
background: |
Aristoteles (384–322 v. Chr.) war ein antiker griechischer Philosoph, Schüler Platons und Lehrer Alexanders des Großen.
Seine Werke umfassen Physik, Metaphysik, Ethik, Politik, Biologie und zahlreiche weitere Gebiete.
Du glaubst, dass man durch Beobachtung und logisches Schließen das Wesen der Welt erfassen kann.
greeting: "Grüß dich, junger Wissenssuchender. Ich bin Aristoteles, lass uns gemeinsam die Geheimnisse der Wahrheit erkunden."
voice: "en-US-ChristopherNeural" # Edge TTS-Stimme
# oder ElevenLabs: voice_id: "deine_stimmen_id"
Nach dem Speichern den Backend-Dienst neustarten – die Rolle wird automatisch geladen.
Rollen um ein Wissensspeicher erweitern
RealChar unterstützt RAG (Retrieval-Augmented Generation), wodurch Rollen auf spezifisches Wissen zugreifen können:
# Wissen mittels LlamaIndex aufnehmen
from llama_index import VectorStoreIndex, SimpleDirectoryReader
from realtime_ai_character.database.chroma import get_chroma
# Dokumente einlesen
documents = SimpleDirectoryReader("knowledge_docs/").load_data()
# Vektorindex erzeugen
index = VectorStoreIndex.from_documents(documents)
# In Chroma ablegen
chroma = get_chroma()
chroma.add_character_knowledge("aristotle", index)
Nun wird, wenn du den „Aristoteles“ nach Ethik fragst, Antworten auf Basis deiner bereitgestellten Dokumente geben – statt generischer Ausführungen.
Echtzeit-Interaktionsmechanismus
Das Echtzeitgefühl ist das größte Highlight von RealChar. Der Interaktionsablauf sieht folgendermaßen aus:
Sprachinteraktionsfluss
- Benutzer spricht: Der Browser nimmt über das Mikrofon Audio auf.
- Spracherkennung: Das Audio wird per WebSocket an das Backend gesendet, dort wird mittels Whisper/WhisperX in Text umgewandelt.
- LLM-Inferenz: Der Text geht an das LLM (z. B. GPT-4), welches eine Antwort generiert.
- Sprachsynthese: Die Antwort-Text wird über ElevenLabs/Edge TTS in Audio umgewandelt.
- Echtzeit-Push: Das Audio wird über WebSocket als Stream an das Frontend gesendet und dort abgespielt.
Der gesamte Vorgang dauert typischerweise 1–3 Sekunden; die Hauptverzögerung stammt von der LLM-Inferenz und der Sprachsynthese.
Tipps zur Latenzreduktion
- GPT-3.5 statt GPT-4 verwenden (schnellere Inferenz)
- Lokaler WhisperX mit GPU einsetzen (beschleunigte lokale Spracherkennung)
- ElevenLabs V2 nutzen (schnellere TTS)
- Streamingantworten aktivieren (RealChar unterstützt dies standardmäßig)
Texteingabe
Falls du keine Sprache nutzen möchtest, kannst du direkt im Textfeld eingeben – RealChar überspringt dann Spracherkennung und -synthese und liefert eine reine Textantwort.
Anwendungsbereiche
Dank seiner flexiblen Architektur eignet sich RealChar für zahlreiche Szenarien:
1. Virtueller Assistent
Erstelle einen „Produktmanager-Assistenten“, füttere ihn mit Produktdokumenten, Nutzerfeedback und Konkurrenzanalysen. Teammitglieder können per Sprache fragen: „Was waren die größten Schmerzpunkte im Nutzerfeedback der letzten Woche?“ – der Assistent antwortet anhand seines Wissensbestands.
2. Online-Bildung
Erstelle einen „Physiklehrer Newton“, importiere Physik-Lehrbücher. Lernende können mit „Newton“ über Mechanik diskutieren und erhalten ein immersives Lernerlebnis, das Geschichte und Physik verbindet – deutlich ansprechender als reines Lehrbuchmaterial.
3. Unterhaltung und Begleitung
Erstelle einen „witzigen Stand-up-Comedian“ mit humorvollem Charakter und Hintergrund. Nutzer können plaudern, um Langeweile zu vertreiben, oder sogar „Comedy-Battles“ austragen.
4. Kundenservice-Bot
Für einen Online-Shop erstelle einen „professionellen Kundenservice Xiao Wang“, speise ihm Produktmanuals, Rückgaberegelungen und FAQs zu. Kunden können per Sprache nach Bestellstatus, Rückgabeabläufen usw. fragen – deutlich natürlicher als klassischer Text-Chat.
5. Sprachlernen
Erstelle einen „Englischlehrer Emma“ als geduldige amerikanische Lehrkraft. Lernende können ihren Sprechfluss mit Emma üben; sie korrigiert die Aussprache und gibt Lernhilfen.
Vergleich mit anderen AI-Chat-Plattformen
RealChar unterscheidet sich deutlich von gängigen AI-Chat-Produkten:
| Merkmal | RealChar | Character.AI | Einfacher Chatbot |
|---|---|---|---|
| Open Source | ✅ Vollständig offen | ❌ Geschlossen | ❌ Geschlossen |
| Sprachinteraktion | ✅ Echtzeit-Sprache | ❌ Nur Text | ❌ Nur Text |
| Selbst-hosted | ✅ Docker/Python | ❌ Nur Cloud | ❌ Nur Cloud |
| LLM-Wahl | ✅ Mehrere Modelle | ❌ Fester Modell | ❌ Fester Modell |
| Wissensbasis | ✅ RAG-Unterstützung | ❌ Begrenzt | ❌ Begrenzt |
| Stimmenklon | ✅ ElevenLabs | ❌ Nicht unterstützt | ❌ Nicht unterstützt |
| Datenschutz | ✅ Lokal-hosted | ❌ Cloud-Speicherung | ❌ Cloud-Speicherung |
| Anpassbarkeit | ✅ Hoch konfigurierbar | ⚠️ Eingeschränkt | ⚠️ Eingeschränkt |
Vorteile von RealChar: - Vollständig offen – Quellcode frei modifizierbar für spezielle Anforderungen - Echtzeit-Sprache – Echtes „Gesprächs“-Gefühl statt reinem Text-Chat - Datenschutz – Lokaler Betrieb, Daten verlassen niemals dein System - Erweiterbar – Modularer Aufbau erleichtert das Hinzufügen neuer Funktionen
Nachteile von RealChar: - Erfordert Selbst-Hosting und Wartung - Benötigt API-Schlüssel (mit möglichen Kosten) - Mobile App derzeit nur für iOS verfügbar
Zukunftsroadmap
Aufgrund der offiziellen GitHub-Roadmap von RealChar stehen folgende Schwerpunkte an:
- ✅ Sitzungsverwaltung – Unterstützung mehrstufiger Gespräche mit Kontexterhaltung
- ✅ RAG-Verbesserung – Noch leistungsfähigeres Wissensmanagement
- ✅ Agents/GPTs-Integration – Einbindung von Agent-Fähigkeiten, damit Rollen komplexe Aufgaben erledigen können
- ✅ Weitere TTS-Dienste – Unterstützung zusätzlicher Sprachsynthese-Engines
- ⏳ Multimodale Interaktion – Zukünftig möglicherweise Bild- und Video-Eingabe
- ⏳ Rollenmarktplatz – Plattform zum Teilen und Herunterladen von Rollenkonfigurationen
Die Community ist aktiv auf Discord, dort finden regelmäßige Updates und Wartungsarbeiten statt. Das Projekt ist unter der MIT-Lizenz veröffentlicht und begrüßt Beiträge von allen.
Fazit
RealChar ist ein äußerst vielversprechendes Open-Source-Projekt für Echtzeit-Rolleninteraktion mit KI. Es stellt nicht nur einen kompletten Technologie-Stack bereit, mit dem man schnell eigene KI-Rollen erstellen und bereitstellen kann, sondern bricht durch die Echtzeit-Sprachfunktion die Beschränkung rein textbasierter Chats auf.
Zielgruppe: - Alle, die personalisierte AI-Begleiter erschaffen möchten - Entwickler, die AI-Rollen-Funktionen benötigen - Unternehmen, die Wert auf Datenschutz legen und lokale Deployments bevorzugen - Forscher, die sich für AI-Agenten und Echtzeit-Interaktion interessieren
Schnellstart:
git clone https://github.com/Shaunwei/RealChar.git
cd RealChar
cp .env.example .env
# .env mit deinem API-Schlüssel füllen
docker compose up
# Anwendung unter http://localhost:3000 öffnen
Ganz gleich, ob du einen virtuellen Gesprächspartner für den Alltag suchst oder eine intelligente Kundenservice-Lösung für dein Unternehmen entwickelst – RealChar bietet eine solide Basis. Durch die offene Quelle kann die Gemeinschaft gemeinsam weiterentwickeln und stets neue, beeindruckende Anwendungen schaffen.