Wichtig: Der Krieg in der Ukraine ist noch nicht abgeschlossen. Jeden Tag vergewaltigen sich russischen Soldaten, Mord, Folter und deportieren die ukrainischen Zivilisten. Besuchen Sie diese Seite, um zu sehen, wie Sie heute die Ukraine unterstützen können.
Mit Horace können Sie einen benutzerdefinierten Chatbot mit Ihrer Wahl eines LLM und einer Reihe von Chatgpt -Plugins implementieren. Es wird als WebSocket-Server ausgeführt, sodass Sie Ihrem Web oder Ihrer mobilen App problemlos einen LLM-Chatbot hinzufügen können.
Merkmale:
none , user_http , service_httpHorace baut auf und erweitert Grace, mein ursprünglicher LLM-gestützter Chatbot. Hier wird Horace im Debug -Modus mit dem Klarna Chatgpt -Plugin ausgeführt, auf das über einen Web -Client zugegriffen wird:
cd horacepython3 -m venv ./venvsource ./venv/bin/activatepip3 install -r requirements.txtapp -Verzeichnis: cd appOPENAI_API_KEY=openai-api-key python3 main.py (ersetzen Sie openai-api-key durch Ihren OpenAI-API-Schlüssel-Holen Sie sich hier) cd horace
source ./venv/bin/activate
python3 app/horace-cli.py
client-demo/index.html in Explorer/Finder usw., um es in Ihrem Browser zu öffnen. cd horacedocker build -t horace:latest . docker run --rm
-e OPENAI_API_KEY=openai-api-key
-p 8001:8001
--name horace
horace:latest
docker exec -it horace python3 /app/horace-cli.pyclient-demo/index.html in Explorer/Finder usw., um es in Ihrem Browser zu öffnen. main.py und horace-cli.py unterstützen einige Argumente der Befehlszeile:
python3 main.py --help
usage: main.py [-h] [--host HOST] [--port PORT] [--debug]
optional arguments:
-h, --help show this help message and exit
--host HOST bind host name
--port PORT bind port number
--debug enable debug mode
python3 app/horace-cli.py --help
usage: horace-cli.py [-h] [--host HOST] [--port PORT]
optional arguments:
-h, --help show this help message and exit
--host HOST server host name
--port PORT server port number
Im Moment wird nur das OpenAI -API -Backend unterstützt. (Ich bin mir der nicht geöffneten LLMs nicht bewusst, wobei der Anweisungsniveau derzeit für Plugin-Aufruf ausreicht.) Das Hinzufügen eines benutzerdefinierten LLM-Backends mit Horace ist jedoch recht einfach:
Backend -Basis in backends/backend.py und implementieren Sie die complete() -Methodebackends -Verzeichnismain.py einen Import des neuen Moduls hinzuBACKENDS -Mapping in main.py an, um den Alias und den Klassennamen Ihres neuen Backends einzuschließenconfig.yaml : backend:
name: my_llm_backend
Weitere Informationen finden Sie im OpenAI -API -Backend ( backends/openai_backend.py ) als Beispiel.
Mit dem OpenAI -API -Backend können Sie zwischen den folgenden Modellen wechseln:
Siehe config.yaml zum Umschalten zwischen den OpenAI -API -Modellen.
Horace funktioniert mit Chatgpt -Plugins aus der Box. Um ein Plugin zu aktivieren, fügen Sie seinen Hostnamen mit einer optionalen Portnummer in den Abschnitt plugins in config.yaml hinzu:
router:
plugins:
# For https://github.com/artmatsak/chatgpt-todo-plugin/
# - localhost:5002
- www.klarna.com
Zu Beginn fordert der Server für jedes Plugin http://[hostname]/.well-known/ai-plugin.json und nimmt es von dort aus, um sie zu laden.
Horace unterstützt derzeit die methodien von none , user_http und server_http Auth für ChatGPT -Plugins. Wenn für ein Plugin ein Auth -Token erforderlich ist, fragt Horace Sie beim Start des Servers um einen. Im Moment werden Auth -Token unverschlüsselt in .plugin_auth.json gerettet.
Die Standard -LLM -Eingabeaufforderung für Horace ist so ausgelegt, dass der Bot neutral wird. Der Bot ist weder auf Plugin-betroffene Benutzeranfragen beschränkt (wie zum Beispiel ein Restaurantbuchungsbot), noch proaktiv die Plugin-fähige Funktionalität auf den Benutzer. Mit anderen Worten, Sie können mit dem Bot chatten, wie Sie es normalerweise mit Chatgpt tun würden. Wenn der Bot das Gefühl hat, dass das Aufrufen einer Plugin -Methode erforderlich ist, wird dies geschieht.
In realen Szenarien möchten Sie den Bot möglicherweise auf ein bestimmtes Zielfernrohr beschränken, wie die Buchung einer Tabelle (siehe Grace's Aufforderung zur Inspiration) oder ihm eine einzigartige Stimme/Persönlichkeit zur Verfügung stellen. Zu diesem Zweck können Sie der LLM -Eingabeaufforderung Anweisungen mit der Eigenschaft extra_instructions in config.yaml hinzufügen:
horace:
# Any extra instructions to prepend the prompt with
extra_instructions: >-
You are a helpful and polite AI assistant.
# extra_instructions: >-
# In your speech, you impersonate Jedi Master Yoda and crack jokes in response
# to mentions of other Star Wars characters.
Versuchen Sie, den Yoda -Block oben zu kontrollieren, um zu sehen, wie sich die Stimme des Chatbot entsprechend ändert. (Vergessen Sie nicht, den Server neu zu starten, nachdem Sie Änderungen an der Konfiguration vorgenommen haben.)
Die Tests wurden seit der Gnade von Grace noch nicht aktualisiert. Reparieren.