go: grok 4.5 and kimi k3
This commit is contained in:
@@ -628,10 +628,6 @@ body {
|
||||
stroke: none;
|
||||
}
|
||||
|
||||
[data-bar][data-kind="free"] {
|
||||
fill: var(--color-text-strong);
|
||||
}
|
||||
|
||||
[data-val] {
|
||||
fill: var(--color-text-strong);
|
||||
font-size: 13px;
|
||||
@@ -652,11 +648,6 @@ body {
|
||||
transform-origin: center;
|
||||
}
|
||||
|
||||
[data-point][data-kind="free"] {
|
||||
fill: var(--color-background);
|
||||
stroke: var(--color-text-strong);
|
||||
}
|
||||
|
||||
[data-point][data-kind="go"] {
|
||||
fill: var(--color-background-interactive);
|
||||
stroke: var(--color-text-strong);
|
||||
@@ -1029,26 +1020,6 @@ body {
|
||||
|
||||
[data-slot="faq-models"] {
|
||||
margin-top: 16px;
|
||||
overflow-x: auto;
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
min-width: 28rem;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
th,
|
||||
td {
|
||||
padding: 12px 16px;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
th {
|
||||
background: var(--color-background-weak);
|
||||
color: var(--color-text-strong);
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,19 +23,21 @@ const checkLoggedIn = query(async () => {
|
||||
}, "checkLoggedIn.get")
|
||||
|
||||
const models = [
|
||||
{ name: "GLM-5.2", provider: "DeepInfra, Fireworks AI, Z.ai" },
|
||||
{ name: "GLM-5.1", provider: "DeepInfra, Fireworks AI, Z.ai" },
|
||||
{ name: "Kimi K2.7 Code", provider: "Moonshot AI" },
|
||||
{ name: "Kimi K2.6", provider: "Moonshot AI" },
|
||||
{ name: "MiMo-V2.5-Pro", provider: "Xiaomi MiMo" },
|
||||
{ name: "MiMo-V2.5", provider: "Xiaomi MiMo" },
|
||||
{ name: "Qwen3.7 Max", provider: "Alibaba Cloud Model Studio" },
|
||||
{ name: "Qwen3.7 Plus", provider: "Alibaba Cloud Model Studio" },
|
||||
{ name: "Qwen3.6 Plus", provider: "Alibaba Cloud Model Studio" },
|
||||
{ name: "MiniMax M3", provider: "MiniMax" },
|
||||
{ name: "MiniMax M2.7", provider: "MiniMax" },
|
||||
{ name: "DeepSeek V4 Pro", provider: "DeepSeek" },
|
||||
{ name: "DeepSeek V4 Flash", provider: "DeepSeek" },
|
||||
"Grok 4.5",
|
||||
"GLM-5.2",
|
||||
"GLM-5.1",
|
||||
"Kimi K3",
|
||||
"Kimi K2.7 Code",
|
||||
"Kimi K2.6",
|
||||
"MiMo-V2.5-Pro",
|
||||
"MiMo-V2.5",
|
||||
"Qwen3.7 Max",
|
||||
"Qwen3.7 Plus",
|
||||
"Qwen3.6 Plus",
|
||||
"MiniMax M3",
|
||||
"MiniMax M2.7",
|
||||
"DeepSeek V4 Pro",
|
||||
"DeepSeek V4 Flash",
|
||||
]
|
||||
|
||||
function LimitsGraph(props: { href: string }) {
|
||||
@@ -59,8 +61,10 @@ function LimitsGraph(props: { href: string }) {
|
||||
onCleanup(() => observer.disconnect())
|
||||
})
|
||||
|
||||
const free = 200
|
||||
const baseline = 200
|
||||
const graph = [
|
||||
{ id: "grok-4.5", name: "Grok 4.5", req: 80, d: "50ms" },
|
||||
{ id: "kimi-k3", name: "Kimi K3", req: 140, d: "75ms" },
|
||||
{ id: "glm-5.2", name: "GLM-5.2", req: 880, d: "100ms" },
|
||||
{ id: "qwen3.7-max", name: "Qwen3.7 Max", req: 950, d: "110ms" },
|
||||
{ id: "kimi-k2.7-code", name: "Kimi K2.7 Code", req: 1150, d: "150ms" },
|
||||
@@ -79,14 +83,12 @@ function LimitsGraph(props: { href: string }) {
|
||||
const bottom = 44
|
||||
const plot = w - left - right
|
||||
|
||||
const ratio = (n: number) => n / free
|
||||
const ratio = (n: number) => n / baseline
|
||||
const rmax = Math.max(1, ...graph.map((m) => ratio(m.req)))
|
||||
const log = (n: number) => Math.log10(Math.max(n, 1))
|
||||
const base = 24
|
||||
const p = 2.2
|
||||
const x = (r: number) => left + base + Math.pow(log(r) / log(rmax), p) * (plot - base)
|
||||
const start = (x(1) / w) * 100
|
||||
|
||||
const ticks = [1, 5, 10, 25, 50, 100].filter((t) => t <= rmax)
|
||||
const labels = (() => {
|
||||
const set = new Set<number>()
|
||||
@@ -108,10 +110,8 @@ function LimitsGraph(props: { href: string }) {
|
||||
const bh = 8
|
||||
const gap = 20
|
||||
const step = bh + gap
|
||||
const h = 330 + Math.max(0, graph.length - 8) * step
|
||||
const sep = bh + 40
|
||||
const fy = top + 22
|
||||
const gy = (i: number) => fy + sep + step * i
|
||||
const gy = (i: number) => top + 22 + step * i
|
||||
const h = gy(graph.length - 1) + bottom
|
||||
const my = graph.length < 2 ? gy(0) : (gy(0) + gy(graph.length - 1)) / 2
|
||||
const px = (n: number) => `${(n / w) * 100}%`
|
||||
const py = (n: number) => `${(n / h) * 100}%`
|
||||
@@ -121,10 +121,9 @@ function LimitsGraph(props: { href: string }) {
|
||||
return (
|
||||
<figure
|
||||
data-component="limit-graph"
|
||||
aria-label={i18n.t("go.graph.aria", { free: i18n.t("go.graph.free"), go: i18n.t("go.graph.go") })}
|
||||
aria-label={i18n.t("go.graph.label")}
|
||||
data-visible={visible() ? "" : undefined}
|
||||
ref={root}
|
||||
style={{ "--start": `${start}%` } as any}
|
||||
>
|
||||
<div data-slot="plot">
|
||||
<svg
|
||||
@@ -147,10 +146,6 @@ function LimitsGraph(props: { href: string }) {
|
||||
<line x1={left} y1={top} x2={left} y2={h - bottom} data-stub />
|
||||
|
||||
<g data-slot="bars">
|
||||
<g style={{ "--d": "0ms" } as any}>
|
||||
<rect x={left} y={fy - bh / 2} width={Math.max(0, x(1) - left)} height={bh} data-bar data-kind="free" />
|
||||
</g>
|
||||
|
||||
<For each={graph}>
|
||||
{(m, i) => (
|
||||
<g style={{ "--d": m.d } as any}>
|
||||
@@ -170,9 +165,6 @@ function LimitsGraph(props: { href: string }) {
|
||||
</svg>
|
||||
|
||||
<div data-slot="ylabels" aria-hidden="true">
|
||||
<span data-ylabel style={{ "--x": lx, "--y": py(fy) } as any}>
|
||||
{i18n.t("go.graph.free")}
|
||||
</span>
|
||||
<span data-ylabel style={{ "--x": lx, "--y": py(my) } as any}>
|
||||
{i18n.t("go.graph.go")}
|
||||
</span>
|
||||
@@ -189,10 +181,6 @@ function LimitsGraph(props: { href: string }) {
|
||||
</div>
|
||||
|
||||
<div data-slot="pills" aria-hidden="true">
|
||||
<span data-item data-kind="free" style={{ "--x": px(x(1)), "--y": py(fy), "--d": "0ms" } as any}>
|
||||
<span data-value>{free.toLocaleString()}</span>
|
||||
<span data-name>{i18n.t("go.graph.freePill")}</span>
|
||||
</span>
|
||||
<For each={graph}>
|
||||
{(m, i) => (
|
||||
<span
|
||||
@@ -447,26 +435,7 @@ export default function Home() {
|
||||
<li>
|
||||
<Faq question={i18n.t("go.faq.q2")}>
|
||||
{i18n.t("go.faq.a2")}
|
||||
<div data-slot="faq-models">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{i18n.t("workspace.models.table.model")}</th>
|
||||
<th>{i18n.t("workspace.providers.table.provider")}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<For each={models}>
|
||||
{(m) => (
|
||||
<tr>
|
||||
<td>{m.name}</td>
|
||||
<td>{m.provider}</td>
|
||||
</tr>
|
||||
)}
|
||||
</For>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div data-slot="faq-models">{models.join(", ")}.</div>
|
||||
</Faq>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
@@ -306,10 +306,12 @@ export function LiteSection(props: { lite: LiteSubscription | undefined }) {
|
||||
</p>
|
||||
<h3 data-slot="promo-models-title">{i18n.t("workspace.lite.promo.modelsTitle")}</h3>
|
||||
<ul data-slot="promo-models">
|
||||
<li>Kimi K2.7 Code</li>
|
||||
<li>Kimi K2.6</li>
|
||||
<li>Grok 4.5</li>
|
||||
<li>GLM-5.2</li>
|
||||
<li>GLM-5.1</li>
|
||||
<li>Kimi K3</li>
|
||||
<li>Kimi K2.7 Code</li>
|
||||
<li>Kimi K2.6</li>
|
||||
<li>MiniMax M3</li>
|
||||
<li>MiniMax M2.7</li>
|
||||
<li>Qwen3.7 Max</li>
|
||||
|
||||
Reference in New Issue
Block a user