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 && (