Skip to content

htsago/luciabot

Repository files navigation

Lucia: Ein interaktiver KI-basierter Sprachdienst

Lucia ist ein Flask-basiertes Projekt, das Nutzern ermöglicht, mit einer KI zu interagieren, die Fragen beantwortet, Texte analysiert und Antworten in Audioform bereitstellt. Dieses System kombiniert Text- und Spracherkennung mit generativer KI und Text-to-Speech (TTS)-Technologie, um eine immersive Benutzererfahrung zu schaffen.

Funktionsweise

Lucia bietet folgende Funktionen:

  1. Audioverarbeitung: Hochgeladene Audiodateien werden transkribiert.
  2. Textverarbeitung: Die transkribierten Inhalte werden analysiert und beantwortet.
  3. Sprachausgabe: Die Antwort wird synthetisiert und als Audio zurückgegeben.

Technologie-Stack

  • Flask: Für die API-Erstellung und das Servieren von Dateien.
  • Flask-CORS: Ermöglicht Cross-Origin Resource Sharing.
  • LangChain: Ermöglicht die Nutzung von LLMs (Large Language Models) wie OpenAI.
  • OpenAI API: Für Textgenerierung und Sprachtranskription.
  • Microsoft Edge TTS: Text-to-Speech-Synthese.
  • asyncio: Für asynchrone Verarbeitung.
  • base64: Kodierung der Audiodateien in Base64-Format.

Installation

1. Klone das Repository

git clone [email protected]:htsago/luciabot.git
cd luciabot

2. Erstelle eine virtuelle Umgebung

python3 -m venv venv
source venv/bin/activate  # Für Linux/Mac
venv\Scripts\activate     # Für Windows

3. Installiere die Abhängigkeiten

pip install -r requirements.txt

Konfiguration

  1. API-Key für OpenAI:

    • Speichere deinen API-Key in der Umgebungsvariable OPENAI_API_KEY.
    • Füge folgende Zeile zu ~/.bashrc oder ~/.zshrc hinzu (Linux/Mac):
      export OPENAI_API_KEY="DEIN_API_KEY"
      Lade die Änderungen:
      source ~/.bashrc
    • Für Windows:
      set OPENAI_API_KEY=DEIN_API_KEY
  2. Index-HTML-Datei: Stelle sicher, dass sich eine index.html im Verzeichnis templates/ befindet.


Nutzung

Starte den Server

python app.py

Endpunkte

1. /: Liefert die index.html-Datei aus.

  • Methode: GET
  • Rückgabe: Statische HTML-Seite.

2. /process_audio: Verarbeitet eine Audiodatei.

  • Methode: POST
  • Daten: audio_data (Hochgeladene Datei)
  • Antwort:
    • user_text: Transkribierter Text.
    • assistant_text: Antwort der KI.
    • audio: Base64-kodierte Audioantwort.

Code-Übersicht

Hauptkomponenten

  1. PromptTemplate: Konfiguriert den Interaktionsstil von Lucia.
  2. LLMChain: Implementiert die Logik zur Verarbeitung von Nutzeranfragen.
  3. Synthesize Speech: Generiert eine Audioausgabe basierend auf Text.

Beispiel-Prompt:

Dein Dienstname ist "Lucia" und du beantwortest die Fragen von Nutzern in einem Ton und Akzent.
{history}
Human: {human_input}
Assistant:

Abhängigkeiten

Eine vollständige Liste der Bibliotheken findest du in der Datei requirements.txt. Wichtigste Abhängigkeiten sind:

  • Flask
  • Flask-CORS
  • openai
  • langchain-community
  • langchain-core
  • edge-tts

Fehlerbehandlung

Falls ein Fehler auftritt, gibt die API:

  • HTTP 400: Bei ungültigen Anfragen (z. B. fehlende Audiodateien).
  • HTTP 500: Bei internen Verarbeitungsfehlern.

Ressourcen

About

luciabot

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published