diff --git a/api/pyproject.toml b/api/pyproject.toml index 1d9813f427..e1578d57df 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "api" -version = "0.59.9" +version = "0.59.10" description = "Agenta API" authors = [ { name = "Mahmoud Mabrouk", email = "mahmoud@agenta.ai" }, diff --git a/sdk/agenta/sdk/utils/cache.py b/sdk/agenta/sdk/utils/cache.py index f20bf53cf5..e82bf26ee0 100644 --- a/sdk/agenta/sdk/utils/cache.py +++ b/sdk/agenta/sdk/utils/cache.py @@ -5,7 +5,7 @@ from threading import Lock CACHE_CAPACITY = int(getenv("AGENTA_MIDDLEWARE_CACHE_CAPACITY", "512")) -CACHE_TTL = int(getenv("AGENTA_MIDDLEWARE_CACHE_TTL", str(5 * 60))) # 5 minutes +CACHE_TTL = int(getenv("AGENTA_MIDDLEWARE_CACHE_TTL", str(1 * 60))) # 1 minutes class TTLLRUCache: diff --git a/sdk/pyproject.toml b/sdk/pyproject.toml index 241a5703e9..15047cc74f 100644 --- a/sdk/pyproject.toml +++ b/sdk/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "agenta" -version = "0.59.9" +version = "0.59.10" description = "The SDK for agenta is an open-source LLMOps platform." readme = "README.md" authors = [ diff --git a/web/ee/package.json b/web/ee/package.json index c9c26fff0d..534779b1f0 100644 --- a/web/ee/package.json +++ b/web/ee/package.json @@ -1,6 +1,6 @@ { "name": "@agenta/ee", - "version": "0.59.9", + "version": "0.59.10", "private": true, "engines": { "node": ">=18" diff --git a/web/oss/package.json b/web/oss/package.json index 0054d82ca6..2d344c2980 100644 --- a/web/oss/package.json +++ b/web/oss/package.json @@ -1,6 +1,6 @@ { "name": "@agenta/oss", - "version": "0.59.9", + "version": "0.59.10", "private": true, "engines": { "node": ">=18" diff --git a/web/oss/src/components/ModelRegistry/Drawers/ConfigureProviderDrawer/assets/ConfigureProviderDrawerContent.tsx b/web/oss/src/components/ModelRegistry/Drawers/ConfigureProviderDrawer/assets/ConfigureProviderDrawerContent.tsx index 165e8c4865..e5ab50f477 100644 --- a/web/oss/src/components/ModelRegistry/Drawers/ConfigureProviderDrawer/assets/ConfigureProviderDrawerContent.tsx +++ b/web/oss/src/components/ModelRegistry/Drawers/ConfigureProviderDrawer/assets/ConfigureProviderDrawerContent.tsx @@ -8,7 +8,7 @@ import SelectLLMProvider from "@/oss/components/SelectLLMProvider" import {useVaultSecret} from "@/oss/hooks/useVaultSecret" import {LlmProvider} from "@/oss/lib/helpers/llmProviders" import {isAppNameInputValid} from "@/oss/lib/helpers/utils" -import {SecretDTOProvider} from "@/oss/lib/Types" +import {PROVIDER_KINDS, PROVIDER_LABELS, SecretDTOProvider} from "@/oss/lib/Types" import LabelInput from "../../../assets/LabelInput" @@ -109,12 +109,28 @@ const ConfigureProviderDrawerContent = ({ [standardProviders, customProviders], ) - const providerValue = useWatch("provider", form)?.toLowerCase() || "" - const shouldFilter = validProviders.includes(providerValue) + const providerValue = useWatch("provider", form) || "" + const normalizedProviderKind = useMemo(() => { + if (!providerValue || typeof providerValue !== "string") { + return "" + } + + const trimmedValue = providerValue.trim() + const lowerCaseValue = trimmedValue.toLowerCase() + + return PROVIDER_KINDS[trimmedValue] ?? PROVIDER_KINDS[lowerCaseValue] ?? lowerCaseValue + }, [providerValue]) + + const shouldFilter = validProviders.includes(normalizedProviderKind) useEffect(() => { if (selectedProvider) { - form.setFieldsValue(selectedProvider) + form.setFieldsValue({ + ...selectedProvider, + provider: selectedProvider.provider + ? (PROVIDER_LABELS[selectedProvider.provider] ?? selectedProvider.provider) + : selectedProvider.provider, + }) } else { form.resetFields() } @@ -177,7 +193,7 @@ const ConfigureProviderDrawerContent = ({ {PROVIDER_FIELDS.filter((field) => { if (shouldFilter) { - return !field.model || field.model.includes(providerValue) + return !field.model || field.model.includes(normalizedProviderKind) } return true }).map((rawField) => { diff --git a/web/oss/src/components/pages/settings/Secrets/SecretProviderTable/index.tsx b/web/oss/src/components/pages/settings/Secrets/SecretProviderTable/index.tsx index 075555dc6e..aad21d6bc9 100644 --- a/web/oss/src/components/pages/settings/Secrets/SecretProviderTable/index.tsx +++ b/web/oss/src/components/pages/settings/Secrets/SecretProviderTable/index.tsx @@ -31,7 +31,7 @@ const SecretProviderTable = ({type}: {type: "standard" | "custom"}) => { style: {minWidth: 160}, }), render: (_, record) => { - const Icon = LLMIcons[(record.title as string)] + const Icon = LLMIcons[record.title as string] return isCustom ? ( record?.name diff --git a/web/oss/src/lib/Types.ts b/web/oss/src/lib/Types.ts index 14221b3b8c..858aeaa78d 100644 --- a/web/oss/src/lib/Types.ts +++ b/web/oss/src/lib/Types.ts @@ -470,6 +470,15 @@ export const PROVIDER_LABELS: Record = { custom: "Custom Provider", } +export const PROVIDER_KINDS: Record = Object.entries(PROVIDER_LABELS).reduce( + (acc, [kind, label]) => { + acc[kind] = kind + acc[label.toLowerCase()] = kind + return acc + }, + {} as Record, +) + interface VaultModels { slug: string } diff --git a/web/oss/src/lib/helpers/llmProviders.ts b/web/oss/src/lib/helpers/llmProviders.ts index ac5edf51ed..7d307d994c 100644 --- a/web/oss/src/lib/helpers/llmProviders.ts +++ b/web/oss/src/lib/helpers/llmProviders.ts @@ -1,4 +1,4 @@ -import {StandardSecretDTO, CustomSecretDTO, SecretDTOKind} from "../Types" +import {StandardSecretDTO, CustomSecretDTO, SecretDTOKind, PROVIDER_KINDS} from "../Types" export const llmAvailableProvidersToken = "llmAvailableProvidersToken" @@ -98,6 +98,13 @@ export const llmAvailableProviders: LlmProvider[] = [ ] export const transformCustomProviderPayloadData = (values: LlmProvider) => { + const providerInput = values.provider?.trim() ?? "" + const providerKind = providerInput + ? (PROVIDER_KINDS[providerInput] ?? + PROVIDER_KINDS[providerInput.toLowerCase()] ?? + providerInput.toLowerCase()) + : "" + return { header: { name: values.name, @@ -106,7 +113,7 @@ export const transformCustomProviderPayloadData = (values: LlmProvider) => { secret: { kind: SecretDTOKind.CUSTOM_PROVIDER_KEY, data: { - kind: values.provider?.toLowerCase(), + kind: providerKind, provider: { url: values.apiBaseUrl, version: values.version, diff --git a/web/package.json b/web/package.json index f443722612..68d5ab27f4 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "name": "agenta-web", - "version": "0.59.9", + "version": "0.59.10", "workspaces": [ "ee", "oss",