🛠️ fix(Azure/Assistants): Handle Long Domain Names & Other Minor chores (#2475)

* chore: replace violation cache accessors with enum

* chore: fix test

* chore(fileSchema): index timestamps

* fix(ActionService): use encoding/caching strategy for handling assistant function character length limit

* refactor(actions): async `domainParser` also resolve retrieved model (which is deployment name) to user-defined model

* style(AssistantAction): add `whitespace-nowrap` for ellipsis

* refactor(ActionService): if domain is less than or equal to encoded domain fixed length, return domain with replacement of separator

* refactor(actions): use sessions/transactions for updating Assistant Action database records

* chore: remove TTL from ENCODED_DOMAINS cache

* refactor(domainParser): minor optimization and add tests

* fix(spendTokens): use txData.user for token usage logging

* refactor(actions): add helper function `withSession` for database operations with sessions/transactions

* fix(PluginsClient): logger debug `message` field edge case
This commit is contained in:
Danny Avila 2024-04-20 15:02:56 -04:00 committed by GitHub
parent 5d642d0187
commit 8c22bb1d3d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 365 additions and 63 deletions

View file

@ -274,9 +274,16 @@ async function processRequiredActions(client, requiredActions) {
})) ?? [];
}
const actionSet = actionSets.find((action) =>
currentAction.tool.includes(domainParser(client.req, action.metadata.domain, true)),
);
let actionSet = null;
let currentDomain = '';
for (let action of actionSets) {
const domain = await domainParser(client.req, action.metadata.domain, true);
if (currentAction.tool.includes(domain)) {
currentDomain = domain;
actionSet = action;
break;
}
}
if (!actionSet) {
// TODO: try `function` if no action set is found
@ -298,10 +305,8 @@ async function processRequiredActions(client, requiredActions) {
builders = requestBuilders;
}
const functionName = currentAction.tool.replace(
`${actionDelimiter}${domainParser(client.req, actionSet.metadata.domain, true)}`,
'',
);
const functionName = currentAction.tool.replace(`${actionDelimiter}${currentDomain}`, '');
const requestBuilder = builders[functionName];
if (!requestBuilder) {