diff --git a/Makefile b/Makefile index 4d58443..f7d1858 100644 --- a/Makefile +++ b/Makefile @@ -36,11 +36,11 @@ test-all: proxy/ui_dist/placeholder.txt go test -race -count=1 ./proxy/... ui/node_modules: - cd ui && npm install + cd ui-svelte && npm install # build react UI ui: ui/node_modules - cd ui && npm run build + cd ui-svelte && npm run build # Build OSX binary mac: ui diff --git a/ui-svelte/.gitignore b/ui-svelte/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/ui-svelte/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/ui-svelte/index.html b/ui-svelte/index.html new file mode 100644 index 0000000..a1e0a95 --- /dev/null +++ b/ui-svelte/index.html @@ -0,0 +1,17 @@ + + +
+ + + + + + + +{filteredLogs}
+ | {$showIdorNameStore === "id" ? "Model ID" : "Name"} | ++ | State | +
|---|---|---|
|
+
+ {getModelDisplay(model)}
+
+ {#if model.description}
+ {model.description} + {/if} + |
+ + {#if model.state === "stopped"} + + {:else} + + {/if} + | ++ {model.state} + | +
| {peerId} | +
|---|
| + {model.id} + | +
| Requests | ++ Processed + | ++ Generated + | ++ Token Stats (tokens/sec) + | +
|---|---|---|---|
| {stats.totalRequests} | + +
+
+ {nf.format(stats.totalInputTokens)}
+ tokens
+
+ |
+
+
+
+ {nf.format(stats.totalOutputTokens)}
+ tokens
+
+ |
+
+
+
+
+
+
+ {#if stats.histogramData}
+
+
+
+ P50
+
+ {stats.tokenStats.p50}
+
+
+
+
+ P95
+
+ {stats.tokenStats.p95}
+
+
+
+ P99
+
+ {stats.tokenStats.p99}
+
+ |
+
No metrics data available
+| ID | +Time | +Model | +
+ Cached |
+
+ Prompt |
+ Generated | +Prompt Processing | +Generation Speed | +Duration | +
|---|---|---|---|---|---|---|---|---|
| {metric.id + 1} | +{formatRelativeTime(metric.timestamp)} | +{metric.model} | +{metric.cache_tokens > 0 ? metric.cache_tokens.toLocaleString() : "-"} | +{metric.input_tokens.toLocaleString()} | +{metric.output_tokens.toLocaleString()} | +{formatSpeed(metric.prompt_per_second)} | +{formatSpeed(metric.tokens_per_second)} | +{formatDuration(metric.duration_ms)} | +