diff --git a/README.md b/README.md index df6aed9..8c567a2 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,13 @@ Curiso AI is an infinite canvas for your thoughts—a platform that seamlessly c - xAI - Groq - OpenRouter + +- **Local AI Inference Provider Integration**: - Ollama + - Exo + - Jan.ai + - LM Studio + - **Custom Model Support**: Add and configure custom AI models - **Inference Parameters**: Customize the inference parameters for your conversations - **Multiple Boards**: Create and manage multiple workspaces @@ -29,6 +35,8 @@ Curiso AI is an infinite canvas for your thoughts—a platform that seamlessly c ![screenshot2](screenshot2.png) +![screenshot3](custommodels.png) + ## Donate If you find Curiso.ai useful, please consider donating to support its development. @@ -111,3 +119,6 @@ Carsen Klock - [@metaspartan](https://github.com/metaspartan) [@carsenklock](htt - [xAI](https://x.com/) - [Groq](https://www.groq.com/) - [OpenRouter](https://openrouter.ai/) +- [Jan.ai](https://jan.ai/) +- [LM Studio](https://lmstudio.ai/) +- [Exo](https://github.com/exo-explore/exo) diff --git a/client/src/assets/exo.png b/client/src/assets/exo.png new file mode 100644 index 0000000..c5e5d04 Binary files /dev/null and b/client/src/assets/exo.png differ diff --git a/client/src/assets/jan.svg b/client/src/assets/jan.svg new file mode 100644 index 0000000..188c822 --- /dev/null +++ b/client/src/assets/jan.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/client/src/assets/lmstudio.png b/client/src/assets/lmstudio.png new file mode 100644 index 0000000..eaf730d Binary files /dev/null and b/client/src/assets/lmstudio.png differ diff --git a/client/src/components/AddModelDialog.tsx b/client/src/components/AddModelDialog.tsx index 52012c2..53a79da 100644 --- a/client/src/components/AddModelDialog.tsx +++ b/client/src/components/AddModelDialog.tsx @@ -13,13 +13,15 @@ import { import { CustomModel } from "@/lib/types"; import { useStore } from "@/lib/store"; import logo from "@/assets/logo.svg" - +import { PRESET_ENDPOINTS } from "@/lib/constants"; + interface AddModelDialogProps { open: boolean; onOpenChange: (open: boolean) => void; } export function AddModelDialog({ open, onOpenChange }: AddModelDialogProps) { + const [isCustomEndpoint, setIsCustomEndpoint] = useState(true); const { settings, setSettings } = useStore(); const [newModel, setNewModel] = useState>({ provider: 'openai', @@ -57,7 +59,77 @@ import {
- +
+ + +
+ + {isCustomEndpoint && ( +
+ + setNewModel({ + ...newModel, + endpoint: e.target.value + })} + /> +
+ )} +
+ setNewModel({ ...newModel, name: e.target.value })} @@ -68,12 +140,6 @@ import { onChange={(e) => setNewModel({ ...newModel, id: e.target.value })} placeholder="Model ID (llama3.2:1b)" /> - setNewModel({ ...newModel, endpoint: e.target.value })} - placeholder="API Endpoint (http://localhost:11434/v1)" - /> -