Semantic Workbench is a versatile tool designed to help prototype intelligent assistants quickly. It supports the creation of new assistants or the integration of existing ones, all within a cohesive interface. The workbench provides a user-friendly UI for creating conversations with one or more assistants, configuring settings, and exposing various behaviors.
The Semantic Workbench is composed of three main components:
- Workbench Service (Python): The backend service that handles core functionalities.
- Workbench App (React/Typescript): The frontend web user interface for interacting with workbench and assistants.
- Assistant Services: any number of assistant services that implement the service protocols/APIs, developed using any framework and programming language of your choice.
Designed to be agnostic of any agent framework, language, or platform, the Semantic Workbench facilitates experimentation, development, testing, and measurement of agent behaviors and workflows. Agents integrate with the workbench via a RESTful API, allowing for flexibility and broad applicability in various development environments.
GitHub Codespaces provides a cloud-based development environment for your repository. It allows you to develop, build, and test your code in a consistent environment, without needing to install dependencies or configure your local machine. It works with any system with a web browser and internet connection, including Windows, MacOS, Linux, Chromebooks, tablets, and mobile devices.
See the GitHub Codespaces / devcontainer README for more information on how to set up and use GitHub Codespaces with Semantic Workbench.
- Start the backend service, see here for instructions.
- Start the frontend app, see here for instructions.
- Start the canonical assistant (see here for instructions) or one of the examples.
To develop new agents and connect existing ones, see the Assistant Development Guide
The repository contains a few examples that can be used to create custom agents:
- Python Canonical Assistant
- Python example 1: a simple assistant echoing text back.
- .NET example 1: a simple agent with echo and support for a basic
/say
command. - .NET example 2: a simple agents showcasing Azure AI Content Safety integration and some workbench features like Mermaid graphs.
- Follow the Service Setup Guide
- Follow the App Setup Guide
Enable long file paths on Windows.
- Run
regedit
. - Navigate to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
. - Find the
LongPathsEnabled
key. If it doesn’t exist, right-click on theFileSystem
key, selectNew > DWORD (32-bit) Value
, and name itLongPathsEnabled
. - Double-click on
LongPathsEnabled
, set its value to1
, and click OK.
Open the app in your browser at https://localhost:4000
:
- Click
Sign in
- Add and Assistant:
- Click +Add Assistant Button
- Click Instance of Assistant
- Give it a name.
- Enter the assistant service URL in the combobox, e.g.
http://127.0.0.1:3010
. - Click Chat box icon.
- Type a message and hit send.
- If you see "Please set the OpenAI API key in the config."
- Click Edit icon in upper right.
- Paste in your OpenAI Key.
- Paste in your OrgID.
- Click Save.
- Hit Back button in UI.
- Type another message and hit send.
Expected: You get a response from your assistant!
- v1\service.data delete this directory or specific files if you know which one.
- From repo root, run
make clean install
.- This will perform a
git clean
and run installs in all sub-directories
- This will perform a
- Or a faster option if you just want to install semantic workbench related stuff:
- From repo root, run
make clean
- From
~/semantic-workbench/v1/app
, runmake install
- From
~/semantic-workbench/v1/service
, runmake install
- From repo root, run
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
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.