117 lines
3.4 KiB
Markdown
117 lines
3.4 KiB
Markdown
# TrapGPT Guide
|
|
|
|
TrapGPT est un programme TrapOS qui ecoute le chat Minecraft avec une Chat Box Advanced Peripherals, envoie les nouveaux messages a `opencode serve`, puis repond tres brievement dans le chat.
|
|
|
|
## Prerequis
|
|
|
|
- Une Chat Box Advanced Peripherals connectee au computer.
|
|
- TrapOS installe. Le package complet `trapos` inclut `trapos-ai`; sinon installe `trapos-ai` separement.
|
|
- Un serveur `opencode serve` accessible depuis ComputerCraft HTTP.
|
|
- HTTP active cote serveur Minecraft/ComputerCraft.
|
|
|
|
Voir aussi [`opencode_server_guide.md`](opencode_server_guide.md) pour lancer `opencode serve`.
|
|
|
|
## Configuration In-Game
|
|
|
|
Dans le computer qui porte la chatbox, configure l'URL du serveur opencode:
|
|
|
|
```lua
|
|
set opencc.server_url http://host:port
|
|
set opencc.username opencode
|
|
```
|
|
|
|
Si ton serveur opencode demande un mot de passe Basic Auth:
|
|
|
|
```lua
|
|
set opencc.password ton_mot_de_passe
|
|
```
|
|
|
|
TrapGPT utilise les memes settings `opencc.*` que le programme `ai`. Il profite aussi de `opencc.provider_id` et `opencc.model_id`; quand ils sont configures, `libai` utilise l'endpoint async de opencode et evite mieux les timeouts HTTP longs.
|
|
|
|
```lua
|
|
set opencc.provider_id anthropic
|
|
set opencc.model_id claude-opus-4-7
|
|
```
|
|
|
|
Settings optionnels pour TrapGPT:
|
|
|
|
```lua
|
|
set trapgpt.throttle_seconds 5
|
|
set trapgpt.max_reply_chars 160
|
|
set trapgpt.prefix TrapGPT
|
|
```
|
|
|
|
## Lancement
|
|
|
|
Depuis le shell CraftOS:
|
|
|
|
```lua
|
|
trapgpt
|
|
```
|
|
|
|
Le programme affiche:
|
|
|
|
```text
|
|
trapgpt listening
|
|
```
|
|
|
|
Ensuite, parle normalement dans le chat Minecraft. TrapGPT collecte les messages, attend le throttle, envoie les nouveaux messages au LLM, puis poste une reponse courte dans le chat.
|
|
|
|
## Comportement
|
|
|
|
- TrapGPT ecoute pour l'instant seulement les messages joueur `chat`.
|
|
- Les morts et connexions seront ajoutes plus tard.
|
|
- Les messages caches, vides, ou envoyes avec le meme nom que `trapgpt.prefix` sont ignores.
|
|
- Quand `messageUtf8` est fourni par l'evenement `chat`, TrapGPT l'utilise a la place de `message`.
|
|
- Il ne lance jamais deux appels LLM en meme temps.
|
|
- Les messages recus pendant un appel opencode sont gardes en queue.
|
|
- Si plusieurs messages sont en queue, ils sont envoyes ensemble au batch suivant.
|
|
- Si l'appel opencode echoue, la queue est conservee pour un prochain essai.
|
|
- La session opencode est separee du programme `ai`: elle utilise `trapgpt.opencc.session_id` et le titre de session `trapgpt`.
|
|
- Si le LLM repond exactement `SILENCE`, rien n'est envoye dans le chat.
|
|
- Les reponses sont tronquees a `trapgpt.max_reply_chars` caracteres.
|
|
|
|
## Redemarrer Une Session TrapGPT
|
|
|
|
Si tu veux repartir avec une nouvelle conversation opencode pour TrapGPT:
|
|
|
|
```lua
|
|
lua
|
|
require('/apis/libai')().clearSession({ sessionSettingKey = 'trapgpt.opencc.session_id' })
|
|
exit()
|
|
```
|
|
|
|
Puis relance:
|
|
|
|
```lua
|
|
trapgpt
|
|
```
|
|
|
|
## Depannage
|
|
|
|
Si `chat_box peripheral not found` apparait:
|
|
|
|
- Verifie que la Chat Box est bien collee/connectee au computer.
|
|
- En 1.21.1+, le nom de peripheral attendu est souvent `chat_box`.
|
|
- Sur anciennes versions, TrapGPT tente aussi `chatBox`.
|
|
|
|
Si TrapGPT ne repond pas:
|
|
|
|
- Verifie `opencc.server_url`.
|
|
- Verifie que `opencode serve` tourne.
|
|
- Verifie que HTTP est autorise dans la config ComputerCraft.
|
|
- Attends au moins `trapgpt.throttle_seconds` secondes.
|
|
- Le LLM peut aussi avoir repondu `SILENCE`, donc rien n'est poste.
|
|
|
|
Pour voir la version installee:
|
|
|
|
```lua
|
|
trapgpt --version
|
|
```
|
|
|
|
Pour afficher l'aide:
|
|
|
|
```lua
|
|
trapgpt --help
|
|
```
|