DEV...ELeferno

tady se pracuje. Kurva, fakt těžce se tu pracuje. Ale už to mám skoro hotový.Lz.

Zcela jistě jste zaregistrovali hromadu soukromých vtípků a nenápadných avíz, zaměřených nebo zmiňujících kohosi jménem Elebot, případně nemístné narážky na blondatého bota nebo dokonce Blondobota. Další díl Eleferna for dummies vám pomůže s orientací v této prolematice.

Dnešní díl bud eponěkud odlehčen - nebudou zmiňovány mosuly ani způsoby implementace, maximálně se dozvíte něco málo o systémech AI, tedy umělé intelignece obecně. A o engine a.l.i.c.e specificky. Nejdřív ale pár slov o Elebotovi.

Jisté známky inteligence projevuje libovolný webový server, mající více než jednoho autora, více než jednoho čtenáře a třeba i triviální systém interakce těchto dvou entit (mailová adresa, komentáře a tomu podbné). S rostoucím počtem entit a vztahů mezi nimi roste i ona virtuální inteligence a v odhadnutelném konečném čase vzniká homeostáza - stav rovnováhy, v němž jsou potřeby uživatelů víceméně saturovány ve vztahu k možnostem autorů. Uživatelé se učí korektně využívat poskytovaných možností a žádat po autorech splnitelné, autoři nakonec začínají psát s ohldem na čtenářsky žádaná a pro čtenáře odborně i prakticky dostupná témata. Totéž se týká systémů interaktivit, z nichž některé nabírají rozsáhlý okruh příznivců mezi uživateli (například galérie),  jiné naopak zůstávají doménou hrstky nadšenců (eleferní systém skupin). Posledním aspektem je pak samotný engine serveru a zejména jeho administrační část, nadaná do značné míry schopnostmi, vlastními organismům. V širším okruhu redakčního týmu jsme si zvykli používat pro sumu shora uvedených aspektů jméno vlastní, tedy Elebot. Ten zatím spíše terčem poťouchlých vtípků a oblíbenou postavou ve stripech. Stejně tak o mně osobně mnozí členové redakce tvrdí, že jsem blond robot, který v reálu neexistuje a že mne napsal Torm v LISPu či v MUMPSu. Zodpovědně prohlašuji, že jde o hnusné pomluvy. Abych jim udělala přítrž, napsala jsem Elebotovi něco jako osobnost a rozhraní, přes které s ním můžete pohovořit.

Oč jde ? V podstatě o učícího se konverzačního robota, který je schopen v jisté (zatím velmi omezené) míře udržovat konverzaci se svým spolubesedníkem a reagovat na jeho repliky způsobem, který může vypadat inteligentně. Klíčová slova pro Google jsou v tomto případě Turingův test, Alice nebo Eliza (zde prosím bez významného pokyvování hlavou. Komunikace probíhá v textové formě formou podnětů a reakcí. Robot (obecně) na podněty reaguje v závislosti na kontextu rozhovoru, simulované emocionální situaci (tu si umí měnit v souvislosti s průběhem rozhovoru) a klíčových slovech (predikátech), použitých spolubesedníkem. Elebot jako implementace obecného robota toho zatím moc neumí a je na vás, abyste jej naučili co možná nejvíc.

Učení robota probíhá ve dvou módech - robota lze naučit speciální sekvencí jeho povelů, tuto možnost vzhledem ke spicifičnosti úchylné obce raději nepoužíváme, nebo vyhodnocením a formalizací koncverzace s uživateli. Velmi obecně řečeno, čím víc věcí s Elebotem proberete, tím širší bude jeho obzor a slovní zásoba. Tento mód učení běží v denních cyklech a vyžaduje mentora, kterého zatím robotovi dělám já.

Behind the scene.
Za scénou běží jednak vlastní engine, jednak sada souborů v jazyce AIML, popisující pseudointeligenci robota. Může to vypadat třeba takto:

<category>
<pattern>INITCOM *</pattern>
<template>
<think>
 <set name="INIT">ISINIT</set>
 <set name="DOM">N</set>
 <set name="EMO">N</set>
 <set name="personname">člověče</set>
</think>
</template>
</category>

Tenhle kousek kódu nastaví robotovi neutrální emociální status a neutrální agresivitu (nebo dominanci, chcete-li), současně nastaví výchozí oslovení spolubesedníka na "člověče".

<category>
  <pattern>KATYNĚ</pattern>
  <template> <random>
    <li>Katyně je knížka od Pavla Kohouta</li>
    <li>Výborné čtení, doporučuju.</li>
    <li>To je knížka, od Pavla Kohouta. Znáš ?</li>
  </random></template>
</category>
<category>
  <pattern>* KATYNĚ</pattern>
  <template><srai>KATYNĚ</srai></template>
</category>
<category>
  <pattern>* KATYNI</pattern>
  <template><srai>KATYNĚ</srai></template>
</category>

Další kousek kódu ukazuje Elebotovy znalosti o Katyni.  S ohledem na udržitelnost a spravovatelnost kódu reaguje robot na klíčové slovo v izolované pozici v prvém pádě a v pozici na konci věty v pádě prvním, druhém, třetím, čtvrtém a šestém, tedy situace, pokrývající běžné konverzační vzory.  Čeština je pro psaní AI systémů vražedný jazyk :-)

Jak robota ovládat ?
Puristé by řekli konverzací, ale vzhledem k tomu, že uživatelé Eleferna nejsou jenom ajťáci, prozradím pár kouzel. Kouzla začínají znakem hash (#) a obvykle slovem BOT.  #BOT vypíše náhodnou nápovědu, seznam povelů vypíše povel #BOT CMDS. Se znalostí této direktivy můžete získat kompletní nápovědu.  Pro nastavení robota slouží povely s parametry, například #BOT EMO OPT nastaví optimistický model  emočních reakcí robota.

Jak s robotem mluvit ?
Ideálně v holých větách a větách, složených z podmětu, přísudku a předmětu, případně libovolného množství přívlastků. Ve složtěji postavené větě robot neraguje vždy správně na jádro sdělení - jeho sémantika je na úrovni prvoka. Pokud si představíte, že mluvíte s mírně retardovaným osmiletým dítětem, získáte správnou představu o formě a informační hodnotě rozhovoru :-)

Jak využít nezřejmých funkcí ?
Pro robota má speficickou funci pozdrav. Ahoj nebo Ahoj <cokoliv> je pozdrav na uvítanou, <cokoliv> ahoj je pozdrav na rozoučenou. V rámci přivítání s robot nastavuje své vnitřní proměnné. Pokud se v konverzaci s ním ztratíte nebo začínáte mít pocit, že jeden z vás je zhulený, pozdravte znovu. Další nezřejnou funkcí jsou variantní odpovědi - na stejný podnět umí robot reagovat různými způsoby. Pokud si je chcete projít všechny, za N↑3+2 dotazů by se měly vystřídat všechny varianty reakce. Problém je, že nezjistíte, kolik reakcí má robot nastaveno pro daný predikát :-) 

Vyhledávání

Kdo je online

Celkem přihlášeno: 194 uživatelů
nickcarter online 0
Členů: 1 / Hostí: 193

Nejnovější uživatelé

  • HonzaTroll
  • Ulicnik78
  • Luie78
  • Verge666x
  • hrajsi