feat: make Telegram relay delivery opt-in
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
# Hermes Relay v3.2
|
||||
# Hermes Relay v3.3
|
||||
|
||||
Snelle Quart-bridge tussen Node-RED en een warme Hermes Agent.
|
||||
|
||||
```text
|
||||
Node-RED ──POST /ask──▶ Quart relay ──serialized call──▶ warme Hermes-agent
|
||||
│
|
||||
├── JSON direct terug naar Node-RED
|
||||
└── Telegram-bezorging op de achtergrond via `hermes send`
|
||||
└── JSON direct terug naar Node-RED
|
||||
|
||||
Optioneel: Telegram-bezorging via `hermes send` (standaard uit)
|
||||
```
|
||||
|
||||
## Gedrag en grenzen
|
||||
@@ -14,8 +15,9 @@ Node-RED ──POST /ask──▶ Quart relay ──serialized call──▶ war
|
||||
- **Warme agent:** Hermes wordt tijdens startup geladen/geïnitialiseerd.
|
||||
- **Veilige concurrency:** de gedeelde, mutable agent verwerkt precies één LLM-call tegelijk. Overige HTTP-verzoeken wachten in de queue; ze kunnen niet elkaars `messages` resetten.
|
||||
- **Timeout:** `HERMES_RELAY_TIMEOUT` (standaard 120 s) omvat wachttijd plus LLM-call. Een timeout retourneert HTTP `504`.
|
||||
- **Snelle response:** Telegram ligt niet meer in het HTTP-pad. Een succesvolle `/ask` reageert zodra het model antwoordt.
|
||||
- **Background delivery:** Telegram wordt betrouwbaar gelogd. Bij gecontroleerde shutdown wacht de service op lopende bezorgingen.
|
||||
- **Snelle response:** Een succesvolle `/ask` reageert zodra het model antwoordt.
|
||||
- **Geen chatbezorging standaard:** relay-antwoorden blijven in de HTTP-response en verschijnen dus niet in Telegram.
|
||||
- **Optionele Telegram-bezorging:** alleen met `HERMES_RELAY_TELEGRAM_DELIVERY_ENABLED=true` wordt het antwoord asynchroon via `hermes send` bezorgd. Bij een gecontroleerde shutdown wacht de service op lopende bezorgingen.
|
||||
|
||||
## Endpoints
|
||||
|
||||
@@ -36,11 +38,11 @@ Succesresponse:
|
||||
"elapsed_seconds": 6.213,
|
||||
"llm_elapsed_seconds": 6.213,
|
||||
"request_elapsed_seconds": 6.214,
|
||||
"telegram_queued": true
|
||||
"telegram_queued": false
|
||||
}
|
||||
```
|
||||
|
||||
`elapsed_seconds` blijft aanwezig voor compatibiliteit en is de LLM-duur. `request_elapsed_seconds` is de feitelijke HTTP-duur. `telegram_queued` betekent dat bezorging geaccepteerd is voor de achtergrondtaak; raadpleeg journald voor het uiteindelijke bezorgresultaat.
|
||||
`elapsed_seconds` blijft aanwezig voor compatibiliteit en is de LLM-duur. `request_elapsed_seconds` is de feitelijke HTTP-duur. `telegram_queued` is standaard `false`; bij expliciet ingeschakelde Telegram-bezorging betekent `true` dat de achtergrondtaak is ingepland. Raadpleeg dan journald voor het uiteindelijke bezorgresultaat.
|
||||
|
||||
Fouten: `400` lege payload, `413` payload groter dan limiet, `504` timeout, `502` onverwachte agentfout.
|
||||
|
||||
@@ -55,7 +57,8 @@ Geeft service-status, versie en het aantal lopende Telegram-bezorgingen terug.
|
||||
| Variabele | Standaard | Betekenis |
|
||||
|---|---:|---|
|
||||
| `HERMES_RELAY_TIMEOUT` | `120` | Max. wachttijd + modelcall per HTTP-request |
|
||||
| `HERMES_RELAY_DELIVERY_WORKERS` | `2` | Begrensde workers voor Telegram-bezorging |
|
||||
| `HERMES_RELAY_TELEGRAM_DELIVERY_ENABLED` | `false` | Zet alleen op `true` voor asynchrone Telegram-bezorging |
|
||||
| `HERMES_RELAY_DELIVERY_WORKERS` | `2` | Begrensde workers voor Telegram-bezorging als die is ingeschakeld |
|
||||
| `HERMES_RELAY_MAX_PAYLOAD_CHARS` | `12000` | Maximale lengte van `payload` |
|
||||
| `HERMES_RELAY_MAX_TURNS` | `10` | Agent turn-budget |
|
||||
| `HERMES_RELAY_MODEL` | profieldefault | Optionele modelovertuiging |
|
||||
|
||||
Reference in New Issue
Block a user