fix: rebrand models to Zen, configure publishable key architecture

- Remove deepseek-r1-distill-70b and qwen3-32b from model lists
- Add zen3-nano, zen, zen4-coder-flash to Zen model catalog
- Reorder models by size (nano -> mini -> zen -> pro -> frontier)
- Replace OPENAI_API_KEY with HANZO_API_KEY for publishable key flow
- Replace Deepseek/Kimi/Moonshot display labels with Zen in parsers.ts
- Add HANZO_API_KEY env var to .env.example with IAM documentation
This commit is contained in:
Hanzo Dev
2026-02-27 11:00:50 -08:00
parent 99c85591e7
commit 94f232abe1
4 changed files with 93 additions and 76 deletions
+8
View File
@@ -109,6 +109,14 @@ NODE_MAX_OLD_SPACE_SIZE=6144
PROXY=
#===============================#
# Hanzo API (Zen models) #
#===============================#
# Publishable key for unauthenticated users (rate-limited).
# Authenticated users get their real API key after IAM login (hanzo.id).
# Endpoint: https://api.hanzo.ai/v1
HANZO_API_KEY=
#===================================#
# Known Endpoints - chat.yaml #
#===================================#
+69 -55
View File
@@ -3,110 +3,124 @@
model_list:
# =====================
# zen4 series (Hanzo AI)
# Zen model family (Hanzo AI)
# Publishable key (HANZO_API_KEY) for unauthenticated users.
# Authenticated users override with their own key via IAM (hanzo.id).
# =====================
- model_name: zen4
- model_name: zen3-nano
litellm_params:
model: openai/zen4
model: openai/zen3-nano
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
api_key: os.environ/HANZO_API_KEY
model_info:
description: "zen4: General purpose AI"
- model_name: zen4-pro
litellm_params:
model: openai/zen4-pro
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
model_info:
description: "zen4-pro: High capability reasoning"
- model_name: zen4-max
litellm_params:
model: openai/zen4-max
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
model_info:
description: "zen4-max: Extended context window"
description: "zen3-nano: 4B dense, fast free-tier model"
- model_name: zen4-mini
litellm_params:
model: openai/zen4-mini
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
api_key: os.environ/HANZO_API_KEY
model_info:
description: "zen4-mini: Fast and efficient"
description: "zen4-mini: 8B dense, fast and efficient"
- model_name: zen
litellm_params:
model: openai/zen
api_base: https://api.hanzo.ai/v1
api_key: os.environ/HANZO_API_KEY
model_info:
description: "zen: 32B default general-purpose model"
- model_name: zen4-pro
litellm_params:
model: openai/zen4-pro
api_base: https://api.hanzo.ai/v1
api_key: os.environ/HANZO_API_KEY
model_info:
description: "zen4-pro: 80B MoE flagship reasoning"
- model_name: zen4
litellm_params:
model: openai/zen4
api_base: https://api.hanzo.ai/v1
api_key: os.environ/HANZO_API_KEY
model_info:
description: "zen4: 744B MoE frontier model"
- model_name: zen4-max
litellm_params:
model: openai/zen4-max
api_base: https://api.hanzo.ai/v1
api_key: os.environ/HANZO_API_KEY
model_info:
description: "zen4-max: 1.04T MoE, 256K context"
- model_name: zen4-ultra
litellm_params:
model: openai/zen4-ultra
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
api_key: os.environ/HANZO_API_KEY
model_info:
description: "zen4-ultra: Maximum reasoning capability"
- model_name: zen4-coder
litellm_params:
model: openai/zen4-coder
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
model_info:
description: "zen4-coder: Code specialist"
description: "zen4-ultra: 744B MoE + CoT reasoning"
- model_name: zen4-thinking
litellm_params:
model: openai/zen4-thinking
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
api_key: os.environ/HANZO_API_KEY
model_info:
description: "zen4-thinking: Deep reasoning with chain-of-thought"
description: "zen4-thinking: 80B MoE with chain-of-thought"
- model_name: zen4-coder-flash
litellm_params:
model: openai/zen4-coder-flash
api_base: https://api.hanzo.ai/v1
api_key: os.environ/HANZO_API_KEY
model_info:
description: "zen4-coder-flash: 30B MoE, fast code specialist"
- model_name: zen4-coder
litellm_params:
model: openai/zen4-coder
api_base: https://api.hanzo.ai/v1
api_key: os.environ/HANZO_API_KEY
model_info:
description: "zen4-coder: 480B MoE code specialist"
- model_name: zen4-coder-pro
litellm_params:
model: openai/zen4-coder-pro
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
api_key: os.environ/HANZO_API_KEY
model_info:
description: "zen4-coder-pro: Premium coding model"
description: "zen4-coder-pro: 480B dense BF16 coding model"
# =====================
# Standard models (via Hanzo Cloud)
# Third-party models (via Hanzo Cloud)
# =====================
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
api_key: os.environ/HANZO_API_KEY
- model_name: gpt-4o-mini
litellm_params:
model: openai/gpt-4o-mini
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
api_key: os.environ/HANZO_API_KEY
- model_name: claude-sonnet-4-5
litellm_params:
model: openai/claude-sonnet-4-5
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
api_key: os.environ/HANZO_API_KEY
- model_name: claude-haiku-4-5
litellm_params:
model: openai/claude-haiku-4-5
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
- model_name: deepseek-r1-distill-70b
litellm_params:
model: openai/deepseek-r1-distill-70b
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
- model_name: qwen3-32b
litellm_params:
model: openai/qwen3-32b
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
api_key: os.environ/HANZO_API_KEY
# =====================
# Wildcard passthrough
@@ -115,7 +129,7 @@ model_list:
litellm_params:
model: "openai/*"
api_base: https://api.hanzo.ai/v1
api_key: os.environ/OPENAI_API_KEY
api_key: os.environ/HANZO_API_KEY
litellm_settings:
drop_params: true
+12 -9
View File
@@ -90,27 +90,30 @@ endpoints:
# All models routed through api.hanzo.ai OpenAI-compatible gateway
custom:
- name: 'Hanzo'
apiKey: '${OPENAI_API_KEY}'
# Publishable key for unauthenticated users (rate-limited).
# Authenticated users override with their own key via IAM (hanzo.id).
apiKey: '${HANZO_API_KEY}'
baseURL: 'https://api.hanzo.ai/v1'
iconURL: 'https://hanzo.ai/logo/icon.svg'
models:
default:
# zen4 series (default models)
- 'zen4'
- 'zen4-pro'
- 'zen4-max'
# Zen model family (Hanzo AI)
- 'zen3-nano'
- 'zen4-mini'
- 'zen'
- 'zen4-pro'
- 'zen4'
- 'zen4-max'
- 'zen4-ultra'
- 'zen4-coder'
- 'zen4-thinking'
- 'zen4-coder-flash'
- 'zen4-coder'
- 'zen4-coder-pro'
# Standard models (via Hanzo Cloud)
# Third-party models (via Hanzo Cloud)
- 'gpt-4o'
- 'gpt-4o-mini'
- 'claude-sonnet-4-5'
- 'claude-haiku-4-5'
- 'deepseek-r1-distill-70b'
- 'qwen3-32b'
fetch: false
titleConvo: true
titleModel: 'zen4-mini'
+4 -12
View File
@@ -224,12 +224,8 @@ export const getResponseSender = (endpointOption: Partial<t.TEndpointOption>): s
return extractOmniVersion(model);
} else if (model && (model.includes('mistral') || model.includes('codestral'))) {
return 'Mistral';
} else if (model && model.includes('deepseek')) {
return 'Deepseek';
} else if (model && model.includes('kimi')) {
return 'Kimi';
} else if (model && model.includes('moonshot')) {
return 'Moonshot';
} else if (model && (model.startsWith('zen') || model.includes('zen'))) {
return 'Zen';
} else if (model && model.includes('gpt-')) {
const gptVersion = extractGPTVersion(model);
return gptVersion || 'GPT';
@@ -265,12 +261,8 @@ export const getResponseSender = (endpointOption: Partial<t.TEndpointOption>): s
return extractOmniVersion(model);
} else if (model && (model.includes('mistral') || model.includes('codestral'))) {
return 'Mistral';
} else if (model && model.includes('deepseek')) {
return 'Deepseek';
} else if (model && model.includes('kimi')) {
return 'Kimi';
} else if (model && model.includes('moonshot')) {
return 'Moonshot';
} else if (model && (model.startsWith('zen') || model.includes('zen'))) {
return 'Zen';
} else if (model && model.includes('gpt-')) {
const gptVersion = extractGPTVersion(model);
return gptVersion || 'GPT';