From 708068a09e1817e493a1f186567c198aebbaa27b Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Mon, 23 Oct 2023 13:10:34 -0700 Subject: [PATCH] AnythingLLM UI overhaul (#278) * v2 Login screen (#254) * adding gradients for modal and sidebar * adding font setup * redesigned login screen for MultiUserAuth * completed multi user mode login screen * linting * login screen for single user auth redesign complete * created reusable gradient for login screen --------- Co-authored-by: timothycarambat * v2 sidebar (#262) * adding gradients for modal and sidebar * adding font setup * redesigned login screen for MultiUserAuth * completed multi user mode login screen * linting * login screen for single user auth redesign complete * WIP sidebar redesign * created reusable gradient for login screen * remove dark mode items * update new workspace button * completed sidebar for desktop view * add interactivity states --------- Co-authored-by: timothycarambat * remove duplicated pkg * v2 settings (#264) * adding gradients for modal and sidebar * adding font setup * redesigned login screen for MultiUserAuth * completed multi user mode login screen * linting * login screen for single user auth redesign complete * WIP sidebar redesign * created reusable gradient for login screen * remove dark mode items * update new workspace button * completed sidebar for desktop view * WIP added colors/gradients to admin settings * WIP fix discord logo import * WIP settings redesign - added routes for general settings and restyled components * WIP settings for LLM Preference, VectorDB, ExportImport * settings menu UI complete WIP functionality * settings fully functional/removed dark mode logo * linting * removing unneeded dependency * Fix admin sidebar visibility Fix API Keys location and work with single/mum Fix Appearance location - WIP on funcitonality * update api key page * fix permissions for appearance * Single user mode fixes * fix multi user mode enabled * fix import export * Rename AdminSidebar to SettingsSidebar * Fix mobile sidebar links --------- Co-authored-by: timothycarambat * V2 user logout (#265) * Add user logout button * hide other 3 dot button * wrap admin routes * V2 workspace modal (#267) Update new workspace modal remove duplicate tailwind colors * v2 Settings modal styles (#266) * EditUserModal styles complete * workspaces modals styles complete * create invite link modal styles complete * create new api key modal styles complete --------- Co-authored-by: timothycarambat * v2 Chats Redesign (#270) * fix default message for new workspace * prompt input box ui redesign complete * ui tweak to prompt input * WIP chat msg redesign * chat container and historical chat messages redesign * manage workspace modal appears when clicking upload a document on empty workspace * fixed loading skeleton styles * citations redesign complete * restyle pending chat and prompt reply components * default chat messages styles updated * linting * update how chats are returned --------- Co-authored-by: timothycarambat * Onboarding modal flow for first time setup (#274) * WIP onboarding modal flow * onboarding flow complete and private route redirection for onboarding setep * redirect to home on onboarding complete * add onboarding redirect using paths.onboarding() * Apply changes to auth flow, onboarding determination, and flows * remove formref --------- Co-authored-by: timothycarambat * v2 document picker (#275) * remove unneeded comments * WIP document picker UI * WIP basic UI complete for document picker tab and settings tab * linting * settings menu complete, document row WIP * WIP document picker loading from localFiles * WIP file picker logic * refactoring document picker to work with backend * WIP refactoring document picker * WIP refactor document picker to work with backend * file uploading with dropzone working * WIP deleting file when not embedded * WIP embeddings * WIP embedding with temp button and hardcoded paths * WIP placeholder for WorkspaceDirectory component * WIP WorkspaceDirectory * WIP * sort workspaceDocs and availibleDocs complete * added directories util * add and remove document from ws working * v2 document picker complete * reference modal ui bug fixes * truncate function bug fix * ManageWorkspace modal bug fixes * blocking mobile users modal for workspace settings * mobile ui fixes * linting * ui padding fixes * citation bug fixes * code review changes * debounce handlers * change tempFile object to array * selection count fix * Convert workspace modal to div Memo workspace settings update conditional rendering of workspace settings * Show no documents --------- Co-authored-by: timothycarambat * mobile sidebar styles * padding on Mobile view mobile sidebar items * UI touchup * suggestion implementations * CSS fixes and animation perfomance change to GPU accelerated and 60fps * change will-change * remove transitions from onboarding modals, simplify on-change handlers * Swap onboarding to memoized components and debounce onchange handlers * remove console log * remove Avenir font --------- Co-authored-by: Sean Hatfield --- frontend/package.json | 2 + frontend/public/fonts/AvenirNext.ttf | Bin 46240 -> 0 bytes frontend/public/fonts/PlusJakartaSans.ttf | Bin 0 -> 176144 bytes frontend/src/App.jsx | 60 ++- .../src/components/AdminSidebar/index.jsx | 323 ------------- frontend/src/components/ChatBubble/index.jsx | 37 +- frontend/src/components/DefaultChat/index.jsx | 454 ++++++++++-------- .../components/EditingChatBubble/index.jsx | 41 +- frontend/src/components/Icons/Discord.jsx | 15 - .../components/LLMProviderOption/index.jsx | 37 ++ .../ApiKey/index.jsx | 0 .../Appearance/index.jsx | 9 +- .../ExportImport/index.jsx | 0 .../LLMSelection/index.jsx | 5 +- .../MultiUserMode/index.jsx | 0 .../PasswordProtection/index.jsx | 0 .../VectorDbs/index.jsx | 0 .../{Settings => LegacySettings}/index.jsx | 0 .../Documents/ConfirmationModal/index.jsx | 89 ---- .../Documents/Directory/FileRow/index.jsx | 106 ++++ .../Documents/Directory/FolderRow/index.jsx | 80 +++ .../Documents/Directory/index.jsx | 275 +++++------ .../UploadFile}/FileUploadProgress/index.jsx | 34 +- .../Documents/UploadFile/index.jsx | 111 +++++ .../WorkspaceFileRow/index.jsx | 99 ++++ .../Documents/WorkspaceDirectory/index.jsx | 122 +++++ .../Modals/MangeWorkspace/Documents/index.jsx | 343 +++++++------ .../Modals/MangeWorkspace/Settings/index.jsx | 343 +++++++------ .../Modals/MangeWorkspace/Upload/index.jsx | 202 -------- .../Modals/MangeWorkspace/index.jsx | 181 ++++--- .../src/components/Modals/NewWorkspace.jsx | 30 +- .../Modals/Password/MultiUserAuth.jsx | 43 +- .../Modals/Password/SingleUserAuth.jsx | 34 +- .../src/components/Modals/Password/index.jsx | 23 +- frontend/src/components/Preloader.jsx | 6 +- .../src/components/PrivateRoute/index.jsx | 70 ++- .../src/components/SettingsSidebar/index.jsx | 394 +++++++++++++++ .../Sidebar/ActiveWorkspaces/index.jsx | 67 ++- .../Sidebar/SettingsOverlay/index.jsx | 188 -------- frontend/src/components/Sidebar/index.jsx | 213 ++++---- frontend/src/components/UserIcon/index.jsx | 9 +- frontend/src/components/UserMenu/index.jsx | 74 +++ .../src/components/VectorDBOption/index.jsx | 39 ++ .../ChatHistory/Citation/index.jsx | 196 +++++--- .../ChatHistory/HistoricalMessage/index.jsx | 79 +-- .../ChatHistory/PromptReply/index.jsx | 65 ++- .../ChatContainer/ChatHistory/index.jsx | 40 +- .../ChatContainer/PromptInput/index.jsx | 226 +++------ .../WorkspaceChat/ChatContainer/index.jsx | 4 +- .../WorkspaceChat/LoadingChat/index.jsx | 24 +- frontend/src/hooks/useLogo.js | 15 +- frontend/src/index.css | 93 ++-- ...hing-llm-dark.png => anything-llm-old.png} | Bin ...nything-llm-light.png => anything-llm.png} | Bin frontend/src/models/admin.js | 44 -- frontend/src/models/system.js | 40 +- .../src/pages/Admin/Chats/ChatRow/index.jsx | 35 +- frontend/src/pages/Admin/Chats/index.jsx | 32 +- .../Admin/Invitations/InviteRow/index.jsx | 27 +- .../Invitations/NewInviteModal/index.jsx | 27 +- .../src/pages/Admin/Invitations/index.jsx | 30 +- frontend/src/pages/Admin/System/index.jsx | 32 +- .../pages/Admin/Users/NewUserModal/index.jsx | 33 +- .../Users/UserRow/EditUserModal/index.jsx | 35 +- .../src/pages/Admin/Users/UserRow/index.jsx | 15 +- frontend/src/pages/Admin/Users/index.jsx | 34 +- .../Workspaces/NewWorkspaceModal/index.jsx | 28 +- .../EditWorkspaceUsersModal/index.jsx | 33 +- .../Admin/Workspaces/WorkspaceRow/index.jsx | 25 +- frontend/src/pages/Admin/Workspaces/index.jsx | 28 +- .../ApiKeys/ApiKeyRow/index.jsx | 29 +- .../ApiKeys/NewApiKeyModal/index.jsx | 36 +- .../ApiKeys/index.jsx | 43 +- .../Appearance/index.jsx | 147 +++--- .../GeneralSettings/ExportImport/index.jsx | 190 ++++++++ .../GeneralSettings/LLMPreference/index.jsx | 256 ++++++++++ .../pages/GeneralSettings/Security/index.jsx | 337 +++++++++++++ .../GeneralSettings/VectorDatabase/index.jsx | 339 +++++++++++++ frontend/src/pages/Login/index.jsx | 11 + frontend/src/pages/Main/index.jsx | 11 +- .../Steps/AppearanceSetup/index.jsx | 136 ++++++ .../Steps/CreateFirstWorkspace/index.jsx | 60 +++ .../Steps/LLMSelection/index.jsx | 231 +++++++++ .../Steps/MultiUserSetup/index.jsx | 121 +++++ .../Steps/PasswordProtection/index.jsx | 107 +++++ .../Steps/UserModeSelection/index.jsx | 47 ++ .../Steps/VectorDatabaseConnection/index.jsx | 310 ++++++++++++ .../OnboardingFlow/OnboardingModal/index.jsx | 109 +++++ frontend/src/pages/OnboardingFlow/index.jsx | 31 ++ frontend/src/pages/WorkspaceChat/index.jsx | 2 +- frontend/src/utils/constants.js | 3 + frontend/src/utils/directories.js | 34 ++ frontend/src/utils/paths.js | 32 +- frontend/tailwind.config.js | 43 +- frontend/yarn.lock | 10 + server/.gitignore | 3 +- server/endpoints/system.js | 91 ++-- server/models/user.js | 2 +- server/models/workspaceChats.js | 2 + server/storage/anythingllm.db.bak | Bin 0 -> 106496 bytes server/storage/assets/anything-llm-dark.png | Bin 8413 -> 0 bytes ...nything-llm-light.png => anything-llm.png} | Bin server/swagger/index.js | 4 +- server/utils/files/logo.js | 16 +- server/utils/helpers/updateENV.js | 5 +- 105 files changed, 5527 insertions(+), 2669 deletions(-) delete mode 100644 frontend/public/fonts/AvenirNext.ttf create mode 100644 frontend/public/fonts/PlusJakartaSans.ttf delete mode 100644 frontend/src/components/AdminSidebar/index.jsx delete mode 100644 frontend/src/components/Icons/Discord.jsx create mode 100644 frontend/src/components/LLMProviderOption/index.jsx rename frontend/src/components/Modals/{Settings => LegacySettings}/ApiKey/index.jsx (100%) rename frontend/src/components/Modals/{Settings => LegacySettings}/Appearance/index.jsx (96%) rename frontend/src/components/Modals/{Settings => LegacySettings}/ExportImport/index.jsx (100%) rename frontend/src/components/Modals/{Settings => LegacySettings}/LLMSelection/index.jsx (98%) rename frontend/src/components/Modals/{Settings => LegacySettings}/MultiUserMode/index.jsx (100%) rename frontend/src/components/Modals/{Settings => LegacySettings}/PasswordProtection/index.jsx (100%) rename frontend/src/components/Modals/{Settings => LegacySettings}/VectorDbs/index.jsx (100%) rename frontend/src/components/Modals/{Settings => LegacySettings}/index.jsx (100%) delete mode 100644 frontend/src/components/Modals/MangeWorkspace/Documents/ConfirmationModal/index.jsx create mode 100644 frontend/src/components/Modals/MangeWorkspace/Documents/Directory/FileRow/index.jsx create mode 100644 frontend/src/components/Modals/MangeWorkspace/Documents/Directory/FolderRow/index.jsx rename frontend/src/components/Modals/MangeWorkspace/{Upload => Documents/UploadFile}/FileUploadProgress/index.jsx (63%) create mode 100644 frontend/src/components/Modals/MangeWorkspace/Documents/UploadFile/index.jsx create mode 100644 frontend/src/components/Modals/MangeWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx create mode 100644 frontend/src/components/Modals/MangeWorkspace/Documents/WorkspaceDirectory/index.jsx delete mode 100644 frontend/src/components/Modals/MangeWorkspace/Upload/index.jsx create mode 100644 frontend/src/components/SettingsSidebar/index.jsx delete mode 100644 frontend/src/components/Sidebar/SettingsOverlay/index.jsx create mode 100644 frontend/src/components/UserMenu/index.jsx create mode 100644 frontend/src/components/VectorDBOption/index.jsx rename frontend/src/media/logo/{anything-llm-dark.png => anything-llm-old.png} (100%) rename frontend/src/media/logo/{anything-llm-light.png => anything-llm.png} (100%) rename frontend/src/pages/{Admin => GeneralSettings}/ApiKeys/ApiKeyRow/index.jsx (64%) rename frontend/src/pages/{Admin => GeneralSettings}/ApiKeys/NewApiKeyModal/index.jsx (64%) rename frontend/src/pages/{Admin => GeneralSettings}/ApiKeys/index.jsx (62%) rename frontend/src/pages/{Admin => GeneralSettings}/Appearance/index.jsx (54%) create mode 100644 frontend/src/pages/GeneralSettings/ExportImport/index.jsx create mode 100644 frontend/src/pages/GeneralSettings/LLMPreference/index.jsx create mode 100644 frontend/src/pages/GeneralSettings/Security/index.jsx create mode 100644 frontend/src/pages/GeneralSettings/VectorDatabase/index.jsx create mode 100644 frontend/src/pages/Login/index.jsx create mode 100644 frontend/src/pages/OnboardingFlow/OnboardingModal/Steps/AppearanceSetup/index.jsx create mode 100644 frontend/src/pages/OnboardingFlow/OnboardingModal/Steps/CreateFirstWorkspace/index.jsx create mode 100644 frontend/src/pages/OnboardingFlow/OnboardingModal/Steps/LLMSelection/index.jsx create mode 100644 frontend/src/pages/OnboardingFlow/OnboardingModal/Steps/MultiUserSetup/index.jsx create mode 100644 frontend/src/pages/OnboardingFlow/OnboardingModal/Steps/PasswordProtection/index.jsx create mode 100644 frontend/src/pages/OnboardingFlow/OnboardingModal/Steps/UserModeSelection/index.jsx create mode 100644 frontend/src/pages/OnboardingFlow/OnboardingModal/Steps/VectorDatabaseConnection/index.jsx create mode 100644 frontend/src/pages/OnboardingFlow/OnboardingModal/index.jsx create mode 100644 frontend/src/pages/OnboardingFlow/index.jsx create mode 100644 frontend/src/utils/directories.js create mode 100644 server/storage/anythingllm.db.bak delete mode 100644 server/storage/assets/anything-llm-dark.png rename server/storage/assets/{anything-llm-light.png => anything-llm.png} (100%) diff --git a/frontend/package.json b/frontend/package.json index eb3af3cf..75bbf868 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -12,8 +12,10 @@ "dependencies": { "@esbuild-plugins/node-globals-polyfill": "^0.1.1", "@metamask/jazzicon": "^2.0.0", + "@phosphor-icons/react": "^2.0.13", "buffer": "^6.0.3", "he": "^1.2.0", + "lodash.debounce": "^4.0.8", "markdown-it": "^13.0.1", "pluralize": "^8.0.0", "react": "^18.2.0", diff --git a/frontend/public/fonts/AvenirNext.ttf b/frontend/public/fonts/AvenirNext.ttf deleted file mode 100644 index 271ee1bc569832dd5c7d7d7f830a2ae1b5052283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46240 zcmdSCd0aCyL)=6i^vK2${@Z6W)BW5{*O-%7w~<8 z5bGPW7cc1y?~i;1-?!p=VPJ74yJ@FlFCp|1d>>u2W%bteKfLdEgvkFL=RRF?+4g{T zZbc5yUXSm;UcYt2mNohVKPN=_93d57-LQJwR$?M*l!rQqal?gIuCMv=rl$#U;QNY$ z8`rH~tL=QE0?(#!y^Bk8Iqs{fe58BbO4wsR-epy71yPtN(Nl{|+HG zT&KU>vigdxd?l^K@vXQ&aM9{5>soewcpf3!e~ZUkw_dz$`@-KRuO;OE03izR)=SoH zz4Nh`QI~lI$_x@lD{SAjp7@VdhSt9jKmR_?kT*N(UMlY=-=0*+Uf>_XeJaASv-rU? z{6mv65c$7w{SDa*VoB09>GOnm<^)+wl%yMD!4V_L5Y$S)N#^4lM|f@%_aPe#?%%m_ zJamV&r~gH=7(uVZkjyJeHVK@&VK`&4clT|zaIM$65;mZ+5jz#y&?W_j0I@N*MSBa^bz!AG-33k?UU~^8p_6q zQr3lgX5k)2&qpUe=KhX78-qRAvvI()e1vFOSu)q;huj*X=XspN#-8E*M9Id0jg2@4 z?0JlXSRbQ5%H+pMn9-g$;`~dbAX|vCHsSaUBIh5Ox?e6^j^q8rERMlVq=xGQ9lwcw zeUVhKao|TLPtm{P_&S_p+cIp|ql_T-7h+>$!1fpiHh$QwBJF44Jfr;$xHg~E@wbrz ze*nkV5-a*%;Oej`2<10pKLWl)T^MU7gY0}<97{Itm6LC?vFGnWojY(1_lRv^W6J6U zt=Kd4Zj>=hd>D%awkm9u^q)BXCyxJ#aX62}uqD8Aeb6MGvi|}4BiE7#$fM-z9D`cx=I|J5$E8q)+0e5rΠHZ_1?GM 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 diff --git a/frontend/public/fonts/PlusJakartaSans.ttf b/frontend/public/fonts/PlusJakartaSans.ttf new file mode 100644 index 0000000000000000000000000000000000000000..bdd498505bc2000b995f4978fa539968a0ed5fbe GIT binary patch literal 176144 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

MP^Y_Q)CoB-M7>5> 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 WV=LeDtk&Ogd|9oJ!8PA8_WuIv4y0QE literal 0 HcmV?d00001 diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index b6cfc7eb..2b48a363 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -4,6 +4,7 @@ import { ContextWrapper } from "./AuthContext"; import PrivateRoute, { AdminRoute } from "./components/PrivateRoute"; import { ToastContainer } from "react-toastify"; import "react-toastify/dist/ReactToastify.css"; +import Login from "./pages/Login"; const Main = lazy(() => import("./pages/Main")); const InvitePage = lazy(() => import("./pages/Invite")); @@ -13,21 +14,63 @@ const AdminInvites = lazy(() => import("./pages/Admin/Invitations")); const AdminWorkspaces = lazy(() => import("./pages/Admin/Workspaces")); const AdminChats = lazy(() => import("./pages/Admin/Chats")); const AdminSystem = lazy(() => import("./pages/Admin/System")); -const AdminAppearance = lazy(() => import("./pages/Admin/Appearance")); -const AdminApiKeys = lazy(() => import("./pages/Admin/ApiKeys")); +const GeneralAppearance = lazy(() => + import("./pages/GeneralSettings/Appearance") +); +const GeneralApiKeys = lazy(() => import("./pages/GeneralSettings/ApiKeys")); + +const GeneralLLMPreference = lazy(() => + import("./pages/GeneralSettings/LLMPreference") +); +const GeneralVectorDatabase = lazy(() => + import("./pages/GeneralSettings/VectorDatabase") +); +const GeneralExportImport = lazy(() => + import("./pages/GeneralSettings/ExportImport") +); +const GeneralSecurity = lazy(() => import("./pages/GeneralSettings/Security")); + +const OnboardingFlow = lazy(() => import("./pages/OnboardingFlow")); export default function App() { return ( }> - } /> + } /> + } /> } /> } /> + {/* General Routes */} + } + /> + } + /> + } + /> + } + /> + } + /> + } + /> + {/* Admin Routes */} } /> - } - /> - } - /> + + {/* Onboarding Flow */} + } /> diff --git a/frontend/src/components/AdminSidebar/index.jsx b/frontend/src/components/AdminSidebar/index.jsx deleted file mode 100644 index a583cb32..00000000 --- a/frontend/src/components/AdminSidebar/index.jsx +++ /dev/null @@ -1,323 +0,0 @@ -import React, { useEffect, useRef, useState } from "react"; -import { - BookOpen, - Eye, - GitHub, - Key, - Mail, - Menu, - MessageSquare, - Settings, - Users, - X, -} from "react-feather"; -import IndexCount from "../Sidebar/IndexCount"; -import LLMStatus from "../Sidebar/LLMStatus"; -import paths from "../../utils/paths"; -import Discord from "../Icons/Discord"; -import useLogo from "../../hooks/useLogo"; - -export default function AdminSidebar() { - const { logo } = useLogo(); - const sidebarRef = useRef(null); - - return ( - <> -

-
- {/* Header Information */} - - - {/* Primary Body */} -
-
-
-
-
-
-
-
- - -
-
- - {/* Footer */} - -
-
-
-
- - ); -} - -export function SidebarMobileHeader() { - const { logo } = useLogo(); - const sidebarRef = useRef(null); - const [showSidebar, setShowSidebar] = useState(false); - const [showBgOverlay, setShowBgOverlay] = useState(false); - - useEffect(() => { - function handleBg() { - if (showSidebar) { - setTimeout(() => { - setShowBgOverlay(true); - }, 300); - } else { - setShowBgOverlay(false); - } - } - handleBg(); - }, [showSidebar]); - - return ( - <> -
- -
- Logo -
-
-
-
setShowSidebar(false)} - /> -
-
- {/* Header Information */} -
-
- Logo -
-
- - - -
-
- - {/* Primary Body */} -
-
-
-
-
-
-
-
- - -
-
- - {/* Footer */} - -
-
-
-
-
- - ); -} - -const Option = ({ btnText, icon, href }) => { - const isActive = window.location.pathname === href; - return ( - - ); -}; diff --git a/frontend/src/components/ChatBubble/index.jsx b/frontend/src/components/ChatBubble/index.jsx index 7ae52cb6..610f9037 100644 --- a/frontend/src/components/ChatBubble/index.jsx +++ b/frontend/src/components/ChatBubble/index.jsx @@ -1,28 +1,33 @@ import React from "react"; +import Jazzicon from "../UserIcon"; +import { userFromStorage } from "../../utils/request"; +import { + AI_BACKGROUND_COLOR, + USER_BACKGROUND_COLOR, +} from "../../utils/constants"; export default function ChatBubble({ message, type, popMsg }) { const isUser = type === "user"; + const backgroundColor = isUser ? USER_BACKGROUND_COLOR : AI_BACKGROUND_COLOR; return ( -
+
- {message && ( -

+

+ + + {message} -

- )} +
+
); diff --git a/frontend/src/components/DefaultChat/index.jsx b/frontend/src/components/DefaultChat/index.jsx index 1e993a4d..bfd0fbdc 100644 --- a/frontend/src/components/DefaultChat/index.jsx +++ b/frontend/src/components/DefaultChat/index.jsx @@ -8,6 +8,12 @@ import { isMobile } from "react-device-detect"; import { SidebarMobileHeader } from "../Sidebar"; import ChatBubble from "../ChatBubble"; import System from "../../models/system"; +import Jazzicon from "../UserIcon"; +import { userFromStorage } from "../../utils/request"; +import { + AI_BACKGROUND_COLOR, + USER_BACKGROUND_COLOR, +} from "../../utils/constants"; export default function DefaultChatContainer() { const [mockMsgs, setMockMessages] = useState([]); @@ -30,201 +36,265 @@ export default function DefaultChatContainer() { const MESSAGES = [
-
-

- Welcome to AnythingLLM, AnythingLLM is an open-source AI tool by - Mintplex Labs that turns anything into a trained chatbot you - can query and chat with. AnythingLLM is a BYOK (bring-your-own-keys) - software so there is no subscription, fee, or charges for this - software outside of the services you want to use with it. -

-
-
-
, +
+
+ - -
-
-

- AnythingLLM is the easiest way to put powerful AI products like - OpenAi, GPT-4, LangChain, PineconeDB, ChromaDB, and other services - together in a neat package with no fuss to increase your - productivity by 100x. -

-
-
-
, - - -
-
-

- AnythingLLM can run totally locally on your machine with little - overhead you wont even notice it's there! No GPU needed. Cloud and - on-premises installation is available as well. -
- The AI tooling ecosystem gets more powerful everyday. AnythingLLM - makes it easy to use. -

- - -

- Create an issue on Github -

-
-
-
-
, - - -
-
-

- How do I get started?! -

-
-
-
, - - -
-
-

- It's simple. All collections are organized into buckets we call{" "} - "Workspaces". Workspaces are buckets of files, documents, - images, PDFs, and other files which will be transformed into - something LLM's can understand and use in conversation. -
-
- You can add and remove files at anytime. -

- -
-
-
, - - -
-
-

- Is this like an AI dropbox or something? What about chatting? It is - a chatbot isn't it? -

-
-
-
, - - -
-
-

- AnythingLLM is more than a smarter Dropbox. -
-
- AnythingLLM offers two ways of talking with your data: -
-
- Query: Your chats will return data or inferences found with - the documents in your workspace it has access to. Adding more - documents to the Workspace make it smarter! -
-
- Conversational: Your documents + your on-going chat history - both contribute to the LLM knowledge at the same time. Great for - appending real-time text-based info or corrections and - misunderstandings the LLM might have. -
-
- You can toggle between either mode in the middle of chatting! -

-
-
-
, - - -
-
-

- Wow, this sounds amazing, let me try it out already! -

-
-
-
, - - - + , + + +
+
+
+ + + - -

- Contact Mintplex Labs -

-
+ AnythingLLM is the easiest way to put powerful AI products like + OpenAi, GPT-4, LangChain, PineconeDB, ChromaDB, and other services + together in a neat package with no fuss to increase your + productivity by 100x. + +
+
+
+ , + + +
+
+
+ +
+ + AnythingLLM can run totally locally on your machine with little + overhead you wont even notice it's there! No GPU needed. Cloud + and on-premises installation is available as well. +
+ The AI tooling ecosystem gets more powerful everyday. + AnythingLLM makes it easy to use. +
+ + +

Create an issue on Github

+
+
+
+
+
+
, + + +
+
+
+ + + + How do I get started?! + +
+
+
+
, + + +
+
+
+ +
+ + It's simple. All collections are organized into buckets we call{" "} + "Workspaces". Workspaces are buckets of files, documents, + images, PDFs, and other files which will be transformed into + something LLM's can understand and use in conversation. +
+
+ You can add and remove files at anytime. +
+ + +
+
+
+
+
, + + +
+
+
+ + + + Is this like an AI dropbox or something? What about chatting? It + is a chatbot isn't it? + +
+
+
+
, + + +
+
+
+ + + + AnythingLLM is more than a smarter Dropbox. +
+
+ AnythingLLM offers two ways of talking with your data: +
+
+ Query: Your chats will return data or inferences found with + the documents in your workspace it has access to. Adding more + documents to the Workspace make it smarter! +
+
+ Conversational: Your documents + your on-going chat history + both contribute to the LLM knowledge at the same time. Great for + appending real-time text-based info or corrections and + misunderstandings the LLM might have. +
+
+ You can toggle between either mode{" "} + in the middle of chatting! +
+
+
+
+
, + + +
+
+
+ + + + Wow, this sounds amazing, let me try it out already! + +
+
+
+
, + + +
+
@@ -259,7 +329,7 @@ export default function DefaultChatContainer() { return (
{isMobile && } {fetchedMessages.length === 0 diff --git a/frontend/src/components/EditingChatBubble/index.jsx b/frontend/src/components/EditingChatBubble/index.jsx index 7d738ee0..1cbe4430 100644 --- a/frontend/src/components/EditingChatBubble/index.jsx +++ b/frontend/src/components/EditingChatBubble/index.jsx @@ -14,25 +14,27 @@ export default function EditingChatBubble({ return (
- {isUser && ( - - )} +
setIsEditing(true)} > @@ -45,23 +47,16 @@ export default function EditingChatBubble({ setIsEditing(false); }} autoFocus + className="w-full" /> ) : ( tempMessage && ( -

+

{tempMessage}

) )}
- {!isUser && ( - - )}
); } diff --git a/frontend/src/components/Icons/Discord.jsx b/frontend/src/components/Icons/Discord.jsx deleted file mode 100644 index ebc55ed1..00000000 --- a/frontend/src/components/Icons/Discord.jsx +++ /dev/null @@ -1,15 +0,0 @@ -export default function Discord({ className = "" }) { - return ( - - - - - - - ); -} diff --git a/frontend/src/components/LLMProviderOption/index.jsx b/frontend/src/components/LLMProviderOption/index.jsx new file mode 100644 index 00000000..3c3ed446 --- /dev/null +++ b/frontend/src/components/LLMProviderOption/index.jsx @@ -0,0 +1,37 @@ +export default function LLMProviderOption({ + name, + link, + description, + value, + image, + checked = false, + onClick, +}) { + return ( +
onClick(value)}> + + +
+ ); +} diff --git a/frontend/src/components/Modals/Settings/ApiKey/index.jsx b/frontend/src/components/Modals/LegacySettings/ApiKey/index.jsx similarity index 100% rename from frontend/src/components/Modals/Settings/ApiKey/index.jsx rename to frontend/src/components/Modals/LegacySettings/ApiKey/index.jsx diff --git a/frontend/src/components/Modals/Settings/Appearance/index.jsx b/frontend/src/components/Modals/LegacySettings/Appearance/index.jsx similarity index 96% rename from frontend/src/components/Modals/Settings/Appearance/index.jsx rename to frontend/src/components/Modals/LegacySettings/Appearance/index.jsx index 92f210d5..4ce1078b 100644 --- a/frontend/src/components/Modals/Settings/Appearance/index.jsx +++ b/frontend/src/components/Modals/LegacySettings/Appearance/index.jsx @@ -3,8 +3,7 @@ import useLogo from "../../../../hooks/useLogo"; import usePrefersDarkMode from "../../../../hooks/usePrefersDarkMode"; import System from "../../../../models/system"; import EditingChatBubble from "../../../EditingChatBubble"; -import AnythingLLMLight from "../../../../media/logo/anything-llm-light.png"; -import AnythingLLMDark from "../../../../media/logo/anything-llm-dark.png"; +import AnythingLLM from "../../../../media/logo/anything-llm.png"; import showToast from "../../../../utils/toast"; export default function Appearance() { @@ -120,11 +119,7 @@ export default function Appearance() { src={logo} alt="Uploaded Logo" className="w-48 h-48 object-contain mr-6" - onError={(e) => - (e.target.src = prefersDarkMode - ? AnythingLLMLight - : AnythingLLMDark) - } + onError={(e) => (e.target.src = AnythingLLM)} />
diff --git a/frontend/src/components/Modals/Settings/ExportImport/index.jsx b/frontend/src/components/Modals/LegacySettings/ExportImport/index.jsx similarity index 100% rename from frontend/src/components/Modals/Settings/ExportImport/index.jsx rename to frontend/src/components/Modals/LegacySettings/ExportImport/index.jsx diff --git a/frontend/src/components/Modals/Settings/LLMSelection/index.jsx b/frontend/src/components/Modals/LegacySettings/LLMSelection/index.jsx similarity index 98% rename from frontend/src/components/Modals/Settings/LLMSelection/index.jsx rename to frontend/src/components/Modals/LegacySettings/LLMSelection/index.jsx index 9d930a7b..7fd07516 100644 --- a/frontend/src/components/Modals/Settings/LLMSelection/index.jsx +++ b/frontend/src/components/Modals/LegacySettings/LLMSelection/index.jsx @@ -115,10 +115,7 @@ export default function LLMSelection({ required={true} className="bg-gray-50 border border-gray-500 text-gray-900 text-sm rounded-lg block w-full p-2.5 dark:bg-stone-700 dark:border-slate-200 dark:placeholder-stone-500 dark:text-slate-200" > - {[ - "gpt-3.5-turbo", - "gpt-4", - ].map((model) => { + {["gpt-3.5-turbo", "gpt-4"].map((model) => { return (