diff --git a/src/components/Common/ProviderIcon.tsx b/src/components/Common/ProviderIcon.tsx
index 54ecbf0..38ba504 100644
--- a/src/components/Common/ProviderIcon.tsx
+++ b/src/components/Common/ProviderIcon.tsx
@@ -1,5 +1,11 @@
import { ChromeIcon, CpuIcon } from "lucide-react"
import { OllamaIcon } from "../Icons/Ollama"
+import { FireworksMonoIcon } from "../Icons/Fireworks"
+import { GroqMonoIcon } from "../Icons/Groq"
+import { LMStudioIcon } from "../Icons/LMStudio"
+import { OpenAiIcon } from "../Icons/OpenAI"
+import { TogtherMonoIcon } from "../Icons/Togther"
+import { OpenRouterIcon } from "../Icons/OpenRouter"
export const ProviderIcons = ({
provider,
@@ -13,6 +19,18 @@ export const ProviderIcons = ({
return
case "custom":
return
+ case "fireworks":
+ return
+ case "groq":
+ return
+ case "lmstudio":
+ return
+ case "openai":
+ return
+ case "together":
+ return
+ case "openrouter":
+ return
default:
return
}
diff --git a/src/components/Icons/Fireworks.tsx b/src/components/Icons/Fireworks.tsx
new file mode 100644
index 0000000..95ed708
--- /dev/null
+++ b/src/components/Icons/Fireworks.tsx
@@ -0,0 +1,19 @@
+import React from "react"
+
+export const FireworksMonoIcon = React.forwardRef<
+ SVGSVGElement,
+ React.SVGProps
+>((props, ref) => {
+ return (
+
+ )
+})
diff --git a/src/components/Icons/Groq.tsx b/src/components/Icons/Groq.tsx
new file mode 100644
index 0000000..8112f1b
--- /dev/null
+++ b/src/components/Icons/Groq.tsx
@@ -0,0 +1,18 @@
+import React from "react"
+
+export const GroqMonoIcon = React.forwardRef<
+ SVGSVGElement,
+ React.SVGProps
+>((props, ref) => {
+ return (
+
+ )
+})
diff --git a/src/components/Icons/LMStudio.tsx b/src/components/Icons/LMStudio.tsx
new file mode 100644
index 0000000..01dce3f
--- /dev/null
+++ b/src/components/Icons/LMStudio.tsx
@@ -0,0 +1,33 @@
+import React from "react"
+
+export const LMStudioIcon = React.forwardRef<
+ SVGSVGElement,
+ React.SVGProps
+>((props, ref) => {
+ return (
+
+ )
+})
diff --git a/src/components/Icons/OpenAI.tsx b/src/components/Icons/OpenAI.tsx
new file mode 100644
index 0000000..8bd8afa
--- /dev/null
+++ b/src/components/Icons/OpenAI.tsx
@@ -0,0 +1,18 @@
+import React from "react"
+
+export const OpenAiIcon = React.forwardRef<
+ SVGSVGElement,
+ React.SVGProps
+>((props, ref) => {
+ return (
+
+ )
+})
diff --git a/src/components/Icons/OpenRouter.tsx b/src/components/Icons/OpenRouter.tsx
new file mode 100644
index 0000000..7d773b1
--- /dev/null
+++ b/src/components/Icons/OpenRouter.tsx
@@ -0,0 +1,18 @@
+import React from "react"
+
+export const OpenRouterIcon = React.forwardRef<
+ SVGSVGElement,
+ React.SVGProps
+>((props, ref) => {
+ return (
+
+ )
+})
diff --git a/src/components/Icons/Togther.tsx b/src/components/Icons/Togther.tsx
new file mode 100644
index 0000000..9ed8a86
--- /dev/null
+++ b/src/components/Icons/Togther.tsx
@@ -0,0 +1,23 @@
+import React from "react"
+
+export const TogtherMonoIcon = React.forwardRef<
+ SVGSVGElement,
+ React.SVGProps
+>((props, ref) => {
+ return (
+
+ )
+})
diff --git a/src/components/Option/Settings/openai.tsx b/src/components/Option/Settings/openai.tsx
index b3a9b1d..07a6132 100644
--- a/src/components/Option/Settings/openai.tsx
+++ b/src/components/Option/Settings/openai.tsx
@@ -8,7 +8,7 @@ import {
updateOpenAIConfig
} from "@/db/openai"
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"
-import { Pencil, Trash2, RotateCwIcon } from "lucide-react"
+import { Pencil, Trash2, RotateCwIcon, DownloadIcon } from "lucide-react"
import { OpenAIFetchModel } from "./openai-fetch-model"
import { OAI_API_PROVIDERS } from "@/utils/oai-api-providers"
@@ -20,6 +20,7 @@ export const OpenAIApp = () => {
const [form] = Form.useForm()
const [openaiId, setOpenaiId] = useState(null)
const [openModelModal, setOpenModelModal] = useState(false)
+ const [provider, setProvider] = useState("custom")
const { data: configs, isLoading } = useQuery({
queryKey: ["openAIConfigs"],
@@ -69,8 +70,13 @@ export const OpenAIApp = () => {
if (editingConfig) {
updateMutation.mutate({ id: editingConfig.id, ...values })
} else {
- addMutation.mutate(values)
+ addMutation.mutate({
+ ...values,
+ provider
+ })
}
+
+ setProvider("custom")
}
const handleEdit = (record: any) => {
@@ -144,7 +150,7 @@ export const OpenAIApp = () => {
setOpenaiId(record.id)
}}
disabled={!record.id}>
-
+
@@ -180,18 +186,20 @@ export const OpenAIApp = () => {
onCancel={() => {
setOpen(false)
setEditingConfig(null)
+ setProvider("custom")
form.resetFields()
}}
footer={null}>
{!editingConfig && (