This contract is currently in the Proof-of-concept stage and still subject to change
Introduction
To expose AI services to our system, we need an API to be exposed for the MediaHaven installation. When creating new Module Plugins having of the following https://mediahaven.atlassian.net/wiki/spaces/CS/pages/edit-v2/4438884395#Categories
Embedding
GenerativeGenerativeMetadata
then MediaHaven will connect to this plugin using REST API calls, which must implement the following methods depending on the category.
...
Code Block | ||
---|---|---|
| ||
{ "Text": "Given me pictures of lamas", "Dimensions": 1536, "Config": { "TextModel" : "ada2" } } |
...
Array of float (vector) with size equal to dimensions. The vector MUST BE normalized. When the provided dimensions
are 0
, the embedding should be in the natural dimensions used by the embedding. If the embeddings cannot be provided in the requested dimensions
, then a 400
HTTP error code should be returned.
Ex.
Code Block | ||
---|---|---|
| ||
{ "Embedding": [ -0.006929283495992422, -0.005336422007530928, ... (omitted for spacing) -4.547132266452536e-05, -0.024047505110502243] } |
...
Code Block | ||
---|---|---|
| ||
{ "Config": { "TextModel" : "ada2" }, "Metadata": { "RightsManagement": { "Permissions": {...}, "RecordPhase": "Concept", "ExpiryDate": null, "ExpiryStatus": null, "Zone": {} }, "Dimensions": 1536 } } |
Expected headers
Code Block |
---|
x-api-key: <optional api key> |
...
Array of float (vector) with size equal to dimensions. The vector MUST BE normalized. When the provided dimensions
are 0
, the embedding should be in the natural dimensions used by the embedding. If the embeddings cannot be provided in the requested dimensions
, then a 400
HTTP error code should be returned.
Ex.
Code Block | ||
---|---|---|
| ||
{ "Embedding": [ -0.006929283495992422, -0.005336422007530928, ... (omitted for spacing) -4.547132266452536e-05, -0.024047505110502243] } |
...
Code Block | ||
---|---|---|
| ||
{ "Fields": { "Descriptive.Description": { "Hint": "Give a description for the image" }, "Descriptive.Keywords.Keyword": { "Hint": "Give a list of keywords. Generate around 10.", "Type": "array" } }, "Locale": "en_US", "Config": { "TextModel" : "ada2" }, "Metadata": { "RightsManagement": { "Permissions": {...}, "RecordPhase": "Concept", "ExpiryDate": null, "ExpiryStatus": null, "Zone": {} } } } |
...
Code Block | ||
---|---|---|
| ||
{ "GeneratedFields": { "Descriptive.Description": "This is an image of a cat", "Descriptive.Keywords.Keyword": ["Animal", "Cat", ...] } } |