From 66655566ae55edfd66e6d8634eed82ba7c9242c6 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Wed, 29 Nov 2023 12:37:48 -0500 Subject: [PATCH] Neum (Independent Publisher) (#2975) * Revert "Merge branch 'microsoft:dev' into dev" This reverts commit 096a7c31993f909c3ee2ccacb4d6a206a1a2b2a3, reversing changes made to cb0948670feda35e9fc2a43241de68bc50e06812. * Revert "Merge branch 'microsoft:dev' into dev" This reverts commit cb0948670feda35e9fc2a43241de68bc50e06812, reversing changes made to dc26e8a0268f26bc2f38bf3a66e8c90e98df9404. * Revert "Revert "Merge branch 'microsoft:dev' into dev"" This reverts commit 01764d0a6d9e3afa849a6a4159d751aee6108580. * Revert "Revert "Merge branch 'microsoft:dev' into dev"" This reverts commit a3f086ef0f4e8b47ec14e9287ec7ebc29a09ea33. * Add files via upload * Revert "Add files via upload" This reverts commit eeff7b7a02a5c65406413e7c848ebc718c30183e. * Add files via upload * Delete independent-publisher-connectors/FileIO directory * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Revert "Add files via upload" This reverts commit 1d855069580b1ee4670c7c8e3b2edec4e0d63cd5. * Update readme.md * Revert "Update readme.md" This reverts commit b94447a14268a503fa5224ab942d8bbbdf443111. * Add files via upload --- .../Neum/apiDefinition.swagger.json | 336 ++++++++++++++++++ .../Neum/apiProperties.json | 23 ++ .../Neum/readme.md | 19 + 3 files changed, 378 insertions(+) create mode 100644 independent-publisher-connectors/Neum/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Neum/apiProperties.json create mode 100644 independent-publisher-connectors/Neum/readme.md diff --git a/independent-publisher-connectors/Neum/apiDefinition.swagger.json b/independent-publisher-connectors/Neum/apiDefinition.swagger.json new file mode 100644 index 000000000..146b828f8 --- /dev/null +++ b/independent-publisher-connectors/Neum/apiDefinition.swagger.json @@ -0,0 +1,336 @@ +{ + "swagger": "2.0", + "info": { + "title": "Neum", + "description": "With Neum AI, your context in prompts is always accurate and up to date. It enables you to create a pipeline that keeps your data synced between a source (ex. Document DB) and a sink (ex. Pinecone).", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "api.neum.ai", + "basePath": "/v1/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/pipelines": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + }, + "source": { + "type": "object", + "properties": { + "source_name": { + "type": "string", + "description": "The source name.", + "title": "Name" + } + }, + "title": "Source" + }, + "sink": { + "type": "object", + "properties": { + "sink_name": { + "type": "string", + "description": "The sink name.", + "title": "Name" + } + }, + "title": "Sink" + }, + "embed": { + "type": "object", + "properties": { + "embed_name": { + "type": "string", + "description": "The embed name.", + "title": "Name" + } + }, + "title": "Embed" + }, + "created": { + "type": "number", + "format": "float", + "description": "When created.", + "title": "Created" + }, + "trigger_schedule": { + "type": "object", + "properties": { + "start_date": { + "type": "string", + "description": "The start date.", + "title": "Start Date" + }, + "cadence": { + "type": "string", + "description": "The cadence.", + "title": "Cadence" + } + }, + "title": "Trigger Schedule" + } + } + } + } + }, + "summary": "Create a pipeline", + "description": "Creates a pipeline with an optional scheduled trigger.", + "operationId": "PipelinePost", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "source": { + "type": "object", + "properties": { + "source_name": { + "type": "string", + "description": "The source name.", + "title": "Source" + }, + "metadata": { + "type": "object", + "properties": { + "connection_string": { + "type": "string", + "description": "The connection string.", + "title": "Connection String" + }, + "container_name": { + "type": "string", + "description": "The container name.", + "title": "Container" + } + }, + "title": "Metadata", + "required": [ + "connection_string", + "container_name" + ] + } + }, + "title": "Source", + "required": [ + "source_name" + ] + }, + "embed": { + "type": "object", + "properties": { + "embed_name": { + "type": "string", + "description": "The embed name.", + "title": "Name" + }, + "metadata": { + "type": "object", + "properties": { + "api_key": { + "type": "string", + "description": "The API key.", + "title": "API Key" + }, + "organization": { + "type": "string", + "description": "The organization.", + "title": "Organization" + } + }, + "title": "Metadata", + "required": [ + "api_key", + "organization" + ] + } + }, + "title": "Embed", + "required": [ + "embed_name" + ] + }, + "sink": { + "type": "object", + "properties": { + "sink_name": { + "type": "string", + "description": "The sink name.", + "title": "Sink Name" + }, + "metadata": { + "type": "object", + "properties": { + "api_key": { + "type": "string", + "description": "The API key.", + "title": "API Key" + }, + "environment": { + "type": "string", + "description": "The environment.", + "title": "Environment" + }, + "index": { + "type": "string", + "description": "The index.", + "title": "Index" + }, + "namespace": { + "type": "string", + "description": "The namespace.", + "title": "Namespace" + } + }, + "title": "Metadata", + "required": [ + "api_key", + "environment", + "index", + "namespace" + ] + } + }, + "title": "Sink", + "required": [ + "sink_name" + ] + }, + "trigger_schedule": { + "type": "object", + "properties": { + "start_date": { + "type": "string", + "description": "The start date.", + "title": "Start Date" + }, + "cadence": { + "type": "string", + "description": "The cadence.", + "title": "Cadence" + } + }, + "title": "Trigger Schedule" + } + } + } + } + ] + } + }, + "/pipelines/{pipeline_id}/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The results.", + "title": "Results" + } + } + } + } + }, + "summary": "Test pipeline", + "description": "To test your new pipeline, Neum AI provides capabilities to quickly query the vector store that data is being pushed into. You can observe general information like the number of vectors in it as well as do quick queries using a provided text.", + "operationId": "PipelineTestPost", + "parameters": [ + { + "name": "pipeline_id", + "in": "path", + "x-ms-summary": "Pipeline ID", + "x-ms-url-encoding": "single", + "description": "The pipeline identifier.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The query.", + "title": "Query" + }, + "number_of_results": { + "type": "integer", + "format": "int32", + "description": "The number of results.", + "title": "Number Of Results" + } + }, + "required": [ + "number_of_results", + "query" + ] + } + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "header", + "name": "neum-api-key" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.neum.ai/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.neum.ai/" + }, + { + "propertyName": "Categories", + "propertyValue": "AI" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Neum/apiProperties.json b/independent-publisher-connectors/Neum/apiProperties.json new file mode 100644 index 000000000..48f95aa6c --- /dev/null +++ b/independent-publisher-connectors/Neum/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this api", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Troy Taylor", + "stackOwner": "Neum" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Neum/readme.md b/independent-publisher-connectors/Neum/readme.md new file mode 100644 index 000000000..47b04caae --- /dev/null +++ b/independent-publisher-connectors/Neum/readme.md @@ -0,0 +1,19 @@ +# Neum +With Neum AI, your context in prompts is always accurate and up to date. It enables you to create a pipeline that keeps your data synced between a source (ex. Document DB) and a sink (ex. Pinecone). + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +You will need to sign up for an account with [Neum](https://dashboard.neum.ai/). + +## Obtaining Credentials +Once logged in to your dashboard you will find your API key under Settings. + +## Supported Operations +### Create a pipeline +Creates a pipeline with an optional scheduled trigger. +### Test pipeline +To test your new pipeline, Neum AI provides capabilities to quickly query the vector store that data is being pushed into. You can observe general information like the number of vectors in it as well as do quick queries using a provided text. + +## Known Issues and Limitations +There are no known issues at this time.