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.
Lucia bietet folgende Funktionen:
- Audioverarbeitung: Hochgeladene Audiodateien werden transkribiert.
- Textverarbeitung: Die transkribierten Inhalte werden analysiert und beantwortet.
- Sprachausgabe: Die Antwort wird synthetisiert und als Audio zurückgegeben.
- 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.
git clone [email protected]:htsago/luciabot.git
cd luciabotpython3 -m venv venv
source venv/bin/activate # Für Linux/Mac
venv\Scripts\activate # Für Windowspip install -r requirements.txt-
API-Key für OpenAI:
- Speichere deinen API-Key in der Umgebungsvariable
OPENAI_API_KEY. - Füge folgende Zeile zu
~/.bashrcoder~/.zshrchinzu (Linux/Mac):Lade die Änderungen:export OPENAI_API_KEY="DEIN_API_KEY"
source ~/.bashrc
- Für Windows:
set OPENAI_API_KEY=DEIN_API_KEY
- Speichere deinen API-Key in der Umgebungsvariable
-
Index-HTML-Datei: Stelle sicher, dass sich eine
index.htmlim Verzeichnistemplates/befindet.
python app.py- Methode:
GET - Rückgabe: Statische HTML-Seite.
- Methode:
POST - Daten:
audio_data(Hochgeladene Datei) - Antwort:
user_text: Transkribierter Text.assistant_text: Antwort der KI.audio: Base64-kodierte Audioantwort.
- PromptTemplate: Konfiguriert den Interaktionsstil von Lucia.
- LLMChain: Implementiert die Logik zur Verarbeitung von Nutzeranfragen.
- Synthesize Speech: Generiert eine Audioausgabe basierend auf Text.
Dein Dienstname ist "Lucia" und du beantwortest die Fragen von Nutzern in einem Ton und Akzent.
{history}
Human: {human_input}
Assistant:
Eine vollständige Liste der Bibliotheken findest du in der Datei requirements.txt. Wichtigste Abhängigkeiten sind:
FlaskFlask-CORSopenailangchain-communitylangchain-coreedge-tts
Falls ein Fehler auftritt, gibt die API:
- HTTP 400: Bei ungültigen Anfragen (z. B. fehlende Audiodateien).
- HTTP 500: Bei internen Verarbeitungsfehlern.
- Flask Dokumentation: https://flask.palletsprojects.com/
- OpenAI API: https://platform.openai.com/docs/
- Edge TTS: https://github.com/replicate/edge-tts
- LangChain: https://www.langchain.com/