The "AI Orchestration Jumpstart Kit" is a toolkit designed to streamline and accelerate the adoption of AI technologies. It provides pre-built components, best practices, and documentation links for easier integration of AI solutions into various environments.
The package provides a sample Semantic Kernel SDK-based prototype implementation with configurable parameters and settings.
- Allows for quick start use of Semantic Kernel(SK) without the need to develop code
- Enables team members to work on the solution independently
- Includes:
- Endpoints for basic SK requests
- Endpoints for creating more SK semantic functions prompts and configuration files
- Implementation of an in-memory Vector Database
- Reference source code
Please visit our project Wiki for more information Wiki
The C# WebAPI Connector Class is an interface for interacting with various Semantic Kernel AI functions.
Below are details about each endpoint, its purpose, and the possible responses.
Description: Executes a specified function.
URL: /Function/Execute
Method: POST
Parameters:
pluginName (string): The name of the plugin containing the function.
functionName (string): The name of the function to execute.
input (string): The input data for the function.
Response:
Success: 200 OK, with the function execution result.
Error: 400 Bad Request if an error occurs during execution.
Description: Executes a function with memory search.
URL: /Function/ExecuteWithMemory
Method: POST
Parameters:
pluginName (string): The name of the plugin containing the function.
functionName (string): The name of the function to execute.
Relevance (double): The relevance threshold for memory search.
input (string): The input data for the function.
Response:
Success: 200 OK, with the function execution result.
Error: 400 Bad Request if an error occurs during execution.
Not Found: 404 Not Found if the input is not found within the relevance threshold.
Description: Lists all available plugins and their functions.
URL: /SK/ListPlugins
Method: GET
Response:
Success: 200 OK, with a JSON document containing plugin information.
Error: 400 Bad Request if an error occurs during execution.
Description: Retrieves the prompt and configuration for a specified function.
URL: /SK/Get
Method: GET
Parameters:
pluginName (string): The name of the plugin containing the function.
functionName (string): The name of the function.
Response:
Success: 200 OK, with a JSON document containing the prompt and configuration.
Not Found: 404 Not Found if the prompt file is not found.
Error: 400 Bad Request if an error occurs during execution.
Description: Inserts a new prompt and configuration for a specified function.
URL: /SK/Post
Method: POST
Parameters:
pluginName (string): The name of the plugin containing the function.
functionName (string): The name of the function.
SKPrompt (string): The prompt for the function.
SkConfigjson (string, optional): The configuration JSON for the function.
Response:
Success: 200 OK if the prompt and configuration are successfully inserted.
Error: 400 Bad Request if an error occurs during execution.
Description: Deletes the prompt and configuration for a specified function.
URL: /SK/Delete
Method: DELETE
Parameters:
pluginName (string): The name of the plugin containing the function.
functionName (string): The name of the function.
Response:
Success: 200 OK if the prompt and configuration are successfully deleted.
Not Found: 404 Not Found if the prompt file is not found.
Error: 400 Bad Request if an error occurs during execution.
Description: Lists items in the memory.
URL: /Memory/List
Method: GET
Response:
Success: 200 OK, with a JSON document containing memory items.
Error: 400 Bad Request if an error occurs during execution.
Description: Searches for an item in the memory.
URL: /Memory/Search
Method: POST
Parameters:
Input (string): The input data for memory search.
Response:
Success: 200 OK, with the search result and relevance information.
Error: 400 Bad Request if an error occurs during execution.
Before you begin, ensure you have the following prerequisites in place:
- Microsoft Azure account.
- Access to the API you want to connect to.
- A registered application in Azure AD (Azure Active Directory)
- Understanding of Azure AD B2C and OAuth 2.0.
To configure OAuth 2.0 with Azure Identity, you need to register your application in Azure AD. Here are the steps:
- Go to Azure Portal and sign in using your Azure account.
- In the Azure Portal, search for "Azure Active Directory" and select it.
- In the Azure AD blade, click on "App registrations" on the left-hand menu.
- Click the "New registration" button.
- Enter a name for your application.
- Choose the supported account types (e.g., single-tenant or multi-tenant).
- Enter the Redirect URI, which is the callback URL for OAuth 2.0 (e.g.,
https://yourapp.com/callback
). - Click the "Register" button to create the application.
- After registration, make note of the
Application (client) ID
andDirectory (tenant) ID
. You'll need these values later.
Now that you have registered your application, configure the OAuth 2.0 settings for it.
- In your application's Azure AD settings, go to "Authentication."
- Under "Platform configurations," add the Redirect URI you specified earlier.
- Save the changes.
- In your application's Azure AD settings, go to "Certificates & secrets."
- Under "Client secrets," click on "+ New client secret."
- Enter a description, select an expiration, and click "Add."
- Note the generated client secret. This will be used for authentication.
To connect to the API using OAuth 2.0 and Azure Identity, your application must implement the OAuth 2.0 authorization flow with Azure Identity. Refer to the official Microsoft documentation for your specific programming language or platform for detailed implementation steps.
For .NET applications using Azure Identity: Microsoft documentation
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.