Architecture¶
Goal¶
The user of the unique toolkit interacts with the unique platform via services, concretely the
- Knowledge Base Service - For all operations regarding the knowledge base only
- Chat Service - For all interaction with the chat interface
- Agentic Table Service (Soon) - To steer the agentic table interface
and well-known clients such as the OpenAI Client.
These interfaces are to be changed only by extension and the clients guarantee that the latest generative ai features are available quicker.
Platform Domains¶
The following domains exist
| Domain | Description | Used by |
|---|---|---|
app |
Useful when dealing with settings and when dealing with events coming from the platform | Stateless API and Dev Setup |
chat |
Useful when interacting with the chat interface | ChatService |
content |
Useful when interacting with content saved in the knowledge base and chat | ChatService and KnowledgeBaseService |
framework_utilities |
Utilities to use e.g. OpenAIClient or Langchain and potentially other frameworks |
|
agentic |
All definitions to rebuild orchestrators and tools fully compatible with Spaces 2.0 | tool_packages and orchestrator |
Resulting Service¶
The services bundle the platform domains into services that interact with a single entity or user interface.
| Service | Description | Maturity |
|---|---|---|
ChatService |
All capability to interact with the chat UI | ️ ⚙️ |
KnowledgeBaseService |
All capabilities to interact with the knowledge base | 🧰 ⚙️ ️ |
AgenticTableService |
All capabilities to interact with the agentic table | 🧪 |
Maturity Levels:
- Experimental 🧪: actively developed
- In progress 🧰: Used in production but being extended
- Stable ️⚙️: Widely used in production
Some domains resulted in Services that will be slowly deprecated
| Services | Description | Replacement | Status | Usage |
|---|---|---|---|---|
EmbeddingService |
Access to embedding models | Use OpenAIClient directly |
To be moved soon | Small |
LanguageModelService |
Access to language models | Use OpenAIClient directly |
Deprecated | Medium |
ShortTermMemoryService |
Access to memory | Use in ChatService directly |
To be moved soon | Small |
Services and Clients utilities are always directly importable from the unique_toolkit.
Data Objects¶
The DTOS and other data objects are implemented via pydantic which handles validation as well as name transformations between the platform and the python toolkit. The data objects can be found in the schema.py files and changed only by extension.
Underlying functions¶
Functions using the unique_sdk are defined in the functions.py files and might be changed as the platform evolves following usual deprecation patterns. Defining functionality per platform domains helps to test the functionality in a simpler fashion.