
Pippa ist ein Open-Source-Chatbot-Projekt (Open-Source großes Sprachmodell), das auf dem Langchain-Framework basiert. Ziel ist es, eine personalisierte und adaptive Konversationserfahrung zu bieten.
PIPPA enthält verschiedene Funktionen, um den Anpassungsprozess zu verbessern, einschließlich der Möglichkeit, die Persönlichkeit des Chatbots anzupassen, Dokumente für das Lernen aufzunehmen, den Gesprächsverlauf zu erinnern, zwischen verschiedenen Charakteren zu wechseln und sich an die Bedürfnisse des Benutzers anzupassen.
Das Abruf -QA -Modul wurde von LocalGPT durch prompte Engineering inspiriert.
Das PIPPA -Projekt begann als persönliches Hobby, um die Möglichkeit zu untersuchen, einen AI -Tochtercharakter zu schaffen. Obwohl das Projekt noch in den frühen Phasen ist, wird es regelmäßig mit neuen Funktionen und Verbesserungen aktualisiert. Die Standardrollen in PIPPA sind "System" für Systemmeldungen, "Pippa" als fürsorgliche Tochtercharakter und "Bundy" als ihr Vater.
Bei Verwendung von TTS/STT -Motoren verwendet Pippa die Elevenlabs -API. Sie können sich für ein kostenloses Konto anmelden: https://elevenlabs.io.
Für eine bessere Erfahrung weisen Sie den Charakteren einzigartige Stimmen zu.
Getestet mit Python 3.10.
Befolgen Sie die folgenden Schritte, um PIPPA zu installieren:
git clone https://github.com/neobundy/pippaGPT.git cd pippaGPT pip install -r requirements.txtHinweis: Wenn Sie auf Fehler stoßen, müssen Sie möglicherweise zusätzliche Abhängigkeiten wie
ffmpegundportaudioinstallieren. Auf macOS können Sie Homebrew verwenden.Um sie zu installieren, führen Sie die folgenden Befehle aus:
brew install ffmpeg brew install portaudio
env_sample in .env -Datei im Stammordner des Projekts und fügen Sie Ihre API -Schlüssel hinzu:Beachten Sie, dass Hugging_face_API_Key für die zukünftige Verwendung dient.
OPENAI_API_KEY=
XI_API_KEY=
HUGGING_FACE_API_KEY=
SERPAPI_API_KEY=Alternativ können Sie diese Umgebungsvariablen in Ihr Terminal exportieren.
Kopieren Sie characters_samply.py in characters.py und bearbeiten Sie die Datei, um den Namen und die Persönlichkeit Ihrer KI anzupassen.
Kopieren Sie settings_private_sample.py in settings_private.py . settings_sample.py an settings.py und bearbeiten Sie die Dateien, um Ihre Einstellungen anzupassen.
Wählen Sie das LLMS -Modell in der Datei settings.py : PY:
DEFAULT_GPT_MODEL = "gpt-3.5-turbo"
DEFAULT_GPT_HELPER_MODEL = "gpt-3.5-turbo-16k"
DEFAULT_GPT_QA_HELPER_MODEL = "gpt-3.5-turbo-16k"Großer Kontext braucht mehr Token. 16K -Token reichen für die meisten Fälle aus.
Das GPT-4-Modell für default_gpt_model ist für eine bessere Erfahrung sehr empfohlen. Beachten Sie jedoch, dass es 10x teuer ist und nur für vorbezahlte OpenAI-Konten verfügbar ist.
settings_private.py wie ZEP Vector Store Server oder Audio Server-URLs enthalten sind. ZEP_API_URL = "http://localhost:8000"
DEFAULT_MEMORY_TYPE = "Summary Buffer"
AUDIO_SERVER_URL = "http://localhost:5000" Standardmäßig wird Langchains "Summary Buffer" -Sache verwendet, um den Konversationskontext beizubehalten.
Pippa unterstützt sechs Arten von Erinnerungen:
ZEP wird für einen großen Kontext sehr empfohlen. Es kann lokal als Docker -Container ausgeführt werden. Bearbeiten Sie die settings_private.py .
Zusammenfassungen werden angezeigt, wenn der Summary -Typ -Speicher einschließlich ZEP ausgewählt ist. Zusammenfassungen werden vom Summarization GTP -Helfermodell erzeugt.
Beachten Sie, dass es eine Weile dauert, bis ZEP Zusammenfassungen indexiert und generiert. Wenn Sie nicht bereit sind, "zusammenfassen ... Bitte seien Sie geduldig." Nachricht erscheint.
ZEP_API_URL = "http://localhost:8000" Der Zep Server kann auf jedem Host oder Port ausgeführt werden. Wenn Sie es auf einem anderen Host ausführen, sollten Sie die Variable ZEP_API_URL in settings_private.py aktualisieren.
Besuchen Sie https://www.getzep.com/, um zu erfahren, wie man Zep ausführt.
Verwenden Sie den folgenden Befehl, um die PIPPA -App auszuführen:
streamlit run main.py Die App startet automatisch den Audio -Server, der auf Port 5000 hört. Bei Bedarf können Sie den Audio -Server manuell ausführen, indem Sie audio_server.py ausführen.
Um Ihre eigenen Dokumente für PIPPA zu nehmen, folgen Sie folgenden Schritten:
docs .vectordb.py aus, um Ihre Vektor -Datenbank zu erstellen: python vectordb.pyWenn Sie eine Elevenlabs-API-Schlüssel haben, können Sie den TTS-Motor (Text-to-Speech) mit PIPPA verwenden.
STT (Sprach-zu-Text) wird vom OpenAIs Whisper-1-Modell behandelt.
Folgen Sie folgenden Schritten:
tts.py aus, um die verfügbaren Sprachnamen und IDs aus Ihrem ElevenLabs -Konto zu erhalten: python tts.py Aktualisieren Sie die folgenden Variablen in der settings_private.py mit den entsprechenden Sprach -IDs:
VOICE_ID_AI = ""
VOICE_ID_SYSTEM = ""
VOICE_ID_HUMAN = ""audio_server.py ausführen. Sie können die in PIPPA verwendeten Eingabeaufforderungsschlüsselwortpräfixe anpassen, indem Sie die Datei settings.py bearbeiten:
PROMPT_KEYWORD_PREFIX_SYSTEM : Wird für temporäre Systemnachrichten verwendet (Standard: "System:")PROMPT_KEYWORD_PREFIX_CI : Wird zum Ersetzen benutzerdefinierter Anweisungen verwendet (Standard: "CI:")PROMPT_KEYWORD_PREFIX_QA : Wird zum Abrufen von QA basierend auf Ihren Dokumenten im Ordner docs (Standard: "QA:") verwendetPROMPT_KEYWORD_PREFIX_GOOGLE : Wird zum Durchsuchen des Webs für bestimmte Informationen verwendet (Standard: "Google:")PROMPT_KEYWORD_PREFIX_WIKI : verwendet zur Suche von Wikipedia (Standard: "Wiki:")PROMPT_KEYWORD_PREFIX_MATH : Wird für die mathematische Abfrage verwendet (Standard: "Math:")PROMPT_KEYWORD_PREFIX_MIDJOURNEY : Wird zur Generierung von MidJourney -Eingaben verwendet (Standard: "Midjourney:") Streaming ist standardmäßig aktiviert. Um es zu deaktivieren, ändern Sie die Datei Einstellungen.Py wie folgt:
STREAMING_ENABLED = TrueWenn das Streaming aktiviert ist, sind die Kosten Annäherungen, die auf OpenAIs Dokumentation basieren. Um genaue Kosten zu erhalten, müssen Sie das Streaming deaktivieren.
Beachten Sie, dass die Kostenberechnung keine anderen Ausgaben enthält, die durch Hilfsmodelle entstehen, z. B. für die Zusammenfassung und die QS.
Stellen Sie die folgende Konstante in settings.py ein. PY:
DEFAULT_GPT_AGENT_HELPER_MODEL = "gpt-4" MAX_AGENTS_ITERATIONS = 8Die Anzahl der Iterationen bestimmt, wie oft der Agent ausgeführt wird. Eine höhere Anzahl von Iterationen führt im Allgemeinen zu genaueren Antworten, verbraucht aber auch mehr Token.
Bitte beachten Sie, dass der Google -Suchagal möglicherweise mehrere Abfragen ausführen muss, um die beste Antwort zu erhalten.
Wenn Sie beispielsweise fragen: "Wer ist der älteste unter den Bundesstaat Südkorea, den USA und Japan?"
Das gleiche Modell kann unterschiedlich auf dieselbe Abfrage reagieren. Sogar 'GPT-4' führt nicht immer das Beste aus, sondern sehr zu empfehlen. Experimentieren mit verschiedenen Modellen.
Beachten Sie, dass es selbst auf Langchain -Ebene sehr experimentell ist. Es kann nicht wie erwartet funktionieren.
Es ist eine Hit-or-Miss-Situation, abhängig von Ihren Aufforderungsfähigkeiten. Sie benötigen einen Serpapi -API -Schlüssel, um die Google -Suchfunktion zu verwenden: https://serpapi.com. Die bereitgestellte endgültige Antwort dient als Zwischenaufforderung für das Hauptmodell.
Der Agent versucht zunächst, die relevante Wikipedia -Seite für die angegebene Abfrage zu finden. Wenn gefunden, wird die Zusammenfassung der Seite zurückgegeben und nach dem spezifischen Begriff innerhalb der Zusammenfassung gesucht.
LLMs sind nicht für ihre Mathematikkenntnisse bekannt. Der Mathematikvertreter bietet genaue Antworten auf hochkomplexe mathematische Probleme.
Führen Sie das Skript vectordb.py aus, um die Vektor -Datenbank zu verwalten.
python vectordb.pySie haben die folgenden Optionen:
settings.CHROMA_DB_FOLDER -Ordner mit einer Sammlung mit dem Namen settings.VECTORDB_COLLECTION .settings.CONVERSATION_SAVE_FOLDER CONVERSATION_SAVE_FOLDER-Ordner in die Vektordatenbank, um als Langzeitspeicher zu dienen. Beachten Sie, dass bei der Auswahl der Option (e) MBED -Konversationen nur die vorhandenen exportierten Konversationen *.json in die Vektor -Datenbank eingebettet werden, ausgenommen snapshot.json .
Wenn Sie beim Ausführen der App auf Fehler stoßen, versuchen Sie die folgenden Schritte aus:
pip install --upgrade charset_normalizer
pip install --upgrade openai
pip install --upgrade langchain
Pippa wird unter der Apache 2.0 -Lizenz veröffentlicht. Fühlen Sie sich frei, den Code für persönliche oder kommerzielle Zwecke zu verwenden, zu ändern und zu verteilen.