# 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 ```