mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-24 14:29:07 +02:00
Run a single live Kimi scenario: kimi-k3 over the Anthropic shape
The Moonshot platform serves this account exactly one model — kimi-k3. kimi-k2-thinking and the kimi-latest alias both return resource_not_found_error on either API surface, so two concurrent Kimi provider records would claim the same model and route ambiguously (the router's path-prefix tiebreak needs the client to author the /anthropic prefix, which the standard wire shapes don't). Keep the flagship Claude Code path — kimi-k3 via /anthropic, green in run #74 — as the live scenario; the OpenAI wire shape stays covered by the other chat-shaped matrix providers and passed with kimi-k3 in run #73.
This commit is contained in:
@@ -43,17 +43,16 @@ func availableProviders() []providerCase {
|
|||||||
// Kimi (Moonshot AI) serves two body shapes from the same key: OpenAI
|
// Kimi (Moonshot AI) serves two body shapes from the same key: OpenAI
|
||||||
// Chat Completions on the bare host (/v1/...) and the Anthropic
|
// Chat Completions on the bare host (/v1/...) and the Anthropic
|
||||||
// Messages API under the /anthropic path prefix (the endpoint
|
// Messages API under the /anthropic path prefix (the endpoint
|
||||||
// Moonshot's Claude Code guide uses). One provider record per shape,
|
// Moonshot's Claude Code guide uses). The platform serves this
|
||||||
// with distinct model strings so model→provider routing stays
|
// account exactly ONE model — kimi-k3 (kimi-k2-thinking and even
|
||||||
// unambiguous while both are enabled. Model choice is constrained by
|
// kimi-latest return resource_not_found_error on both surfaces) — so
|
||||||
// what the platform actually serves this account: kimi-k2-thinking
|
// two concurrent provider records would claim the same model and
|
||||||
// returns resource_not_found_error ("... or Permission denied") on
|
// route ambiguously. Run the Anthropic shape, the flagship Claude
|
||||||
// both surfaces — K2-era models aren't available to newer platform
|
// Code path; the OpenAI wire shape is covered live by the other
|
||||||
// accounts — so the OpenAI shape uses the kimi-latest alias and the
|
// chat-shaped matrix providers, and Kimi-over-chat passed with
|
||||||
// Anthropic shape the kimi-k3 flagship (the only model that surface
|
// kimi-k3 before the single-model constraint surfaced (run #73 on
|
||||||
// serves; it's what Moonshot's Claude Code guide configures).
|
// the kimi feature branch).
|
||||||
ps = append(ps, providerCase{name: "kimi-openai", catalogID: "kimi_api", upstream: "https://api.moonshot.ai", apiKey: k, model: "kimi-latest", kind: harness.WireChat})
|
ps = append(ps, providerCase{name: "kimi", catalogID: "kimi_api", upstream: "https://api.moonshot.ai/anthropic", apiKey: k, model: "kimi-k3", kind: harness.WireMessages})
|
||||||
ps = append(ps, providerCase{name: "kimi-anthropic", catalogID: "kimi_api", upstream: "https://api.moonshot.ai/anthropic", apiKey: k, model: "kimi-k3", kind: harness.WireMessages})
|
|
||||||
}
|
}
|
||||||
if k, u := os.Getenv("VERCEL_TOKEN"), os.Getenv("VERCEL_URL"); k != "" && u != "" {
|
if k, u := os.Getenv("VERCEL_TOKEN"), os.Getenv("VERCEL_URL"); k != "" && u != "" {
|
||||||
ps = append(ps, providerCase{name: "vercel", catalogID: "vercel_ai_gateway", upstream: u, apiKey: k, model: "openai/gpt-4o-mini", kind: harness.WireChat})
|
ps = append(ps, providerCase{name: "vercel", catalogID: "vercel_ai_gateway", upstream: u, apiKey: k, model: "openai/gpt-4o-mini", kind: harness.WireChat})
|
||||||
|
|||||||
Reference in New Issue
Block a user