From 8f0af8833234a7dede723abd5391597c7af1d0ab Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Thu, 11 Jul 2024 14:03:24 -0700 Subject: [PATCH] [FIX] Fix manual input model pref for agents (#1848) * patch llm providers that have manual inputs for model pref * refactor agent model fallback update UI to show disabled providers to stop questions about provider limitations * patch log on startup --------- Co-authored-by: timothycarambat --- .../AgentConfig/AgentModelSelection/index.jsx | 25 ++++++++++++++- .../ChatModelSelection/index.jsx | 1 + .../WorkspaceLLMSelection/index.jsx | 21 ++++++++++-- server/utils/agents/index.js | 32 +++++++++++++++++-- 4 files changed, 73 insertions(+), 6 deletions(-) rename frontend/src/pages/WorkspaceSettings/ChatSettings/{ => WorkspaceLLMSelection}/ChatModelSelection/index.jsx (99%) diff --git a/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentModelSelection/index.jsx b/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentModelSelection/index.jsx index 270f22ef..4e0a9592 100644 --- a/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentModelSelection/index.jsx +++ b/frontend/src/pages/WorkspaceSettings/AgentConfig/AgentModelSelection/index.jsx @@ -1,7 +1,9 @@ import useGetProviderModels, { DISABLED_PROVIDERS, } from "@/hooks/useGetProvidersModels"; +import paths from "@/utils/paths"; import { useTranslation } from "react-i18next"; +import { Link, useParams } from "react-router-dom"; // These models do NOT support function calling function supportedModel(provider, model = "") { @@ -18,11 +20,32 @@ export default function AgentModelSelection({ workspace, setHasChanges, }) { + const { slug } = useParams(); const { defaultModels, customModels, loading } = useGetProviderModels(provider); const { t } = useTranslation(); - if (DISABLED_PROVIDERS.includes(provider)) return null; + if (DISABLED_PROVIDERS.includes(provider)) { + return ( +
+

+ Multi-model support is not supported for this provider yet. +
+ Agent's will use{" "} + + the model set for the workspace + {" "} + or{" "} + + the model set for the system. + +

+
+ ); + } if (loading) { return ( diff --git a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatModelSelection/index.jsx b/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/ChatModelSelection/index.jsx similarity index 99% rename from frontend/src/pages/WorkspaceSettings/ChatSettings/ChatModelSelection/index.jsx rename to frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/ChatModelSelection/index.jsx index 71d943e5..0ca6d0a4 100644 --- a/frontend/src/pages/WorkspaceSettings/ChatSettings/ChatModelSelection/index.jsx +++ b/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/ChatModelSelection/index.jsx @@ -2,6 +2,7 @@ import useGetProviderModels, { DISABLED_PROVIDERS, } from "@/hooks/useGetProvidersModels"; import { useTranslation } from "react-i18next"; + export default function ChatModelSelection({ provider, workspace, diff --git a/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/index.jsx b/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/index.jsx index 7542f2d7..436215a8 100644 --- a/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/index.jsx +++ b/frontend/src/pages/WorkspaceSettings/ChatSettings/WorkspaceLLMSelection/index.jsx @@ -3,8 +3,10 @@ import AnythingLLMIcon from "@/media/logo/anything-llm-icon.png"; import WorkspaceLLMItem from "./WorkspaceLLMItem"; import { AVAILABLE_LLM_PROVIDERS } from "@/pages/GeneralSettings/LLMPreference"; import { CaretUpDown, MagnifyingGlass, X } from "@phosphor-icons/react"; -import ChatModelSelection from "../ChatModelSelection"; +import ChatModelSelection from "./ChatModelSelection"; import { useTranslation } from "react-i18next"; +import { Link } from "react-router-dom"; +import paths from "@/utils/paths"; // Some providers can only be associated with a single model. // In that case there is no selection to be made so we can just move on. @@ -148,7 +150,22 @@ export default function WorkspaceLLMSelection({ )} - {!NO_MODEL_SELECTION.includes(selectedLLM) && ( + {NO_MODEL_SELECTION.includes(selectedLLM) ? ( + <> + {selectedLLM !== "default" && ( +
+

+ Multi-model support is not supported for this provider yet. +
+ This workspace will use{" "} + + the model set for the system. + +

+
+ )} + + ) : (