Plugin Discord
Plugin Discord propojuje Elowen s Discordem. Nainstalujte ho v Nastavení → Pluginy → Dostupné pluginy. Detail pluginu obsahuje jeho nastavení. Instalace, zapnutí nebo vypnutí pluginu se projeví po restartu Elowen; některá nastavení a přepisy pro jednotlivé kanály platí okamžitě. Každodenní příkazy a chování kanálů najdete v části Discord. Společné pojmy pro všechny chatovací platformy jsou v přehledu Pluginy pro chatovací platformy.
Aktuální verzi pluginu najdete v registru. Vyžaduje odpovídající vydání jádra Elowen 0.30.7 se sdíleným API verze 14.
Plugin může instalovat, zapínat a konfigurovat jen administrátor. Token bota se ukládá jako tajná hodnota; jeho nastavení ukazuje jen to, zda je token nastavený, ne jeho hodnotu. Nástroje bota tento token používají a selhávají, dokud se bot k Discordu nedostane.
Instalace a připojení
Vytvořte bota v Discord Developer Portal, zkopírujte jeho token a povolte privilegovaný záměr Message Content. Povolte i Server Members, pokud má bot vypisovat členy serveru. Pozvěte bota s oprávněními Discordu, která pro svou práci potřebuje, potom nainstalujte plugin, zadejte token v Nastavení → Přístupy → Discord a nastavte alespoň jednu zásadu rolí v Nastavení → Pluginy → Discord. Zapnutím plugin připojíte. Příkazy bota zahrnují /model, /reasoning, /display, /new a /help. Registrují se i sdílené příkazy chatu, které publikuje démon, například /context, /compact, /fast, /stop, /stats a /restart; jejich chování patří do základní sady příkazů. /display mění prezentaci kanálu a vyžaduje roli operátora. Pokud není token nastavený, plugin se nepřipojí a jeho nástroje pro platformu nejsou dostupné. Přímé zprávy a skupinové DM Discordu se ignorují. Výběr cíle oznámení potřebuje token bota a ID serveru; bez nich nezobrazí žádné cíle.
O tom, komu bot odpovídá, rozhoduje zásada rolí; může také dodat pokyny pro sdílenou místnost. Nastavte alespoň jednu zásadu. Platí první odpovídající pojmenovaná zásada. Pravidlo * pro všechny se vyhodnocuje až po pojmenovaných pravidlech, ať je jeho pořadí jakékoli, ale na konci udrží pořadí přehledné. Zprávy odesílatele, který neodpovídá žádné zásadě, se ignorují. Zásada nenahrazuje identitu: odesílatel také potřebuje propojený účet Elowen, jehož přístup k Projektům a oprávnění nástrojů platí pro dané kolo.
Každý příkaz s lomítkem, včetně /new a /help, před spuštěním zkontroluje aktuální zásadu rolí člena. Člen bez přiřazení dostane soukromé odmítnutí a nemůže obnovit sdílenou konverzaci. Každé tlačítko, odeslání volby a změna stránky výběru znovu kontrolují tento přístup, takže ztráta přiřazené role zavře i už otevřený výběr. Odmítnutá interakce s výběrem aktualizuje jen svou soukromou odpověď; odmítnutá interakce s otázkou pošle soukromé oznámení a sdílenou otázku ponechá beze změny. Příkazy vyžadující operátora stále kontrolují administrátorský příznak zásady.
Každý kanál má vlastní konverzaci a může mít vlastní model a nastavení zobrazení. Novou konverzaci tam začnete příkazem /new. Příkaz /context může do chatu platformy přinést jednu z vašich konverzací. Obrázky se posílají nastavenému modelu pro obrázky; na ostatní přílohy platí níže uvedené limity médií. Soubory, které agent sdílí, se přiloží k odpovědi, nejvýše čtyři na odpověď.
Nastavte cíl oznámení, abyste dostávali proaktivní zprávy, například výsledky naplánovaných úloh. Ponecháte-li pole prázdné, tyto zprávy se vypnou.
Připojení a přístup
| Nastavení | Co dělá |
|---|---|
| Token bota | Povinná tajná hodnota z Discord Developer Portal. |
| ID serveru | Volitelné omezení na server a výchozí server pro nástroje serveru; prázdné pole povolí každý server, jehož je bot členem. |
| Povolená vlákna | Volitelný seznam povolených ID vláken; prázdné pole nepřidá omezení vláken. |
| Cíl oznámení | Kanál nebo vlákno pro proaktivní zprávy; prázdné pole je vypne. |
| Pravidla rolí | Přiřadí ID rolí Discordu k přístupu a pokynům pro místnost. Pravidlo * platí po pojmenovaných pravidlech. Zásada s administrátorským příznakem zapíná příkazy a výběry jen pro operátory. |
Klíče polí jsou v pořadí tabulky botToken, guildId, threadIds, notifyChannelId a rolePolicies.
Administrátorský příznak patří zásadě rolí, ne názvu role na Discordu. Člen je operátor, když první zásada odpovídající jedné z jeho rolí má nastavený admin.
Výběr cíle oznámení ukládá do mezipaměti jeden seznam kanálů až na jednu minutu, pro stejné ID serveru a token bota. Změna jednoho z nich způsobí, že další požadavek výběru načte nové cíle. Token zůstává uvnitř démona.
Odpovědi a zobrazení
| Nastavení | Výchozí | Co dělá |
|---|---|---|
| Odpovídat bez zmínky | Zapnuto | Odpovídat v kanálech, které bot vidí; vypněte, pokud chcete vyžadovat @zmínku. |
| Aktivita nástrojů | Živý stav | Zvolte Vypnuto, Živý stav nebo Živý výstup. Přepis pro kanál nastavíte příkazem /display. |
| Doručení odpovědi | Jen finální odpověď | Odeslat úplnou odpověď po aktivitě nástrojů, nebo zobrazovat odpověď, jak vzniká. |
| Detail výstupu nástrojů | Krátké shrnutí | Zvolte Jen stav, Krátké shrnutí nebo Poslední část výstupu. Celý surový výstup nástroje se neposílá. |
| Rozložení zpráv nástrojů | Jedna živá zpráva | Ponechat jednu zprávu, nebo použít jednu zprávu na nástroj. |
| Nahradit průběh práce odpovědí | Vypnuto | Nahradit zprávu s průběhem finální odpovědí. Přepíše živé odpovědi i rozložení po nástrojích. |
| Reakce během zpracování | Zapnuto | Zobrazovat stav zpracování jako reakce na příchozí zprávě. |
| Stavový řádek | Zapnuto | Přidat pod odpověď model a využití kontextu. |
| Zobrazit uvažování | Vypnuto | Zobrazovat výstup rozšířeného uvažování, když to model podporuje. |
| Jazyk služebních zpráv | Angličtina | Jazyk služebních zpráv bota: angličtina, čeština nebo slovenština. |
Klíče v pořadí tabulky jsou respondWithoutMention, toolActivity, answerMode, toolOutput, toolMessageMode, deleteToolActivityAfterTurn, reactions, runtimeFooter, showReasoning a language.
Otázky
Když se vás Elowen na něco ptá, bot pošle jednu zprávu s tlačítky pro jednu volbu z nejvýše pěti možností, nebo nabídku pro vícenásobnou volbu či delší seznam. Několik otázek se ptá postupně ve stejné zprávě s počítadlem jako Question 2/3: každá odpověď posune zprávu na další otázku, Zpět se vrátí k předchozí a odpovědi se odešlou společně po poslední. Jiné vám umožní napsat vlastní odpověď jako další zprávu v kanálu; na psaní čeká jen ten, kdo na něj klikl.
Odpovídat může kdokoli v kanálu nebo vlákně, komu zásada rolí dovolí mluvit s botem, ne jen ten, jehož zpráva odpověď spustila. Všichni pracují na stejné zprávě, takže kdo odpoví, posune ji pro celou místnost, a odpovědi se odešlou jednou, prvním úplným souborem. Člen, kterému neodpovídá žádná zásada, dostane soukromé oznámení, že nemůže odpovědět. Každá odpověď se zaznamená s ID člena na Discordu, který ji dal.
Konverzace a média
| Nastavení | Výchozí | Co dělá |
|---|---|---|
| Počet zpráv z historie kanálu | 0 | Načíst až 100 posledních zpráv, když začne nová konverzace. |
| Model pro obrázky | Nenastaveno | Model pro zprávy s obrázky; prázdné pole použije obvyklý model kanálu. |
| Max. velikost příchozího obrázku | 5 MiB | Limit stahování obrázků, od 1 do 20 MiB. Větší obrázky se zaznamenají, ale nepošlou se k rozpoznání. |
| Max. obrázků na zprávu | 4 | Počet obrázků poslaných k rozpoznání, od 1 do 10. |
| Max. velikost souboru | Nenastaveno | Limit stahování příloh kromě obrázků, od 1 do 25 MiB; nenastaveno znamená 25 MiB. Větší soubory se jen zaznamenají. |
| Max. souborů na zprávu | Nenastaveno | Počet příloh kromě obrázků, od 1 do 10; nenastaveno znamená 5. |
| Max. obrázků na odpověď | 4 | Obrázky sdílené pomocí ShareImage přiložené k jedné odpovědi, od 1 do 10. |
Pokud Discord historii kanálu nenačte, adaptér selhání zaloguje a začne konverzaci bez doplnění.
Klíče v pořadí tabulky jsou historyLimit, visionModel, maxImageBytes, maxImages, maxFileBytes, maxFiles a maxUploadImages.
Zvukové přílohy jsou při streamování omezené na 25 MiB, i když jejich uváděná velikost chybí nebo je podhodnocená. Přílohy v tomto limitu se přepisují přes sdílenou hlasovou službu Elowen. Hlas musí být v Elowen zapnutý a odesílatel potřebuje propojený účet s oprávněním pro hlas a dostupným limitem útraty. Nativní hlasová zpráva na Discordu dostane textovou odpověď a za ní zvukovou odpověď OGG/Opus. Běžné zvukové přílohy dostanou textovou odpověď. Pokud je přepis odmítnutý nebo selže, příloha se ve zprávě zmíní; pokud je řeč odmítnutá nebo selže, textová odpověď zůstane.
Nástroje a oprávnění
Několik popisů nástrojů uvádí, že volání potřebuje administrátorskou relaci a konkrétní oprávnění Discordu. Plugin u těchto nástrojů administrátorskou relaci nekontroluje; požadavek vychází z popisů nástrojů. Když botu chybí oprávnění Discordu, volání vrátí text chyby HTTP.
Bot potřebuje odpovídající oprávnění Discordu pro akce správy serveru. Záměr Server Members je nutný pro výpisy členů. Nejvyšší role bota musí být výš než role, kterou přiděluje nebo odebírá. Jeho nástroje zahrnují:
- Jen pro čtení:
DiscordListChannels,DiscordReadChannel,DiscordServerInfo,DiscordChannelInfo,DiscordMemberInfo,DiscordSearchMembers,DiscordListRoles,DiscordListMembersaDiscordListPins. - Správa:
DiscordPinMessage,DiscordUnpinMessage,DiscordDeleteMessage,DiscordPurgeMessages,DiscordAssignRole,DiscordRemoveRole,DiscordCreateThread,DiscordArchiveThread,DiscordLockThread,DiscordAddThreadMember,DiscordRemoveThreadMember,DiscordCreateChannel,DiscordCreateCategory,DiscordRenameChannelaDiscordDeleteChannel. DiscordApi: libovolný požadavek Discord REST API v10, který má bot k dispozici.
Začněte nástrojem DiscordListChannels, najděte ID kanálu a pak ho použijte s nástroji pro kanály. DiscordSearchMembers porovnává předpony názvů. Nástroje pro kanály umí vytvořit kanály typu text, hlas, novinky, stage nebo fórum a veřejná vlákna. DiscordApi je výkonný nástroj pro surové API; použijte ho jen tehdy, když úlohu nepokryje strukturovaný nástroj. Smazání zpráv nebo kanálů nelze vrátit. Hromadné mazání by mělo začít zkušebním během, jak žádá popis nástroje; kód toto pořadí nevynucuje.
DiscordReadChannel umí načíst až 100 posledních zpráv a jeho textový výstup může vynechat nejstarší zprávy, když překročí 6 000 znaků. DiscordListMembers vrací ve výchozím stavu 50 členů, nejvýše 200, a potřebuje záměr Server Members. DiscordListPins zobrazuje náhled textu zprávy do 120 znaků; kanál může mít nejvýše 50 připnutých zpráv. DiscordPurgeMessages ve výchozím stavu posuzuje 100 posledních zpráv a nejvýše 5 000, připnuté zprávy ve výchozím stavu zachová a zprávy mladší 14 dní maže hromadně a starší po jedné. Jeho popis říká agentovi, aby nejprve spustil dryRun; kód toto pořadí nevynucuje, proto cíle před skutečným během ověřte. Výstup DiscordApi je omezen na 4 000 znaků a volání s omezeným počtem požadavků se opakují nejvýše třikrát. Před použitím nástroje pro trvalé smazání cíle ověřte. Dlouhé odpovědi se dělí na zprávy o nejvýše 1 990 znacích.