Skip to content
This repository has been archived by the owner on Jun 14, 2022. It is now read-only.

A genie-router plugin that provides a generic HTTP API for external clients.

License

Notifications You must be signed in to change notification settings

genie-ai/genie-router-plugin-api-http

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

genie-router-plugin-api-http

A genie-router plugin that provides a generic HTTP API for external clients.

This is a plugin for the https://github.com/matueranet/genie-router project. It adds a HTTP endpoint to which external clients can send messages and receive output.

Configuration

Update the plugins block in the genie-router configuration and add the key api-http, which should be an object. This will enable the plugin. http should be enabled in the genie-router configuration.

This plugin supports 3 optional configuration parameters:

  • endpoint, the HTTP endpoint to listen to (defaults /api/message)
  • accessToken, requires that the requests are using an accessToken (Default is disabled).
  • timeout, the maximum of milliseconds the process should waits for the invoked brain to respond (defaults to 5000 = 5 seconds).

Example

"api-http": {
  "endpoint": "/api/message",
  "timeout": 5000,
  "accessToken": "protection-enabled"
}

Authorization

If the accessToken attribute is set, each request should include a Authorization: Bearer [accessToken] header. Else a 401 HTTP response is returned.

Requests / responses

The request should have be a JSON object, with at least an input attribute. You can optionally include a metadata attribute which will be returned in the response.

{
  "input": "Hello genie!",
  "metadata": {
    "internal-request-id": 5
  }
}

If you add the attribute userId and/or sessionId in the request metadata this will be mapped to the internal userId and sessionId in genie-router, where they can be used by other plugins.

The responses will contain a unique identifier for each request, in the id attribute.

Valid response

{
  "id": "110ec58a-a0f2-4ac4-8393-c866d813b8d1",
  "message": "How may I help you, master?",
  "metadata": {
    "internal-request-id": 5
  }
}

Errors

{
  "id": "110ec58a-a0f2-4ac4-8393-c866d813b8d1",
  "error": "Timeout contacting brain."
}

About

A genie-router plugin that provides a generic HTTP API for external clients.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published