🛠️ 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

@ -1,5 +1,5 @@
// import { useState, useEffect } from 'react';
import { actionDelimiter, actionDomainSeparator } from 'librechat-data-provider';
import { actionDelimiter, actionDomainSeparator, Constants } from 'librechat-data-provider';
import * as Popover from '@radix-ui/react-popover';
import useLocalize from '~/hooks/useLocalize';
import ProgressCircle from './ProgressCircle';
@ -63,7 +63,7 @@ export default function ToolCall({
onClick={() => ({})}
inProgressText={localize('com_assistants_running_action')}
finishedText={
domain
domain && domain.length !== Constants.ENCODED_DOMAIN_LENGTH
? localize('com_assistants_completed_action', domain)
: localize('com_assistants_completed_function', function_name)
}

View file

@ -1,4 +1,5 @@
import { Fragment } from 'react';
import { ViolationTypes } from 'librechat-data-provider';
import type { TResPlugin } from 'librechat-data-provider';
import type { TMessageContentProps, TText, TDisplayProps } from '~/common';
import { useAuthContext } from '~/hooks';
@ -12,7 +13,7 @@ import Error from './Error';
const ErrorMessage = ({ text }: TText) => {
const { logout } = useAuthContext();
if (text.includes('ban')) {
if (text.includes(ViolationTypes.BAN)) {
logout();
return null;
}

View file

@ -15,7 +15,7 @@ export default function AssistantAction({
className="border-token-border-medium flex w-full rounded-lg border text-sm hover:cursor-pointer"
>
<div
className="h-9 grow px-3 py-2"
className="h-9 grow whitespace-nowrap px-3 py-2"
style={{ textOverflow: 'ellipsis', wordBreak: 'break-all', overflow: 'hidden' }}
>
{action.metadata.domain}