Aggiornare il nostro servizio commerciale Bot Libre for Business per soltanto $4.99 al mese
Docs : Manuale Per L'Utente : AIML

AIML

Panoramica

AIML è Artificial Intelligence Markup Language. È uno standard XML per la definizione di bot di chat risposte. Bot Libre bot supporto AIML, ma sono basati su di Sé e avere una conoscenza di base simile al cervello umano.

Su AIML

AIML definisce come un bot dovrebbe rispondere a una domanda con l' <pattern> <template> elementi. Un modello che rappresenta l'utente in questione, e il modello definisce un bot risposta. Il modello e modello gli elementi sono raggruppati in una categoria elemento, che possono essere raggruppati in argomento elementi.

Elenco di AIML i tag dei template

Tags Description
<star index="N"/> Replaced with value of * in pattern (or Nth *).
<that index="M,N"/> Replaced with value of bot's previous response (or Mth previous response, and N sentence of the response).
<input index="N"/> Replaced with value of users's input (or Nth *).
<thatstar index="N"/> Replaced with value of * in "that" (or Nth *).
<topicstar index="N"/> Replaced with value of * in topic (or Nth *).
<get name="XXX"/> Replaced by the value of the conversation specific variable.
<bot name="XXX"/> Replaced by the value of the bot specific variable.
<sr/> Short form for <srai><star/><srai> (replaced with response to value of * from pattern).
<person2/> Converts the text (or <star/>) between 1st and 2nd person (I <-> he, etc.).
<person/> Converts the text (or <star/>) between 1st and 3rd person (I <-> you, etc.).
<gender/> Converts the text (or <star/>) between male and female (he <-> she).
<date/> Replaced with the current date and time, a "format" attribute is also supported.
<id/> Replaced by the client id.
<size/> Replaced with the size of bot's memory.
<version/> Replaced with the AI engine version.
<uppercase> Converts the text to uppercase.
<lowercase> Converts the text to lowercase.
<formal> Converts all words in the text to be capitalized.
<sentence> Converts the first word in the text to be capitalized.
<condition name="X" value="Y"> Defines an "if" condition based on comparing the value of a variable to a pattern.
<condition name="X"> Case statement.
<condition> Multi-valued if/else statement.
<random> Choose on of the nested <li> values at random.
<li name="X" value="Y"> Used in random and condition tags.
<li value="Y"> Used in random and condition tags.
<li> Used in random and condition tags.
<set name="XXX"> Set the value of a variable.
<gossip> Logs the text.
<srai> Recursively evaluates the text and replaces it with the response.
<think> Evaluates the nested statements but does not output any result.
<learn> Load external AIML file, this is not currently allowed.
<system> Executes a OS command, this is not currently allowed.
<javascript> Executes JavaScript code.
<topic> Category topic tags can now be set on a category to make it easier to add categories to topics.
<map> Maps tag to allow the lookup of the element value in a predefined mapping, returning the mapped value.
<loop> Condition loops tag to loop a conditional statement.
<var> Local variables attribute for variables scoped to a category.
<sraix> Remote requests tag to make a remote request of another bot instance, or service.
<normalize> and <denormalize> Normalization and denormalization tags to convert special character into words, and back again.
<request> Request tag to return the user's previous input request.
<response> Response tag to return the bot's previous response.
<learn>, <learnf>, and <eval> Learning tags to dynamically train a bot with new responses.
<explode> Explode tag to split a word into its characters.
<oob> Mobile (out of band) tag to support client and mobile device commands.
(<b>, <a>, <i>, <ul>, <ol>, <li>, <p>, <br>, <button>, <img>, <video>) Various HTML tags are also allowed.
<self> Evaluate Self code (Bot Libre extension).

Elenco di AIML modello operatori

Tags Description
* Matches one or more words.
_ Matches one or more words, takes priority over all other words and wildcards, except $.
^ Matches zero or more words.
# Matches zero or more words, takes priority over all other words and wildcards, except $.
$ Pattern priority marker to make a pattern word match highest priority.
() Optional set of words (Bot Libre extension).
[] Required set of words (Bot Libre extension).
<set> Set tag to evaluate a pattern based on words defined in a predefined set.
/ Regular expression pattern (Bot Libre extension).
{} Self code (Bot Libre extension).

Esempi

Qui è un semplice 'Ciao Mondo' AIML esempio:
Questo codice serve per rendere il vostro bot rispondere con "Ciao anche a te" alla domanda "Ciao Mondo".

1
2
<aiml>
    <category>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Ecco un semplice esempio del carattere jolly:
Questo codice serve per rendere il vostro bot rispondere con "Ciao anche a te' a qualsiasi domanda che contiene la parola 'ciao'.

1
2
<aiml>
    <category>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Qui è uno scherzo 'che' esempio:
Questo codice serve per rendere il vostro bot raccontare una barzelletta.

1
2
<aiml>
    <category>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Qui è un complesso modello di esempio:
Questo codice serve per rendere il vostro bot rispondere alla domanda "come le mele o ti piace arance' con 'io amo le mele e adoro le arance'.

1
2
<aiml>
    <category>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


^ e # i caratteri Jolly

1
2
<category>
    <pattern>^ aiml ^</pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


$ Priorità

1
2
<category>
    <pattern># sex #</pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


() e [] le Liste

1
2
<category>
    <pattern>do [you u] (really) [like love luv lv] me</pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Le espressioni regolari

1
2
<category>
    <pattern>my email is /.+\@.+\..+</pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Set

1
2
<category>
    <pattern>I am <set>name</set></pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


AIML modello per impostare una conoscenza del tipo di oggetto:

1
2
<category>
    <pattern>load animals</pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Modello tag

1
2
<category>
    <pattern><bot name="name"/></pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Attributi come Elementi

1
2
<category>
    <pattern>My * is *</pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Le mappe

1
2
<category>
    <pattern>what is the capital of <set>country</set></pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Bot Libre estende la mappa operazione, inoltre, permette di impostare il valore della mappa. Questo imposterà il valore di un rapporto di conoscenza dell'oggetto.

1
2
<category>
    <pattern>the opposite of * is *</pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Condizioni e Cicli

1
2
<category>
    <pattern>count down from <set>number</set></pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Di apprendimento

1
2
<category>
    <pattern>learn question * answer *</pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Sraix

1
2
<category>
    <pattern>ask * about *</pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Auto

1
2
<category>
    <pattern>what is * + *</pattern>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Vedi Anche