Teneo Platform 8.0
Generative AI
Teneo 8.0 introduces several powerful Generative AI management tools, seamlessly integrated into the Teneo platform. These innovative features facilitate the implementation of Gen AI driven runtime tasks with designated guided UIs and bring Gen AI usage across a solution to life.
- The Gen AI Management features let Teneo developers easily build, manage, and modify Generative AI agents in a modular way. This allows developers to implement Gen AI driven tasks through specific guided UI processes, where the system is in charge of composing the final prompt, thus ensuring it is secure, complete, robust, functional, and on brand.
- The Gen AI Overview graphically visualizes all use of Gen AI throughout the solution, as well as allowing for easier troubleshooting, maintenance, and navigation help.
The inclusion of Gen AI as a “first-class-citizen” or native part of the Teneo platform furthermore ensures it benefits from all features that make Teneo an enterprise grade offering.
With the Gen AI Management features, the user can create Personalities and Goals to perform specific Gen AI Tasks. This way, it is possible to:
- Generate Gen AI output and send it to the end-user
- Annotate user inputs with the Gen AI Annotator and use the annotations in the matching process with Gen AI matches
- Store Gen AI results in a variable with the Gen AI Action for internal logic or tasks
With the Generative AI features, the workload can be split between members of a team based on their roles/responsibilities to reduce the cognitive load and make the development more efficient. The users can connect to the Gen AI Service of their choice and multiple connections can be defined for different purposes.
Secrets
Teneo 8.0 comes with the feature Secrets, which is a way of allowing users of Teneo to store, manage, and use any secret/sensitive information such as API keys, tokens, passwords etc. in a secure and controlled way in the Platform. The Secrets functionality consists of two parts:
-
A new type of setting on the Account level, where the secrets and their values are created.
-
A new type of Global Engine script named Secret. This script type works just like the Solution loaded scripts, but also has access to and can make use of any Secrets and their values defined in the Account Settings.
This new feature allows to set different permissions for members of a team, ensuring that some can have access to create, update, and also use keys or tokens, whereas others won’t have these permissions. No users can see the values of the secrets once they are created, but all users can see the names of the secrets.
Deferred Annotations
In this release, the new feature Deferred Annotations has been added to the Teneo Platform.
Deferred Annotations allow for the creation of on-demand annotations and provide a way to control potentially expensive actions, such as calls to Gen AI Models or databases, within a solution. Deferred Annotations ensure that these expensive actions are executed only when they are needed and only the minimum number of times.
Gen AI Annotators also make use of Deferred Annotations to create their annotations “behind the scenes”. By combining Deferred Annotations (either directly or via Gen AI Annotators) and Secrets, potentially expensive calls (such as calling Gen AI) can be encapsulated securely to not leak sensitive data.
Public API
Versioning of the Public API
Teneo 8.0 introduces a new version of the public API. This enables critical systems to continue to connect with the API across releases - allowing a controlled rollout of changes to connected systems after the upgrade (these changes must be complete before the next upgrade - e.g. Teneo 8.1). Non-critical systems can continue to use the generic API endpoint as before.
Generic "unversioned" API endpoint
The path /(component)/rest/(endpoint) reaches an endpoint which always points to the latest API version - this is the most convenient for non critical systems
| Release | Platform Version(s) | API Version | Availability |
|---|---|---|---|
| new / post-upgrade | 8.0 | v2 | Teneo 8.0 |
| current / pre-upgrade | 7.6 | v1 | Teneo 7.6 |
Explicit API version endpoints
There are paths for explicitly targeting each available API version - these are safest for critical systems which must work seamlessly across versions
| Release | Platform Version(s) | API Version | Path | Availability |
|---|---|---|---|---|
| new / post-upgrade | 8.0 | v2 | /(component)/rest/v2/(endpoint) | Teneo 8.0+ |
| current / pre-upgrade | 7.6 | v1 | /(component)/rest/v1/(endpoint) | Teneo 7.6-8.0 |
Engine Scripting API
The following deprecated Engine Scripting API methods and enums are now removed from the Engine Scripting API. Please refer to the current methods/enums.
| Version | Element type | Deprecated | Current |
|---|---|---|---|
| 1.2 | WordListType | RAW | ORIGINAL |
| 1.2 | WordListType | RAW_PACKED | ORIGINAL_PACKED |
| 1.2 | WordListType | FINALIZED | FINAL |
| 1.0 | method | getUserInputWordCount() | getUserInputWords().length |
| 1.0 | method | getUserInputWordCount(...) | getUserInputWords(...).length |
| 1.0 | method | getUsedRawWords() | getUsedWords() |
| 1.0 | method | getUsedRawWordsCount() | getUsedWords().size |
| 1.0 | method | getNotUsedRawWords() | getNotUsedWords() |
| 1.0 | method | getNotUsedRawWordsCount() | getNotUsedWords().size() |
| 1.0 | method | getSentenceWordCount() | getSentenceWords().length |
| 1.0 | method | getSentenceWordCount(WordListType) | getSentenceWords(WordListType).length |
| 1.0 | method | getSentenceWordCount(ExtendedSentence, WordListType) | getSentenceWords(WordListType).length |
| 1.0 | EngineAccess | RAW_PACKED | ORIGINAL_PACKED |
| 1.0 | EngineAccess | RAW | ORIGINAL |
| 1.0 | EngineAccess | FINALIZED | FINAL |
| 2.1 | method | getLangObjName() | getLangCompName() |
| 2.1 | method | findMatchingLanguageObjects(...) | findMatchingLanguageComponents(...) |
Clients
The previously provided API clients are no longer provided as a public resource and users should rather call the endpoints directly with reference to the provided OpenAPI specification, or generate the clients from the provided OpenAPI specification.
- The Java clients for Inquire, Studio and Manager are no longer delivered.
- The Groovy client for Inquire is no longer delivered.
API Changes
Studio:
Breaking changes:
Teneo 8.0 introduces two breaking changes for the API for all version history endpoints: We introduced pagination with two query parameters offset and length, and the order of returned items are now swapped, from the newest to the oldest. (Note versioning of the public API allows complete control over when to move to the API version with the breaking change)
The following endpoints are affected:
- GET
/versions/history/{solutionId}/{documentId} - GET
/publish-environments/history/{solutionId}/{environmentId} - GET
/log-data-sources/tql-shared-queries/history/{logDataSourceId}/{tqlSharedQueryId}
The new version of the API with the query parameters:
- GET
/versions/history/{solutionId}/{documentId}?offset=x&length=y - GET
/publish-environments/history/{solutionId}/{environmentId}?offset=x&length=y - GET
/log-data-sources/tql-shared-queries/history/{logDataSourceId}/{tqlSharedQueryId}?offset=x&length=y
Users of these endpoints are advised to migrate the needed code to the new version. Please refer to Versioning of the public API for more information.
Non breaking changes:
New functionality areas:
The following are collections of new endpoints providing new functionality available through the public API:
- Bulk Imports
- Deferred annotation scripts
- Generative AI features
- Generation tasks
- Recycle bin
- Searching
- Solution Suggestions
For further details on these endpoints please refer to the provided OpenAPI specification.
Existing functionality areas:
Flows:
New endpoints have been added for flows.
They are the following:
- GET
flows/{solutionId}/{flowId} - GET
flows/{solutionId}/{flowId}/{version} - POST
flows/{solutionId} - PUT
flows/{solutionId}/{flowId} - DELETE
flows/{solutionId}/{flowId} - GET
flows/headers/{solutionId}
Log Data Sources:
New endpoints have been added for Log Data Sources.
They are the following:
- POST
log-data-sources/tql-shared-queries/{logDataSourceId} - PUT
log-data-sources/tql-shared-queries/{logDataSourceId}/{tqlSharedQueryId} - POST
log-data-sources/tql-shared-queries/publish/{logDataSourceId}/{tqlSharedQueryId} - GET
log-data-sources/tql-shared-queries/publish/suggested-name/{logDataSourceId}/{tqlSharedQueryId} - POST
log-data-sources/tql-shared-queries/unpublish/{logDataSourceId}/{tqlSharedQueryId} - DELETE
log-data-sources/tql-shared-queries/{logDataSourceId}/{tqlSharedQueryId} - GET
log-data-sources/tql-shared-queries/{logDataSourceId} - GET
log-data-sources/tql-shared-queries/{logDataSourceId}/{tqlSharedQueryId} - GET
log-data-sources/tql-shared-queries/{logDataSourceId}/{tqlSharedQueryId}/{version}
Versions:
Restoring a version of a document now returns a CopyOrRestoreSuccessReport for information on the result of the operation. This is a non breaking change.
Model changes:
Folder and FolderLeaf have readablePath and pathIds[] added.
SolutionStatistics has numberOfGenAITasks added.
Inquire:
Breaking changes:
login:
POST auth/login
In API v1 this endpoint allows for two styles of login, from v2 login requests must follow the defined strict model.
Users of this endpoint are advised to migrate the needed code to the new version. Please refer to Versioning of the public API for more information.
application/x-www-form-urlencoded changes:
Some endpoints previously consumed application/x-www-form-urlencoded these have now been changed to application/json to be congruent with the rest of our API.
These endpoints were:
- POST
tql/solution-revisions - POST
tql/submit - POST
tql/{lds}/shared-queries/submit - POST
import/log-archives/start/{logArchiveId}
Users of these endpoints are advised to migrate the needed code to the new version. Please refer to Versioning of the public API for more information.
Note: import/session has not been changed as of this release. It is the only remaining endpoint to use application/x-www-form-urlencoded.
Path changes:
When using our API path parameters should be at the end of the endpoint path. Some inquire endpoints were not consistent with this.
These endpoints were:
- GET
data/{lds}/session - GET
tql/{lds}/shared-queries - POST
tql/{lds}/shared-queries - DELETE
tql/{lds}/shared-queries - POST
tql/{lds}/shared-queries/submit
They have now been changed to:
- GET
data/session/{lds} - GET
tql/shared-queries/{lds} - POST
tql/shared-queries/{lds} - DELETE
tql/shared-queries/{lds} - POST
tql/shared-queries/submit/{lds}
Users of these endpoints are advised to migrate the needed code to the new version. Please refer to Versioning of the public API for more information.
Message changes:
In version 7.2 we introduced a breaking change for Inquire API which forced us to release a patch of the platform, 7.2-SP1. A new server parameter 'newMessageTypes' was added so that server admins could choose which message type to return in the inquire rest API.
For this release, we want that this behavior is kept only for v1. v2 of the API should always use the new message type i.e. this parameter will only affect calls to API v1 - and will be removed in the next API release.
This affects the following previous endpoints:
- POST
tql/submit - POST
tql/{lds}/shared-queries/submit - GET
tql/poll
Users of these endpoints are advised to migrate the needed code to the new version. Please refer to Versioning of the public API for more information.
Non breaking changes:
All endpoints now have well defined models specified as the return type for improved openAPI functionality.
User Driven Improvements and bug fixes
Several user driven improvements and bug fixes are included in the Teneo 8.0 release and listed below:
Studio Desktop
-
An out of memory issue observed by some users after working with the application for long period of time has been identified and corrected.
-
A problem with publishing, where after many publishes have occurred the process of publishing starts to slow down or time out, was fixed. The problem was related to the publishing version history being lengthy and taking time to populate. Pagination was introduced, so that only a few versions are loaded by default and the user can load further historical versions as desired. Please note that this change introduces a breaking change of used endpoints; read more under Breaking changes Teneo 8.0.
-
The
engineVersionfield in log files now displays the correct version. -
Querying an unknown aggregator, i.e., a query containing a non-existing aggregator name for example due to a typo or similar, now returns an error message to the user to draw the attention to the possible typo or similar so that the user can correct the aggregator name as needed (and not the entire query!).
-
Some inconsistencies while selecting content with Ctrl+A has been corrected. Minor improvements are also done to the document count in the bottom ribbon of Studio to ensure it always shows accurate information.
-
An issue with folders not loading correctly in some specific scenarios has been fixed.
-
The functionality to Generate TLML Syntax Matches has been reviewed to fix some encountered issues and ensure correct functionality.
-
When removing a CLU Setting, information messages are again correctly displayed.
-
A pointless prompt to save non-existing changes when working with the Log Data Source window open has been removed.
-
Tooltips for 'Used By' in Language Objects and Entities were enhanced.
-
The preview for Entity bulk import now correctly show variable values for each entry.
-
Issues related to error messages raised in 'Add content' were fixed.
-
When searching for Language components in the TLML syntax editor, any tooltips for suggested Language Objects or Entities that resides in an assigned Library now correctly appear again.
-
Any recent documents worked on now correctly appear in the My Work tab again, also in between sessions.
-
A scenario where Classes in edit mode becomes locked when opening a flow with a missing class reference has been corrected.
-
A typo corrected in an information message when copying documents.
-
Auto-test runs are now correctly canceled if they happen to run while Studio encounters connectivity issues.
Studio Web
-
Undo/redo functionality has been added to Studio Web, allowing users to undo and redo changes while working on any document type with the keyboard shortcuts
ctrl + z / ctrl + y(Windows) orcmd + z / cmd + shift + z(Mac). -
The nodes in the flow graph are made wider to improve the amount of visible information and enhance readability, for example of mapped variables in flow link and integration nodes.
-
The design and structure of the dashboard tiles is updated to facilitate the new tiles added for Gen AI.
-
Improvements are done to the Studio Web UI to optimize the navigation from the Solutions list and the list of Flows.
-
The option to import a solution and keeping its ID is now hidden for users without permission to perform this action.
-
Cancelling a drag and drop of a .solution file onto an open solution has been reviewed to ensure expected behavior.
-
An issue with the Match menu becoming translucent so that some flow items could appear on top of the menu is now resolved.
-
A bug allowing users to open the same document in edit mode in two different tabs has been fixed.
Teneo Engine
- When Engine is unable to clone a variable to pass by value, a warning is thrown. But for example passing an immutable instant/object also throws this warning, even though, effectively it is by value. To make this more tolerant, the current filter has been extended to exclude more immutable classes from being cloned, for example
ZoneRegion.
Input Processors
- Fixed issue in which Engine failed to start in solutions in the Gujarati language due to problems with initialization of the Input Processor Predict.
Tech Stack
-
Java is upgraded and the entire platform is now using
Java 21. Java 21 brings, among things, significant improvements in performance, memory and garbage collection handling when used in Kubernetes. -
Users should be aware that any Groovy code they have now runs on top of the new Java 21.
- This change provides access through Groovy code to the new features available in Java 21.
- This upgrade should not affect existing functionality, however users should verify Groovy code within solutions.