diff --git a/.vscode/settings.json b/.vscode/settings.json
index d60238c72..1409c1073 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -5,6 +5,7 @@
"AIbitat",
"allm",
"anythingllm",
+ "Apipie",
"Astra",
"Chartable",
"cleancss",
@@ -18,6 +19,7 @@
"elevenlabs",
"Embeddable",
"epub",
+ "fireworksai",
"GROQ",
"hljs",
"huggingface",
@@ -40,14 +42,13 @@
"pagerender",
"Qdrant",
"royalblue",
- "searxng",
"SearchApi",
+ "searxng",
"Serper",
"Serply",
"streamable",
"textgenwebui",
"togetherai",
- "fireworksai",
"Unembed",
"vectordbs",
"Weaviate",
diff --git a/docker/.env.example b/docker/.env.example
index e67ac5ddd..55f3b2627 100644
--- a/docker/.env.example
+++ b/docker/.env.example
@@ -105,6 +105,10 @@ GID='1000'
# FIREWORKS_AI_LLM_API_KEY='my-fireworks-ai-key'
# FIREWORKS_AI_LLM_MODEL_PREF='accounts/fireworks/models/llama-v3p1-8b-instruct'
+# LLM_PROVIDER='apipie'
+# APIPIE_LLM_API_KEY='sk-123abc'
+# APIPIE_LLM_MODEL_PREF='openrouter/llama-3.1-8b-instruct'
+
###########################################
######## Embedding API SElECTION ##########
###########################################
diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx
index 18e9081d6..d9a51f17a 100644
--- a/frontend/src/App.jsx
+++ b/frontend/src/App.jsx
@@ -23,7 +23,6 @@ const WorkspaceChat = lazy(() => import("@/pages/WorkspaceChat"));
const AdminUsers = lazy(() => import("@/pages/Admin/Users"));
const AdminInvites = lazy(() => import("@/pages/Admin/Invitations"));
const AdminWorkspaces = lazy(() => import("@/pages/Admin/Workspaces"));
-const AdminSystem = lazy(() => import("@/pages/Admin/System"));
const AdminLogs = lazy(() => import("@/pages/Admin/Logging"));
const AdminAgents = lazy(() => import("@/pages/Admin/Agents"));
const GeneralChats = lazy(() => import("@/pages/GeneralSettings/Chats"));
@@ -172,10 +171,6 @@ export default function App() {
path="/settings/workspace-chats"
element={}
/>
- }
- />
}
diff --git a/frontend/src/components/LLMSelection/ApiPieOptions/index.jsx b/frontend/src/components/LLMSelection/ApiPieOptions/index.jsx
new file mode 100644
index 000000000..9bb16ae3d
--- /dev/null
+++ b/frontend/src/components/LLMSelection/ApiPieOptions/index.jsx
@@ -0,0 +1,101 @@
+import System from "@/models/system";
+import { useState, useEffect } from "react";
+
+export default function ApiPieLLMOptions({ settings }) {
+ return (
+
+
+
+
+
+
+ {!settings?.credentialsOnly && (
+
+ )}
+
+
+ );
+}
+
+function APIPieModelSelection({ settings }) {
+ const [groupedModels, setGroupedModels] = useState({});
+ const [loading, setLoading] = useState(true);
+
+ useEffect(() => {
+ async function findCustomModels() {
+ setLoading(true);
+ const { models } = await System.customModels("apipie");
+ if (models?.length > 0) {
+ const modelsByOrganization = models.reduce((acc, model) => {
+ acc[model.organization] = acc[model.organization] || [];
+ acc[model.organization].push(model);
+ return acc;
+ }, {});
+
+ setGroupedModels(modelsByOrganization);
+ }
+
+ setLoading(false);
+ }
+ findCustomModels();
+ }, []);
+
+ if (loading || Object.keys(groupedModels).length === 0) {
+ return (
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+
+ );
+}
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FileRow/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FileRow/index.jsx
index ea34b33a4..fc3546c17 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FileRow/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FileRow/index.jsx
@@ -31,7 +31,7 @@ export default function FileRow({ item, selected, toggleSelection }) {
className="shrink-0 text-base font-bold w-4 h-4 mr-[3px]"
weight="fill"
/>
-
+
{middleTruncate(item.title, 55)}
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FolderRow/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FolderRow/index.jsx
index bf1581e14..7e2dfffee 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FolderRow/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/Directory/FolderRow/index.jsx
@@ -51,7 +51,7 @@ export default function FolderRow({
className="shrink-0 text-base font-bold w-4 h-4 mr-[3px]"
weight="fill"
/>
-
+
{middleTruncate(item.name, 35)}
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx
index cc267170b..505c4c22c 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx
@@ -83,7 +83,7 @@ export default function WorkspaceFileRow({
className="shrink-0 text-base font-bold w-4 h-4 mr-[3px] ml-1"
weight="fill"
/>
-
+
{middleTruncate(item.title, 50)}
diff --git a/frontend/src/components/SettingsButton/index.jsx b/frontend/src/components/SettingsButton/index.jsx
index d4ecb259d..f79be1cd1 100644
--- a/frontend/src/components/SettingsButton/index.jsx
+++ b/frontend/src/components/SettingsButton/index.jsx
@@ -29,10 +29,8 @@ export default function SettingsButton() {
return (
(
href: paths.settings.invites(),
roles: ["admin", "manager"],
},
- {
- btnText: t("settings.system"),
- href: paths.settings.system(),
- roles: ["admin", "manager"],
- },
]}
/>