diff --git a/backend/core/routes/brain_routes.py b/backend/core/routes/brain_routes.py index 0588a2ce2..de17b69c0 100644 --- a/backend/core/routes/brain_routes.py +++ b/backend/core/routes/brain_routes.py @@ -10,6 +10,7 @@ from models.brains import ( ) from models.settings import BrainRateLimiting from models.users import User + from routes.authorizations.brain_authorization import RoleEnum, has_brain_authorization logger = get_logger(__name__) @@ -74,10 +75,7 @@ async def get_brain_endpoint( brain = Brain(id=brain_id) brains = brain.get_brain_details() if len(brains) > 0: - return { - "id": brain_id, - "name": brains[0]["name"], - } + return brains[0] else: return HTTPException( status_code=404, diff --git a/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/BrainManagementTabs.tsx b/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/BrainManagementTabs.tsx index 7ec26a520..1dc4675f2 100644 --- a/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/BrainManagementTabs.tsx +++ b/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/BrainManagementTabs.tsx @@ -1,6 +1,7 @@ import { Content, List, Root } from "@radix-ui/react-tabs"; import { BrainTabTrigger, PeopleTab } from "./components"; +import { SettingsTab } from "./components/SettingsTab/SettingsTab"; import { useBrainManagementTabs } from "./hooks/useBrainManagementTabs"; export const BrainManagementTabs = (): JSX.Element => { @@ -38,11 +39,14 @@ export const BrainManagementTabs = (): JSX.Element => {
-

coming soon

+
+ +

Coming soon

+
); diff --git a/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/components/BrainTabTrigger.tsx b/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/components/BrainTabTrigger.tsx index 8371a271a..5c3cc2fc4 100644 --- a/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/components/BrainTabTrigger.tsx +++ b/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/components/BrainTabTrigger.tsx @@ -16,8 +16,8 @@ export const BrainTabTrigger = ({ }: BrainTabTriggerProps): JSX.Element => { return ( onChange(value)} diff --git a/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/components/SettingsTab/SettingsTab.tsx b/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/components/SettingsTab/SettingsTab.tsx new file mode 100644 index 000000000..223368037 --- /dev/null +++ b/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/components/SettingsTab/SettingsTab.tsx @@ -0,0 +1,130 @@ +/* eslint-disable max-lines */ + +import { UUID } from "crypto"; + +import Button from "@/lib/components/ui/Button"; +import { Divider } from "@/lib/components/ui/Divider"; +import Field from "@/lib/components/ui/Field"; +import { TextArea } from "@/lib/components/ui/TextField"; +import { models, paidModels } from "@/lib/context/BrainConfigProvider/types"; +import { defineMaxTokens } from "@/lib/helpers/defineMexTokens"; + +import { useSettingsTab } from "./hooks/useSettingsTab"; + +type SettingsTabProps = { + brainId: UUID; +}; + +export const SettingsTab = ({ brainId }: SettingsTabProps): JSX.Element => { + const { + handleSubmit, + register, + hasChanges, + openAiKey, + temperature, + maxTokens, + model, + setAsDefaultBrainHandler, + isSettingAsDefault, + isUpdating, + isDefaultBrain, + } = useSettingsTab({ brainId }); + + return ( +
void handleSubmit(e)} + className="my-10 mb-0 flex flex-col items-center gap-2" + > +
+
+ +
+
+ {isDefaultBrain ? ( +
+ Default brain +
+ ) : ( + + )} +
+
+