Présentation

Golem.ai is a service providing an API.
The clients logging into this API can be of 2 types : front or target


The Target is used to represent the program or the service to be monitored/directed.

Schema 1

The Front represents the user : it only sends requests.

Schema 2

The front client

The front The front can send the user requests to the Service as text.

[Front] ----------"I want a coffee"-----------> [Service]   
[Front] <---------"OK"------------------------- [Service]   

The front then receives the answer of the service, which can be transmitted to the user.


Tip :
The front is a thin client ; its functionalities are few in number.
This lightness allows it to be embedded on various devices.


Note :
The front sends the user request to the Service as text.
It can suggest to the user to write his request, or make the link with other technologies : SMS service or voice recognition/synthesis for example.

The target client

The client identified as a target represents for the Service a software to be controlled. The target will propose to the Service all the actions made available to the user.

[Target] ----"Action 1 - Make coffee"-------> [Service]   
[Target] ----"Action 2 - Make thé"----------> [Service]   

The description of the actions given by the target allows the Service to make the link with the user request. .

The Whole

Therefore, we obtain an operation/functional scheme similar to this one :

                                                /---------[Target]
[User] - - - - - [Front]--------[Service]----------[Target]
                                                \---------[Target]

Having here 1 front and 3 target.

Progress of a standard usage


1. The target is identified,
2. The target presents its interactions,

The user launches his front golem.ai...

3. The front is identified,

The user express a request to the front...

4. The front transmits the request to the Service,

The service analyses the request and finds an interaction to call

5. The Service asks the target,
for an interaction call 6. The Service answers to the front, confirming that the request generated an interaction call/call interaction

                                  [Service]                                [Target]
                                      |   ------handshake--------------->      |
                                      |   <-----identity-----------------      |
                                      |   ------confirm_identity-------->      |
                                      |   <-----interaction--------------      |
                                      |   ------confirm_interaction----->      |
                                      |   <-----interaction--------------      |
                                      |   ------confirm_interaction----->      |
                                      |                                        |
[Front]                               |                                        |
   |  <-----handshake--------------   |                                        |
   |  ------identity-------------->   |                                        |
   |  <-----confirm_identity-------   |                                        |
   |                                  |                                        |
   |  ------request--------------->   |                                        |
   |  <-----confirm_request--------   |                                        |
   |                                  |   ------call-------------------->      |
   |  <-----answer-----------------   |                                        |
   |                                  |                                        |
   |                                  |                                        |

Please refer to l'index for the significance of each package.

API connection address :

TCP : golem.ai:3003
Web Socket : golem.ai:3004/ws
Web Socket Sécurisé (WSS) : golem.ai:3005/ws
HTTP : golem.ai:3004/http
HTTPS : golem.ai:3005/http