Brunobkr/llama.cpp_AlgMor24_github
ΩFFFΣLLIa • llama.cpp • AlgMor24 ██████╗ ███████╗███████╗███████╗██╗ ██╗ ██╗ █████╗ ██╔═══██╗██╔════╝██╔════╝██╔════╝██║ ██║ ██║██╔══██╗ ██║ ██║█████╗ █████╗ █████╗ ██║ ██║ ██║███████║ ██║ ██║██╔══╝ ██╔══╝ ██╔══╝ ██║ ██║ ██║██╔══██║ ╚██████╔╝██║ ██║ ███████╗███████╗███████╗██║██║ ██║ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝╚══════╝╚══════╝╚═╝╚═╝ ╚═╝ High-Performance LLM / VLM Inference & Autonomous Agentic Ecosystem… See the full description on the dataset page: https://huggingface.co/datasets/Brunobkr/llama.cpp_AlgMor24_github.
03.1k
1```mermaid2sequenceDiagram3 participant UI as 🧩 ModelsSelector4 participant Hooks as 🪝 useModelChangeValidation5 participant modelsStore as 🗄️ modelsStore6 participant serverStore as 🗄️ serverStore7 participant convStore as 🗄️ conversationsStore8 participant ModelsSvc as ⚙️ ModelsService9 participant PropsSvc as ⚙️ PropsService10 participant API as 🌐 llama-server11 12 Note over modelsStore: State:<br/>models: ModelOption[]<br/>routerModels: ApiModelDataEntry[]<br/>selectedModelId, selectedModelName<br/>loading, updating, error<br/>modelLoadingStates (Map)<br/>modelPropsCache (Map)<br/>propsCacheVersion13 14 %% ═══════════════════════════════════════════════════════════════════════════15 Note over UI,API: 🚀 INITIALIZATION (MODEL mode)16 %% ═══════════════════════════════════════════════════════════════════════════17 18 UI->>modelsStore: fetch()19 activate modelsStore20 modelsStore->>modelsStore: loading = true21 22 alt serverStore.props not loaded23 modelsStore->>serverStore: fetch()24 Note over serverStore: → see server-flow.mmd25 end26 27 modelsStore->>ModelsSvc: list()28 ModelsSvc->>API: GET /v1/models29 API-->>ModelsSvc: ApiModelListResponse {data: [model]}30 31 modelsStore->>modelsStore: models = $state(mapped)32 Note right of modelsStore: Map to ModelOption[]:<br/>{id, name, model, description, capabilities}33 34 Note over modelsStore: MODEL mode: Get modalities from serverStore.props35 modelsStore->>modelsStore: modelPropsCache.set(model.id, serverStore.props)36 modelsStore->>modelsStore: models[0].modalities = props.modalities37 38 modelsStore->>modelsStore: Auto-select single model39 Note right of modelsStore: selectedModelId = models[0].id40 modelsStore->>modelsStore: loading = false41 deactivate modelsStore42 43 %% ═══════════════════════════════════════════════════════════════════════════44 Note over UI,API: 🚀 INITIALIZATION (ROUTER mode)45 %% ═══════════════════════════════════════════════════════════════════════════46 47 UI->>modelsStore: fetch()48 activate modelsStore49 modelsStore->>ModelsSvc: list()50 ModelsSvc->>API: GET /v1/models51 API-->>ModelsSvc: ApiModelListResponse52 modelsStore->>modelsStore: models = $state(mapped)53 deactivate modelsStore54 55 Note over UI: After models loaded, layout triggers:56 UI->>modelsStore: fetchRouterModels()57 activate modelsStore58 modelsStore->>ModelsSvc: listRouter()59 ModelsSvc->>API: GET /v1/models60 API-->>ModelsSvc: ApiRouterModelsListResponse61 Note right of API: {data: [{id, status, path, in_cache}]}62 modelsStore->>modelsStore: routerModels = $state(data)63 64 modelsStore->>modelsStore: fetchModalitiesForLoadedModels()65 loop each model where status === "loaded"66 modelsStore->>PropsSvc: fetchForModel(modelId)67 PropsSvc->>API: GET /props?model={modelId}68 API-->>PropsSvc: ApiLlamaCppServerProps69 modelsStore->>modelsStore: modelPropsCache.set(modelId, props)70 end71 modelsStore->>modelsStore: propsCacheVersion++72 deactivate modelsStore73 74 %% ═══════════════════════════════════════════════════════════════════════════75 Note over UI,API: 🔄 MODEL SELECTION (ROUTER mode)76 %% ═══════════════════════════════════════════════════════════════════════════77 78 UI->>Hooks: useModelChangeValidation({getRequiredModalities, onSuccess?, onValidationFailure?})79 Note over Hooks: Hook configured per-component:<br/>ChatForm: getRequiredModalities = usedModalities<br/>ChatMessage: getRequiredModalities = getModalitiesUpToMessage(msgId)80 81 UI->>Hooks: handleModelChange(modelId, modelName)82 activate Hooks83 Hooks->>Hooks: previousSelectedModelId = modelsStore.selectedModelId84 Hooks->>modelsStore: isModelLoaded(modelName)?85 86 alt model NOT loaded87 Hooks->>modelsStore: loadModel(modelName)88 Note over modelsStore: → see LOAD MODEL section below89 end90 91 Note over Hooks: Always fetch props (from cache or API)92 Hooks->>modelsStore: fetchModelProps(modelName)93 modelsStore-->>Hooks: props94 95 Hooks->>convStore: getRequiredModalities()96 convStore-->>Hooks: {vision, audio}97 98 Hooks->>Hooks: Validate: model.modalities ⊇ required?99 100 alt validation PASSED101 Hooks->>modelsStore: selectModelById(modelId)102 Hooks-->>UI: return true103 else validation FAILED104 Hooks->>UI: toast.error("Model doesn't support required modalities")105 alt model was just loaded106 Hooks->>modelsStore: unloadModel(modelName)107 end108 alt onValidationFailure provided109 Hooks->>modelsStore: selectModelById(previousSelectedModelId)110 end111 Hooks-->>UI: return false112 end113 deactivate Hooks114 115 %% ═══════════════════════════════════════════════════════════════════════════116 Note over UI,API: ⬆️ LOAD MODEL (ROUTER mode)117 %% ═══════════════════════════════════════════════════════════════════════════118 119 modelsStore->>modelsStore: loadModel(modelId)120 activate modelsStore121 122 alt already loaded123 modelsStore-->>modelsStore: return (no-op)124 end125 126 modelsStore->>modelsStore: modelLoadingStates.set(modelId, true)127 modelsStore->>ModelsSvc: load(modelId)128 ModelsSvc->>API: POST /models/load {model: modelId}129 API-->>ModelsSvc: {status: "loading"}130 131 modelsStore->>modelsStore: pollForModelStatus(modelId, LOADED)132 loop poll every 500ms (max 60 attempts)133 modelsStore->>modelsStore: fetchRouterModels()134 modelsStore->>ModelsSvc: listRouter()135 ModelsSvc->>API: GET /v1/models136 API-->>ModelsSvc: models[]137 modelsStore->>modelsStore: getModelStatus(modelId)138 alt status === LOADED139 Note right of modelsStore: break loop140 else status === LOADING141 Note right of modelsStore: wait 500ms, continue142 end143 end144 145 modelsStore->>modelsStore: updateModelModalities(modelId)146 modelsStore->>PropsSvc: fetchForModel(modelId)147 PropsSvc->>API: GET /props?model={modelId}148 API-->>PropsSvc: props with modalities149 modelsStore->>modelsStore: modelPropsCache.set(modelId, props)150 modelsStore->>modelsStore: propsCacheVersion++151 152 modelsStore->>modelsStore: modelLoadingStates.set(modelId, false)153 deactivate modelsStore154 155 %% ═══════════════════════════════════════════════════════════════════════════156 Note over UI,API: ⬇️ UNLOAD MODEL (ROUTER mode)157 %% ═══════════════════════════════════════════════════════════════════════════158 159 modelsStore->>modelsStore: unloadModel(modelId)160 activate modelsStore161 modelsStore->>modelsStore: modelLoadingStates.set(modelId, true)162 modelsStore->>ModelsSvc: unload(modelId)163 ModelsSvc->>API: POST /models/unload {model: modelId}164 165 modelsStore->>modelsStore: pollForModelStatus(modelId, UNLOADED)166 loop poll until unloaded167 modelsStore->>ModelsSvc: listRouter()168 ModelsSvc->>API: GET /v1/models169 end170 171 modelsStore->>modelsStore: modelLoadingStates.set(modelId, false)172 deactivate modelsStore173 174 %% ═══════════════════════════════════════════════════════════════════════════175 Note over UI,API: 📊 COMPUTED GETTERS176 %% ═══════════════════════════════════════════════════════════════════════════177 178 Note over modelsStore: Getters:<br/>- selectedModel: ModelOption | null<br/>- loadedModelIds: string[] (from routerModels)<br/>- loadingModelIds: string[] (from modelLoadingStates)<br/>- singleModelName: string | null (MODEL mode only)179 180 Note over modelsStore: Modality helpers:<br/>- getModelModalities(modelId): {vision, audio}<br/>- modelSupportsVision(modelId): boolean<br/>- modelSupportsAudio(modelId): boolean181```182 