From 2c18d66351f529dba7e6134952bbe071f6305cd4 Mon Sep 17 00:00:00 2001 From: Aniket Dixit Date: Tue, 23 Jun 2026 15:13:38 +0530 Subject: [PATCH 1/4] deepseek v4 flash --- tee_gateway/model_registry.py | 8 ++++++++ tests/test_pricing.py | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/tee_gateway/model_registry.py b/tee_gateway/model_registry.py index ff5d85a..051464b 100644 --- a/tee_gateway/model_registry.py +++ b/tee_gateway/model_registry.py @@ -353,6 +353,12 @@ class SupportedModel(Enum): input_price_usd=Decimal("0.0000004"), output_price_usd=Decimal("0.0000016"), ) + DEEPSEEK_V4_FLASH = ModelConfig( + provider="bytedance", + api_name="deepseek-v4-flash-260425", + input_price_usd=Decimal("0.00000014"), + output_price_usd=Decimal("0.00000028"), + ) # Seedream 4.0 image generation via ModelArk's OpenAI-compatible # /images/generations endpoint. Billed at a flat $0.03 per generated image; # token prices unused. @@ -478,6 +484,8 @@ class SupportedModel(Enum): "seed-1.8": SupportedModel.SEED_1_8, "seed-2-0-lite-260228": SupportedModel.SEED_2_0_LITE, "seed-2.0-lite": SupportedModel.SEED_2_0_LITE, + "deepseek-v4-flash-260425": SupportedModel.DEEPSEEK_V4_FLASH, + "deepseek-v4-flash": SupportedModel.DEEPSEEK_V4_FLASH, "seedream-4-0-250828": SupportedModel.SEEDREAM_4_0, "seedream-4.0": SupportedModel.SEEDREAM_4_0, "seedream-4-0": SupportedModel.SEEDREAM_4_0, diff --git a/tests/test_pricing.py b/tests/test_pricing.py index 31e0729..243dd87 100644 --- a/tests/test_pricing.py +++ b/tests/test_pricing.py @@ -338,6 +338,17 @@ def test_seed_2_0_lite_dated_alias_resolves(self): cfg = get_model_config("seed-2-0-lite-260228") self.assertEqual(cfg, get_model_config("seed-2.0-lite")) + def test_deepseek_v4_flash_resolves(self): + cfg = get_model_config("deepseek-v4-flash") + self.assertEqual(cfg.provider, "bytedance") + self.assertEqual(cfg.api_name, "deepseek-v4-flash-260425") + self.assertEqual(cfg.input_price_usd, Decimal("0.00000014")) + self.assertEqual(cfg.output_price_usd, Decimal("0.00000028")) + + def test_deepseek_v4_flash_dated_alias_resolves(self): + cfg = get_model_config("deepseek-v4-flash-260425") + self.assertEqual(cfg, get_model_config("deepseek-v4-flash")) + # ── Nous Research (Nous Portal) ───────────────────────────────────────── def test_hermes_4_405b_resolves(self): @@ -618,6 +629,13 @@ def test_seed_2_0_lite_cheaper_than_seed_1_6(self): full = self._calc("seed-1.6", 1000, 1000) self.assertLess(lite, full) + def test_deepseek_v4_flash_cost(self): + cost = self._calc("deepseek-v4-flash", 1000, 500) + expected = _expected_cost_opg("deepseek-v4-flash", 1000, 500) + self.assertEqual(cost, expected) + # 1000*0.00000014 + 500*0.00000028 = 0.00014 + 0.00014 = 0.00028 USD + self.assertEqual(cost, 280_000_000_000_000) + # ── Haiku is cheaper than Sonnet ──────────────────────────────────────── def test_haiku_cheaper_than_sonnet(self): From de64bd6d7e162a632a6d821c81931fa1afa5869f Mon Sep 17 00:00:00 2001 From: Aniket Dixit Date: Tue, 23 Jun 2026 19:43:26 +0530 Subject: [PATCH 2/4] deepseek v4 pro --- tee_gateway/model_registry.py | 8 ++++++++ tests/test_pricing.py | 26 ++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/tee_gateway/model_registry.py b/tee_gateway/model_registry.py index 051464b..e8eb608 100644 --- a/tee_gateway/model_registry.py +++ b/tee_gateway/model_registry.py @@ -359,6 +359,12 @@ class SupportedModel(Enum): input_price_usd=Decimal("0.00000014"), output_price_usd=Decimal("0.00000028"), ) + DEEPSEEK_V4_PRO = ModelConfig( + provider="bytedance", + api_name="deepseek-v4-pro-260425", + input_price_usd=Decimal("0.00000174"), + output_price_usd=Decimal("0.00000348"), + ) # Seedream 4.0 image generation via ModelArk's OpenAI-compatible # /images/generations endpoint. Billed at a flat $0.03 per generated image; # token prices unused. @@ -486,6 +492,8 @@ class SupportedModel(Enum): "seed-2.0-lite": SupportedModel.SEED_2_0_LITE, "deepseek-v4-flash-260425": SupportedModel.DEEPSEEK_V4_FLASH, "deepseek-v4-flash": SupportedModel.DEEPSEEK_V4_FLASH, + "deepseek-v4-pro-260425": SupportedModel.DEEPSEEK_V4_PRO, + "deepseek-v4-pro": SupportedModel.DEEPSEEK_V4_PRO, "seedream-4-0-250828": SupportedModel.SEEDREAM_4_0, "seedream-4.0": SupportedModel.SEEDREAM_4_0, "seedream-4-0": SupportedModel.SEEDREAM_4_0, diff --git a/tests/test_pricing.py b/tests/test_pricing.py index 243dd87..8797c39 100644 --- a/tests/test_pricing.py +++ b/tests/test_pricing.py @@ -349,6 +349,25 @@ def test_deepseek_v4_flash_dated_alias_resolves(self): cfg = get_model_config("deepseek-v4-flash-260425") self.assertEqual(cfg, get_model_config("deepseek-v4-flash")) + def test_deepseek_v4_flash_bytedance_alias_resolves(self): + cfg = get_model_config("bytedance/deepseek-v4-flash") + self.assertEqual(cfg, get_model_config("deepseek-v4-flash")) + + def test_deepseek_v4_pro_resolves(self): + cfg = get_model_config("deepseek-v4-pro") + self.assertEqual(cfg.provider, "bytedance") + self.assertEqual(cfg.api_name, "deepseek-v4-pro-260425") + self.assertEqual(cfg.input_price_usd, Decimal("0.00000174")) + self.assertEqual(cfg.output_price_usd, Decimal("0.00000348")) + + def test_deepseek_v4_pro_aliases_resolve(self): + cfg = get_model_config("bytedance/deepseek-v4-pro") + self.assertEqual(cfg, get_model_config("deepseek-v4-pro")) + self.assertEqual( + get_model_config("deepseek-v4-pro-260425"), + get_model_config("deepseek-v4-pro"), + ) + # ── Nous Research (Nous Portal) ───────────────────────────────────────── def test_hermes_4_405b_resolves(self): @@ -636,6 +655,13 @@ def test_deepseek_v4_flash_cost(self): # 1000*0.00000014 + 500*0.00000028 = 0.00014 + 0.00014 = 0.00028 USD self.assertEqual(cost, 280_000_000_000_000) + def test_deepseek_v4_pro_cost(self): + cost = self._calc("deepseek-v4-pro", 1000, 500) + expected = _expected_cost_opg("deepseek-v4-pro", 1000, 500) + self.assertEqual(cost, expected) + # 1000*0.00000174 + 500*0.00000348 = 0.00174 + 0.00174 = 0.00348 USD + self.assertEqual(cost, 3_480_000_000_000_000) + # ── Haiku is cheaper than Sonnet ──────────────────────────────────────── def test_haiku_cheaper_than_sonnet(self): From 664fb23e48bf4a10bcb9f87f56c74c077fcb0eb6 Mon Sep 17 00:00:00 2001 From: Aniket Dixit Date: Tue, 23 Jun 2026 19:43:54 +0530 Subject: [PATCH 3/4] docs update --- CLAUDE.md | 2 +- README.md | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 7bf7c5e..a14a1f3 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -117,7 +117,7 @@ Model name prefixes determine routing: - **Anthropic**: claude-sonnet-4-0/4-5/4-6, claude-haiku-4-5, claude-opus-4-5/4-6/4-7/4-8, claude-fable-5, claude-3-7-sonnet, claude-3-5-haiku - **Google**: gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.5-pro, gemini-3-pro-preview, gemini-3-flash-preview, gemini-3.1-pro-preview, gemini-3.1-flash-lite-preview, gemini-3.5-flash; image generation: gemini-2.5-flash-image, gemini-3.1-flash-image - **xAI**: grok-2, grok-3, grok-3-mini, grok-4, grok-4-fast, grok-4-1-fast; image generation: grok-2-image -- **ByteDance** (BytePlus ModelArk, OpenAI-compatible, ap-southeast): seed-1.6, seed-1.8, seed-2.0-lite; image generation: seedream-4.0 +- **ByteDance** (BytePlus ModelArk, OpenAI-compatible, ap-southeast): seed-1.6, seed-1.8, seed-2.0-lite, deepseek-v4-flash, deepseek-v4-pro; image generation: seedream-4.0 - **Nous Research** (Nous Portal, OpenAI-compatible): hermes-4-405b, hermes-4-70b - **Z.ai** (Model API, OpenAI-compatible): glm-5.2; image generation: glm-image diff --git a/README.md b/README.md index cf45b02..148ff83 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ The gateway solves this by running inside a hardware-isolated Nitro Enclave wher | Anthropic | claude-sonnet-4-5, claude-sonnet-4-6, claude-haiku-4-5, claude-opus-4-5, claude-opus-4-6 | | Google | gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.5-pro, gemini-3-pro-preview, gemini-3-flash-preview | | xAI | grok-4, grok-4-fast, grok-4-1-fast, grok-4-1-fast-non-reasoning | -| ByteDance | seed-1.6, seed-1.8, seed-2.0-lite | +| ByteDance | seed-1.6, seed-1.8, seed-2.0-lite, deepseek-v4-flash, deepseek-v4-pro | ## Quick Start @@ -52,6 +52,8 @@ export ANTHROPIC_API_KEY=sk-ant-... export GOOGLE_API_KEY=... export XAI_API_KEY=... export ARK_API_KEY=... # BytePlus / ByteDance ModelArk +export NOUS_API_KEY=... # Nous Research / Nous Portal +export ZAI_API_KEY=... # Z.ai Model API # Run server (starts the Flask/connexion app on port 8000) make test-local @@ -394,6 +396,8 @@ Clients use an x402-compatible client (e.g., the [x402 SDK](https://github.com/o | `GOOGLE_API_KEY` | - | Google AI API key | | `XAI_API_KEY` | - | xAI API key | | `ARK_API_KEY` | - | BytePlus / ByteDance ModelArk API key (injected as `bytedance_api_key`) | +| `NOUS_API_KEY` | - | Nous Research / Nous Portal API key (injected as `nous_api_key`) | +| `ZAI_API_KEY` | - | Z.ai Model API key (injected as `zai_api_key`) | | `EVM_PAYMENT_ADDRESS` | - | Wallet address to receive x402 payments | | `FACILITATOR_URL` | see `tee_gateway/__main__.py` | x402 payment facilitator endpoint | From 7239921324cdd063a490b920e379acd6d9e09d62 Mon Sep 17 00:00:00 2001 From: Aniket Dixit Date: Tue, 23 Jun 2026 19:48:05 +0530 Subject: [PATCH 4/4] test fix --- tests/test_pricing.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/test_pricing.py b/tests/test_pricing.py index 8797c39..36f0cb0 100644 --- a/tests/test_pricing.py +++ b/tests/test_pricing.py @@ -349,10 +349,6 @@ def test_deepseek_v4_flash_dated_alias_resolves(self): cfg = get_model_config("deepseek-v4-flash-260425") self.assertEqual(cfg, get_model_config("deepseek-v4-flash")) - def test_deepseek_v4_flash_bytedance_alias_resolves(self): - cfg = get_model_config("bytedance/deepseek-v4-flash") - self.assertEqual(cfg, get_model_config("deepseek-v4-flash")) - def test_deepseek_v4_pro_resolves(self): cfg = get_model_config("deepseek-v4-pro") self.assertEqual(cfg.provider, "bytedance") @@ -361,8 +357,6 @@ def test_deepseek_v4_pro_resolves(self): self.assertEqual(cfg.output_price_usd, Decimal("0.00000348")) def test_deepseek_v4_pro_aliases_resolve(self): - cfg = get_model_config("bytedance/deepseek-v4-pro") - self.assertEqual(cfg, get_model_config("deepseek-v4-pro")) self.assertEqual( get_model_config("deepseek-v4-pro-260425"), get_model_config("deepseek-v4-pro"),