IMPORTANTE: La guerra en Ucrania aún está en curso. Todos los días, los soldados rusos violan, asesinan, tortura y deportan a civiles ucranianos. Visite esta página para ver cómo puede apoyar a Ucrania hoy.
Horace le permite implementar un chatbot personalizado con su elección de un LLM y un conjunto de complementos ChatGPT. Se ejecuta como un servidor WebSocket, lo que le permite agregar fácilmente un chatbot con alimentación de LLM a su web o aplicación móvil.
Características:
none , user_http , service_httpHorace se basa y extiende Grace, mi chatbot original con alimentación de LLM. Aquí está Horace que se ejecuta en modo de depuración con el complemento Klarna ChatGPT, accedido a través de un cliente web:
cd horacepython3 -m venv ./venvsource ./venv/bin/activatepip3 install -r requirements.txtapp : cd appOPENAI_API_KEY=openai-api-key python3 main.py (reemplace openai-api-key con su tecla API OpenAI-consíguelo aquí) cd horace
source ./venv/bin/activate
python3 app/horace-cli.py
client-demo/index.html en Explorer/Finder, etc. para abrirlo en su navegador. 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 en Explorer/Finder, etc. para abrirlo en su navegador. main.py y horace-cli.py admite algunos argumentos de línea de comandos:
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
Por el momento, solo se admite el backend de la API de Operai. (No conozco a LLM no openai con un nivel de instrucciones suficiente para la invocación de complementos en este momento). Sin embargo, agregar un backend personalizado de LLM con Horace es bastante sencillo:
Backend ubicada en backends/backend.py e implementar el método complete()backendsmain.pyBACKENDS en main.py para incluir el alias y el nombre de la clase de su nuevo backendconfig.yaml : backend:
name: my_llm_backend
Consulte el backend de la API de OpenAI ( backends/openai_backend.py ) como ejemplo.
El backend de la API de OpenAI le permite cambiar entre los siguientes modelos:
Consulte config.yaml para cambiar entre los modelos API de OpenAI.
Horace funciona con complementos ChatGPT fuera de la caja. Para habilitar un complemento, agregue su nombre de host con un número de puerto opcional a la sección plugins en config.yaml :
router:
plugins:
# For https://github.com/artmatsak/chatgpt-todo-plugin/
# - localhost:5002
- www.klarna.com
Al comenzar, el servidor solicita http://[hostname]/.well-known/ai-plugin.json para cada complemento y lo toma desde allí para cargarlos.
Horace actualmente admite los métodos de autenticación none , user_http y server_http para complementos CHATGPT. Si se requiere un token de autenticación para un complemento, Horace le pide uno durante el inicio del servidor. Por el momento, los tokens de autenticación se guardan sin cifrar en .plugin_auth.json .
La solicitud de LLM predeterminada para Horace está diseñada para hacer que el bot neutral. El bot no se limita a las solicitudes de usuario facilitadas por complementos (como un bot de reserva de restaurantes estaría, por ejemplo), ni impulsa proactivamente la funcionalidad habilitada para complementos en el usuario. En otras palabras, puedes chatear con el bot como lo harías normalmente con chatgpt; Si el bot siente que se necesita invocar un método de complemento, lo hará.
En escenarios del mundo real, es posible que desee limitar el bot a un alcance particular como reservar una mesa (ver la solicitud de gracia para inspirarse), o tal vez proporcionarle una voz/personalidad única. Para hacer esto, puede agregar instrucciones a la solicitud de LLM utilizando la propiedad extra_instructions en config.yaml :
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.
Intente descomodar el bloque Yoda arriba para ver cómo cambia la voz del chatbot en consecuencia. (No olvide reiniciar el servidor después de hacer cualquier cambio en la configuración).
Las pruebas aún no se han actualizado desde que el bifurcado de Grace. Para ser arreglado.