mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-08 22:21:45 +00:00
Merge pull request #772 from fabro-sh/brynary/venice-model-catalog
Update Venice model catalog
This commit is contained in:
commit
57026cd4da
6 changed files with 344 additions and 111 deletions
|
|
@ -59,13 +59,18 @@ Fabro performs this selection once when creating a run and persists the chosen p
|
|||
| `gemini-3.1-flash-lite` | gemini | `gemini-flash-lite`, `gemini-3.1-flash-lite-preview` | 1M | $0.25 / $1.50 | 200 tok/s |
|
||||
| `kimi-k2.5` | moonshot | | 262K | $0.60 / $3.00 | 50 tok/s |
|
||||
| `kimi-k3` | moonshot | `kimi` | 1M | $3.00 / $15.00 | n/a |
|
||||
| `kimi-k3-fast` | venice | `kimi-fast` | 1M | $4.50 / $22.50 | n/a |
|
||||
| `deepseek-v4-flash` | deepseek | `deepseek`, `deepseek-v4`, `deepseek-flash` | 1,048,576 | $0.14 / $0.28 | n/a |
|
||||
| `deepseek-v4-pro` | deepseek | | 1,048,576 | $0.435 / $0.87 | n/a |
|
||||
| `grok-4.6` | venice | `grok`, `grok46`, `grok-46` | 500K | $2.27 / $6.80 | n/a |
|
||||
| `laguna-s-2.1` | poolside | `laguna`, `laguna-s` | 1M | $0.10 / $0.20 | n/a |
|
||||
| `laguna-xs-2.1` | poolside | `laguna-xs` | 262K | $0.10 / $0.20 | n/a |
|
||||
| `glm-5.2` | zai | `glm`, `glm5`, `glm52`, `glm5.2` | 1M | $1.40 / $4.40 | n/a |
|
||||
| `glm-5.3` | venice | `glm`, `glm5`, `glm53`, `glm5.3`, `glm-5-3` | 1M | $1.75 / $5.50 | n/a |
|
||||
| `minimax-m2.5` | minimax | `minimax` | 197K | $0.30 / $1.20 | 45 tok/s |
|
||||
| `mercury-2` | inception | `mercury` | 131K | $0.25 / $0.75 | 1000 tok/s |
|
||||
| `qwen3.8-max` | venice | `qwen`, `qwen-max`, `qwen3.8`, `qwen-3.8`, `qwen38`, `qwen-3.8-max`, `qwen38-max` | 1M | $2.50 / $7.50 | n/a |
|
||||
| `qwen3.8-27b` | venice | `qwen-27b`, `qwen-3.8-27b`, `qwen38-27b` | 262K | $0.45 / $3.20 | n/a |
|
||||
|
||||
Each provider requires its own API key. Server-backed workflows read provider credentials from the server vault (for example `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY`, `DEEPSEEK_API_KEY`, or `POOLSIDE_API_KEY` set with `fabro secret set` or `fabro provider login`). Standalone SDK/CLI flows can opt into env-backed credential sources explicitly. See the [Quick Start](/getting-started/quick-start) for setup.
|
||||
|
||||
|
|
@ -169,6 +174,10 @@ Provider `billing_policy` defaults from `adapter` and controls usage-cost estima
|
|||
Provider fields in configuration, APIs, and model routing are provider ID strings. Built-in names like `anthropic`, `openai`, and `gemini` still work, but custom IDs like `proxy` work anywhere a provider ID is accepted.
|
||||
</Note>
|
||||
|
||||
### Venice
|
||||
|
||||
Fabro ships a built-in [Venice](/integrations/venice) provider with a curated catalog of Venice-hosted Kimi, Grok, GLM, DeepSeek, and Qwen models. Store its API key with `fabro provider login --provider venice`. Pin `provider = "venice"` when a shared model slug must use Venice instead of a higher-priority direct provider.
|
||||
|
||||
### Poolside
|
||||
|
||||
Fabro ships a built-in [Poolside](/integrations/poolside) provider for Laguna S 2.1 and Laguna XS 2.1 over Poolside's OpenAI-compatible API. Store a direct API key with `fabro provider login --provider poolside`. The same model slugs are also available through the opt-in OpenRouter provider; its vendor-namespaced strings remain provider-only `api_id` values.
|
||||
|
|
@ -232,6 +241,7 @@ When no model or provider is specified, Fabro chooses the default offering on th
|
|||
| `moonshot` | `kimi-k3` |
|
||||
| `poolside` | `laguna-s-2.1` |
|
||||
| `zai` | `glm-5.2` |
|
||||
| `venice` | `deepseek-v4-flash` |
|
||||
| `minimax` | `minimax-m2.5` |
|
||||
| `inception` | `mercury-2` |
|
||||
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@
|
|||
"integrations/litellm",
|
||||
"integrations/bedrock",
|
||||
"integrations/deepseek",
|
||||
"integrations/venice",
|
||||
"integrations/poolside",
|
||||
"integrations/openrouter",
|
||||
"integrations/modal",
|
||||
|
|
|
|||
125
docs/public/integrations/venice.mdx
Normal file
125
docs/public/integrations/venice.mdx
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
---
|
||||
title: "Venice"
|
||||
description: "Run Kimi, Grok, GLM, DeepSeek, and Qwen models through Venice"
|
||||
---
|
||||
|
||||
[Venice](https://venice.ai/) provides an OpenAI-compatible API for hosted text models. Fabro enables the `venice` provider in its built-in catalog and maps stable Fabro model slugs to Venice's API model IDs.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- A Venice account
|
||||
- An inference API key from [venice.ai/settings/api](https://venice.ai/settings/api)
|
||||
- A running Fabro server
|
||||
|
||||
## Configure credentials
|
||||
|
||||
Store the API key in the target Fabro server vault:
|
||||
|
||||
```bash
|
||||
fabro provider login --provider venice
|
||||
|
||||
# For a non-default remote server:
|
||||
fabro provider login --server https://your-fabro.example --provider venice
|
||||
|
||||
# Or set the vault token directly:
|
||||
fabro secret set VENICE_API_KEY
|
||||
fabro secret --server https://your-fabro.example set VENICE_API_KEY
|
||||
```
|
||||
|
||||
Standalone SDK usage outside a Fabro server can use an env-backed credential source explicitly:
|
||||
|
||||
```bash
|
||||
export VENICE_API_KEY=<api-key>
|
||||
```
|
||||
|
||||
Fabro sends bearer-authenticated Chat Completions requests to `https://api.venice.ai/api/v1`.
|
||||
|
||||
## Included models
|
||||
|
||||
| Fabro model slug | Venice API ID | Context | Max output | Role and aliases |
|
||||
|---|---|---:|---:|---|
|
||||
| `kimi-k3` | `kimi-k3` | 1,000,000 | 131,072 | Alias `kimi` |
|
||||
| `kimi-k3-fast` | `kimi-k3-fast-api` | 1,000,000 | 131,072 | Alias `kimi-fast` |
|
||||
| `grok-4.6` | `grok-4-6` | 500,000 | 32,000 | Aliases `grok`, `grok46`, `grok-46` |
|
||||
| `glm-5.3` | `z-ai-glm-5-3` | 1,000,000 | 131,072 | Aliases `glm`, `glm5`, `glm53`, `glm5.3`, `glm-5-3` |
|
||||
| `deepseek-v4-flash` | `deepseek-v4-flash-0731` | 1,000,000 | 32,768 | Provider default; aliases `deepseek`, `deepseek-v4`, `deepseek-flash` |
|
||||
| `deepseek-v4-pro` | `deepseek-v4-pro-0813` | 1,000,000 | 32,768 | Alias `deepseek-pro` |
|
||||
| `qwen3.8-max` | `qwen-3-8-max` | 1,000,000 | 131,072 | Aliases `qwen`, `qwen-max`, `qwen3.8`, `qwen-3.8`, `qwen38`, `qwen-3.8-max`, `qwen38-max` |
|
||||
| `qwen3.8-27b` | `qwen-3-8-27b` | 262,144 | 131,072 | Aliases `qwen-27b`, `qwen-3.8-27b`, `qwen38-27b` |
|
||||
|
||||
Venice API IDs are also valid provider-scoped selectors. Fabro persists the stable Fabro slug and the selected provider when it creates a run.
|
||||
|
||||
## Select Venice explicitly
|
||||
|
||||
Some Venice models use the same stable slugs as direct providers. An unqualified selector chooses the highest-priority ready provider. For example, `deepseek` can select the direct DeepSeek provider when both API keys are configured.
|
||||
|
||||
Pin Venice when the run must use Venice:
|
||||
|
||||
```bash
|
||||
fabro model list --provider venice
|
||||
fabro model test --provider venice --model deepseek-v4-flash --deep
|
||||
fabro run workflow.fabro --provider venice --model deepseek-v4-flash
|
||||
```
|
||||
|
||||
In a workflow stylesheet:
|
||||
|
||||
```dot title="workflow.fabro"
|
||||
digraph Example {
|
||||
graph [
|
||||
model_stylesheet="
|
||||
* { provider: venice; model: deepseek-v4-flash; }
|
||||
.complex { provider: venice; model: qwen; }
|
||||
.fast { provider: venice; model: kimi-fast; }
|
||||
"
|
||||
]
|
||||
|
||||
start [shape=Mdiamond, label="Start"]
|
||||
work [label="Implement", class="complex"]
|
||||
check [label="Check", class="fast"]
|
||||
exit [shape=Msquare, label="Exit"]
|
||||
|
||||
start -> work -> check -> exit
|
||||
}
|
||||
```
|
||||
|
||||
The generic Qwen aliases `qwen` and `qwen3.8` select Qwen 3.8 Max. Use a size-specific alias such as `qwen-27b` to select Qwen 3.8 27B.
|
||||
|
||||
## Capabilities and reasoning
|
||||
|
||||
All included models support tool calling and reasoning. Kimi K3, Kimi K3 Fast, Grok 4.6, Qwen 3.8 Max, and Qwen 3.8 27B also accept image input.
|
||||
|
||||
Fabro exposes native reasoning-effort controls only when Venice supports them:
|
||||
|
||||
| Model | Reasoning effort values |
|
||||
|---|---|
|
||||
| `grok-4.6` | `low`, `medium`, `high`, `xhigh` |
|
||||
| `glm-5.3` | `low`, `high`, `max` |
|
||||
| `deepseek-v4-flash` | `low`, `high`, `max` |
|
||||
| `qwen3.8-27b` | `low`, `medium`, `xhigh` |
|
||||
|
||||
The other models reason by default but do not expose a Venice reasoning-effort control. Fabro omits sampling parameters for Kimi and DeepSeek because those routes do not use them with their configured reasoning behavior.
|
||||
|
||||
## Pricing and prompt caching
|
||||
|
||||
The built-in catalog uses Venice's published prices per million tokens:
|
||||
|
||||
| Model | Uncached input | Cache hit | Output |
|
||||
|---|---:|---:|---:|
|
||||
| `kimi-k3` | $3.75 | $0.375 | $18.75 |
|
||||
| `kimi-k3-fast` | $4.50 | $0.45 | $22.50 |
|
||||
| `grok-4.6` | $2.27 | $0.57 | $6.80 |
|
||||
| `glm-5.3` | $1.75 | $0.325 | $5.50 |
|
||||
| `deepseek-v4-flash` | $0.175 | $0.035 | $0.35 |
|
||||
| `deepseek-v4-pro` | $1.65 | $0.165 | $4.95 |
|
||||
| `qwen3.8-max` | $2.50 | $0.3125 | $7.50 |
|
||||
| `qwen3.8-27b` | $0.45 | n/a | $3.20 |
|
||||
|
||||
Fabro reports cached input separately when Venice returns cache usage for the selected model. Prices and model availability can change upstream; use `fabro model list --provider venice` to inspect the catalog shipped with your Fabro version and the [Venice model catalog](https://docs.venice.ai/models/overview) for the current upstream service.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**"No credential was found for provider 'venice'"** — Store `VENICE_API_KEY` in the server vault with `fabro provider login --provider venice`. Pass `--server` when configuring a remote Fabro server.
|
||||
|
||||
**A shared model used another provider** — Pin Venice with `--provider venice` or `provider: venice` in the workflow stylesheet. Unqualified selectors use provider priority.
|
||||
|
||||
**A Venice API model ID is rejected without a provider** — Use the stable Fabro slug for portable selection, or qualify the API ID with the provider, such as `venice:qwen-3-8-max`.
|
||||
|
|
@ -269,91 +269,19 @@ mod tests {
|
|||
.unwrap_or_else(|error| panic!("built-in model '{selector}' should resolve: {error}"))
|
||||
}
|
||||
|
||||
/// One row of the route-equivalence table: model id plus the
|
||||
/// `(deployment_id, transport, codec, billing_policy, agent_profile)`
|
||||
/// tuple it must resolve to.
|
||||
type RouteRow = (
|
||||
&'static str,
|
||||
&'static str,
|
||||
AdapterKind,
|
||||
CodecKind,
|
||||
BillingPolicy,
|
||||
AgentProfileKind,
|
||||
);
|
||||
|
||||
/// The compat mapping as an executable table: every built-in catalog
|
||||
/// model resolves to exactly this tuple. Adding or rerouting a built-in
|
||||
/// model means updating this table deliberately.
|
||||
#[test]
|
||||
fn builtin_catalog_route_equivalence_table() {
|
||||
use AdapterKind as T;
|
||||
use AgentProfileKind as P;
|
||||
use BillingPolicy as B;
|
||||
use CodecKind as C;
|
||||
|
||||
#[rustfmt::skip]
|
||||
let expected: &[RouteRow] = &[
|
||||
// model id deployment_id transport codec billing profile
|
||||
("claude-fable-5", "claude-fable-5", T::Anthropic, C::AnthropicMessages, B::Anthropic, P::Claude5),
|
||||
("claude-haiku-4-5", "claude-haiku-4-5", T::Anthropic, C::AnthropicMessages, B::Anthropic, P::Anthropic),
|
||||
("claude-opus-4-6", "claude-opus-4-6", T::Anthropic, C::AnthropicMessages, B::Anthropic, P::Anthropic),
|
||||
("claude-opus-4-7", "claude-opus-4-7", T::Anthropic, C::AnthropicMessages, B::Anthropic, P::Anthropic),
|
||||
("claude-opus-4-8", "claude-opus-4-8", T::Anthropic, C::AnthropicMessages, B::Anthropic, P::Anthropic),
|
||||
("claude-opus-5", "claude-opus-5", T::Anthropic, C::AnthropicMessages, B::Anthropic, P::Claude5),
|
||||
("claude-sonnet-4-5", "claude-sonnet-4-5", T::Anthropic, C::AnthropicMessages, B::Anthropic, P::Anthropic),
|
||||
("claude-sonnet-4-6", "claude-sonnet-4-6", T::Anthropic, C::AnthropicMessages, B::Anthropic, P::Anthropic),
|
||||
("claude-sonnet-5", "claude-sonnet-5", T::Anthropic, C::AnthropicMessages, B::Anthropic, P::Claude5),
|
||||
("deepseek-v4-flash", "deepseek-v4-flash", T::OpenAiCompatible, C::OpenAiCompatible, B::OpenAi, P::OpenAi),
|
||||
("deepseek-v4-pro", "deepseek-v4-pro", T::OpenAiCompatible, C::OpenAiCompatible, B::OpenAi, P::OpenAi),
|
||||
("gemini-3-flash-preview", "gemini-3-flash-preview", T::Gemini, C::GeminiGenerate, B::Gemini, P::Gemini),
|
||||
("gemini-3.1-flash-lite", "gemini-3.1-flash-lite", T::Gemini, C::GeminiGenerate, B::Gemini, P::Gemini),
|
||||
("gemini-3.1-pro-preview", "gemini-3.1-pro-preview", T::Gemini, C::GeminiGenerate, B::Gemini, P::Gemini),
|
||||
("gemini-3.1-pro-preview-customtools", "gemini-3.1-pro-preview-customtools", T::Gemini, C::GeminiGenerate, B::Gemini, P::Gemini),
|
||||
("gemini-3.5-flash", "gemini-3.5-flash", T::Gemini, C::GeminiGenerate, B::Gemini, P::Gemini),
|
||||
("glm-4.7", "glm-4.7", T::OpenAiCompatible, C::OpenAiCompatible, B::OpenAi, P::OpenAi),
|
||||
("glm-5.2", "glm-5.2", T::OpenAiCompatible, C::OpenAiCompatible, B::OpenAi, P::OpenAi),
|
||||
("gpt-5.4", "gpt-5.4", T::OpenAi, C::OpenAiResponses, B::OpenAi, P::OpenAi),
|
||||
("gpt-5.4-mini", "gpt-5.4-mini", T::OpenAi, C::OpenAiResponses, B::OpenAi, P::OpenAi),
|
||||
("gpt-5.4-pro", "gpt-5.4-pro", T::OpenAi, C::OpenAiResponses, B::OpenAi, P::OpenAi),
|
||||
("gpt-5.5", "gpt-5.5", T::OpenAi, C::OpenAiResponses, B::OpenAi, P::OpenAi),
|
||||
("gpt-5.5-pro", "gpt-5.5-pro", T::OpenAi, C::OpenAiResponses, B::OpenAi, P::OpenAi),
|
||||
("gpt-5.6-luna", "gpt-5.6-luna", T::OpenAi, C::OpenAiResponses, B::OpenAi, P::Gpt56),
|
||||
("gpt-5.6-sol", "gpt-5.6-sol", T::OpenAi, C::OpenAiResponses, B::OpenAi, P::Gpt56),
|
||||
("gpt-5.6-terra", "gpt-5.6-terra", T::OpenAi, C::OpenAiResponses, B::OpenAi, P::Gpt56),
|
||||
("kimi-k2.5", "kimi-k2.5", T::OpenAiCompatible, C::OpenAiCompatible, B::OpenAi, P::Kimi),
|
||||
("kimi-k3", "kimi-k3", T::OpenAiCompatible, C::OpenAiCompatible, B::OpenAi, P::Kimi),
|
||||
("laguna-s-2.1", "poolside/laguna-s-2.1", T::OpenAiCompatible, C::OpenAiCompatible, B::OpenAi, P::OpenAi),
|
||||
("laguna-xs-2.1", "poolside/laguna-xs-2.1", T::OpenAiCompatible, C::OpenAiCompatible, B::OpenAi, P::OpenAi),
|
||||
("mercury-2", "mercury-2", T::OpenAiCompatible, C::OpenAiCompatible, B::OpenAi, P::OpenAi),
|
||||
("minimax-m2.5", "minimax-m2.5", T::OpenAiCompatible, C::OpenAiCompatible, B::OpenAi, P::OpenAi),
|
||||
("venice-uncensored-1-2", "venice-uncensored-1-2", T::OpenAiCompatible, C::OpenAiCompatible, B::OpenAi, P::OpenAi),
|
||||
("venice-uncensored-role-play", "venice-uncensored-role-play", T::OpenAiCompatible, C::OpenAiCompatible, B::OpenAi, P::OpenAi),
|
||||
];
|
||||
|
||||
fn every_builtin_catalog_offering_resolves() {
|
||||
let catalog = Catalog::builtin();
|
||||
|
||||
let mut model_ids: Vec<&str> = catalog
|
||||
.list(None)
|
||||
.iter()
|
||||
.map(|model| model.id.as_str())
|
||||
.collect();
|
||||
model_ids.sort_unstable();
|
||||
let mut expected_ids: Vec<&str> = expected.iter().map(|row| row.0).collect();
|
||||
expected_ids.sort_unstable();
|
||||
assert_eq!(
|
||||
model_ids, expected_ids,
|
||||
"route-equivalence table must cover every built-in model row"
|
||||
);
|
||||
|
||||
for (model_id, deployment_id, transport, codec, billing_policy, agent_profile) in expected {
|
||||
let model = select_from_all(catalog, model_id);
|
||||
let route = resolve_route(catalog, model)
|
||||
.unwrap_or_else(|| panic!("built-in model '{model_id}' should resolve"));
|
||||
assert_eq!(route.deployment_id, *deployment_id, "{model_id}");
|
||||
assert_eq!(route.transport, *transport, "{model_id}");
|
||||
assert_eq!(route.codec, *codec, "{model_id}");
|
||||
assert_eq!(route.billing_policy, *billing_policy, "{model_id}");
|
||||
assert_eq!(route.agent_profile, *agent_profile, "{model_id}");
|
||||
for model in catalog.list(None) {
|
||||
let route = resolve_route(catalog, model).unwrap_or_else(|| {
|
||||
panic!(
|
||||
"built-in offering '{}/{}' should resolve",
|
||||
model.provider, model.id
|
||||
)
|
||||
});
|
||||
assert_eq!(route.provider, model.provider);
|
||||
assert!(!route.deployment_id.is_empty());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2037,17 +2037,20 @@ reasoning = false
|
|||
client
|
||||
}
|
||||
|
||||
/// Live-dispatch counterpart of the adapter_registry route-equivalence
|
||||
/// table: for every built-in model, `resolve_provider` lands on the same
|
||||
/// provider the resolved route names.
|
||||
/// For every built-in model selector, live dispatch and catalog selection
|
||||
/// choose the same provider from the same ready-provider set.
|
||||
#[tokio::test]
|
||||
async fn dispatch_agrees_with_resolve_route_for_every_builtin_model() {
|
||||
let catalog = catalog_with("");
|
||||
let client = client_with_all_catalog_providers(&catalog).await;
|
||||
let ready_providers = catalog.all_provider_ids();
|
||||
|
||||
for model in catalog.list(None) {
|
||||
let route = adapter_registry::resolve_route(&catalog, model)
|
||||
.expect("built-in model should resolve to a route");
|
||||
let selected = catalog
|
||||
.select(model.id.as_str(), None, &ready_providers)
|
||||
.expect("built-in model should be selectable");
|
||||
let route = adapter_registry::resolve_route(&catalog, selected)
|
||||
.expect("selected built-in model should resolve to a route");
|
||||
let mut request = test_request();
|
||||
request.model = model.id.to_string();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,46 +1,212 @@
|
|||
# Model IDs, capabilities, contexts, and prices are from Venice's published
|
||||
# model catalog, verified 2026-08-21:
|
||||
# https://github.com/veniceai/api-docs/blob/59a300b1d036c0c0acc0e5f75c0ab0dd07c40c1c/data/static-models.json
|
||||
|
||||
[providers.venice]
|
||||
display_name = "Venice"
|
||||
adapter = "openai_compatible"
|
||||
base_url = "https://api.venice.ai/api/v1"
|
||||
priority = 35
|
||||
aliases = ["venice-ai"]
|
||||
billing_policy = "openai"
|
||||
|
||||
[providers.venice.auth]
|
||||
credentials = ["env:VENICE_API_KEY", "vault:VENICE_API_KEY"]
|
||||
|
||||
[providers.venice.models."venice-uncensored-1-2"]
|
||||
display_name = "Venice Uncensored 1.2"
|
||||
family = "venice-uncensored"
|
||||
[providers.venice.models."kimi-k3"]
|
||||
display_name = "Kimi K3"
|
||||
family = "kimi-k3"
|
||||
agent_profile = "kimi"
|
||||
aliases = ["kimi"]
|
||||
|
||||
[providers.venice.models."kimi-k3".limits]
|
||||
context_window = 1000000
|
||||
max_output = 131072
|
||||
|
||||
[providers.venice.models."kimi-k3".features]
|
||||
tools = true
|
||||
vision = true
|
||||
reasoning = true
|
||||
reasoning_by_default = true
|
||||
prompt_cache = true
|
||||
sampling_params = false
|
||||
|
||||
[providers.venice.models."kimi-k3".costs]
|
||||
input_cost_per_mtok = 3.75
|
||||
output_cost_per_mtok = 18.75
|
||||
cache_input_cost_per_mtok = 0.375
|
||||
|
||||
[providers.venice.models."kimi-k3-fast"]
|
||||
api_id = "kimi-k3-fast-api"
|
||||
display_name = "Kimi K3 Fast"
|
||||
family = "kimi-k3"
|
||||
agent_profile = "kimi"
|
||||
aliases = ["kimi-fast"]
|
||||
|
||||
[providers.venice.models."kimi-k3-fast".limits]
|
||||
context_window = 1000000
|
||||
max_output = 131072
|
||||
|
||||
[providers.venice.models."kimi-k3-fast".features]
|
||||
tools = true
|
||||
vision = true
|
||||
reasoning = true
|
||||
reasoning_by_default = true
|
||||
prompt_cache = true
|
||||
sampling_params = false
|
||||
|
||||
[providers.venice.models."kimi-k3-fast".costs]
|
||||
input_cost_per_mtok = 4.5
|
||||
output_cost_per_mtok = 22.5
|
||||
cache_input_cost_per_mtok = 0.45
|
||||
|
||||
[providers.venice.models."grok-4.6"]
|
||||
api_id = "grok-4-6"
|
||||
display_name = "Grok 4.6"
|
||||
family = "grok-4"
|
||||
aliases = ["grok", "grok46", "grok-46"]
|
||||
|
||||
[providers.venice.models."grok-4.6".limits]
|
||||
context_window = 500000
|
||||
max_output = 32000
|
||||
|
||||
[providers.venice.models."grok-4.6".features]
|
||||
tools = true
|
||||
vision = true
|
||||
reasoning = true
|
||||
reasoning_effort = "levels"
|
||||
reasoning_by_default = true
|
||||
prompt_cache = true
|
||||
|
||||
[providers.venice.models."grok-4.6".controls]
|
||||
reasoning_effort = ["low", "medium", "high", "xhigh"]
|
||||
|
||||
[providers.venice.models."grok-4.6".costs]
|
||||
input_cost_per_mtok = 2.27
|
||||
output_cost_per_mtok = 6.8
|
||||
cache_input_cost_per_mtok = 0.57
|
||||
|
||||
[providers.venice.models."glm-5.3"]
|
||||
api_id = "z-ai-glm-5-3"
|
||||
display_name = "GLM 5.3"
|
||||
family = "glm-5"
|
||||
aliases = ["glm", "glm5", "glm53", "glm5.3", "glm-5-3"]
|
||||
|
||||
[providers.venice.models."glm-5.3".limits]
|
||||
context_window = 1000000
|
||||
max_output = 131072
|
||||
|
||||
[providers.venice.models."glm-5.3".features]
|
||||
tools = true
|
||||
vision = false
|
||||
reasoning = true
|
||||
reasoning_effort = "levels"
|
||||
reasoning_by_default = true
|
||||
prompt_cache = true
|
||||
|
||||
[providers.venice.models."glm-5.3".controls]
|
||||
reasoning_effort = ["low", "high", "max"]
|
||||
|
||||
[providers.venice.models."glm-5.3".costs]
|
||||
input_cost_per_mtok = 1.75
|
||||
output_cost_per_mtok = 5.5
|
||||
cache_input_cost_per_mtok = 0.325
|
||||
|
||||
[providers.venice.models."deepseek-v4-flash"]
|
||||
api_id = "deepseek-v4-flash-0731"
|
||||
display_name = "DeepSeek V4 Flash"
|
||||
family = "deepseek-v4"
|
||||
agent_profile = "openai"
|
||||
default = true
|
||||
aliases = ["venice-uncensored", "vu"]
|
||||
aliases = ["deepseek-v4", "deepseek", "deepseek-flash"]
|
||||
|
||||
[providers.venice.models."venice-uncensored-1-2".limits]
|
||||
context_window = 128000
|
||||
max_output = 8192
|
||||
[providers.venice.models."deepseek-v4-flash".limits]
|
||||
context_window = 1000000
|
||||
max_output = 32768
|
||||
|
||||
[providers.venice.models."venice-uncensored-1-2".features]
|
||||
[providers.venice.models."deepseek-v4-flash".features]
|
||||
tools = true
|
||||
vision = false
|
||||
reasoning = true
|
||||
reasoning_effort = "levels"
|
||||
reasoning_by_default = true
|
||||
prompt_cache = true
|
||||
sampling_params = false
|
||||
|
||||
[providers.venice.models."deepseek-v4-flash".controls]
|
||||
reasoning_effort = ["low", "high", "max"]
|
||||
|
||||
[providers.venice.models."deepseek-v4-flash".costs]
|
||||
input_cost_per_mtok = 0.175
|
||||
output_cost_per_mtok = 0.35
|
||||
cache_input_cost_per_mtok = 0.035
|
||||
|
||||
[providers.venice.models."deepseek-v4-pro"]
|
||||
api_id = "deepseek-v4-pro-0813"
|
||||
display_name = "DeepSeek V4 Pro"
|
||||
family = "deepseek-v4"
|
||||
agent_profile = "openai"
|
||||
aliases = ["deepseek-pro"]
|
||||
|
||||
[providers.venice.models."deepseek-v4-pro".limits]
|
||||
context_window = 1000000
|
||||
max_output = 32768
|
||||
|
||||
[providers.venice.models."deepseek-v4-pro".features]
|
||||
tools = true
|
||||
vision = false
|
||||
reasoning = true
|
||||
reasoning_by_default = true
|
||||
prompt_cache = true
|
||||
sampling_params = false
|
||||
|
||||
[providers.venice.models."deepseek-v4-pro".costs]
|
||||
input_cost_per_mtok = 1.65
|
||||
output_cost_per_mtok = 4.95
|
||||
cache_input_cost_per_mtok = 0.165
|
||||
|
||||
[providers.venice.models."qwen3.8-max"]
|
||||
api_id = "qwen-3-8-max"
|
||||
display_name = "Qwen 3.8 Max"
|
||||
family = "qwen3"
|
||||
aliases = ["qwen", "qwen-max", "qwen3.8", "qwen-3.8", "qwen38", "qwen-3.8-max", "qwen38-max"]
|
||||
|
||||
[providers.venice.models."qwen3.8-max".limits]
|
||||
context_window = 1000000
|
||||
max_output = 131072
|
||||
|
||||
[providers.venice.models."qwen3.8-max".features]
|
||||
tools = true
|
||||
vision = true
|
||||
reasoning = false
|
||||
reasoning = true
|
||||
reasoning_by_default = true
|
||||
prompt_cache = true
|
||||
|
||||
[providers.venice.models."venice-uncensored-1-2".costs]
|
||||
input_cost_per_mtok = 0.2
|
||||
output_cost_per_mtok = 0.9
|
||||
[providers.venice.models."qwen3.8-max".costs]
|
||||
input_cost_per_mtok = 2.5
|
||||
output_cost_per_mtok = 7.5
|
||||
cache_input_cost_per_mtok = 0.3125
|
||||
|
||||
[providers.venice.models."venice-uncensored-role-play"]
|
||||
display_name = "Venice Uncensored Role Play"
|
||||
family = "venice-uncensored"
|
||||
aliases = ["venice-roleplay", "vrp"]
|
||||
[providers.venice.models."qwen3.8-27b"]
|
||||
api_id = "qwen-3-8-27b"
|
||||
display_name = "Qwen 3.8 27B"
|
||||
family = "qwen3.8"
|
||||
aliases = ["qwen-27b", "qwen-3.8-27b", "qwen38-27b"]
|
||||
|
||||
[providers.venice.models."venice-uncensored-role-play".limits]
|
||||
context_window = 128000
|
||||
max_output = 4096
|
||||
[providers.venice.models."qwen3.8-27b".limits]
|
||||
context_window = 262144
|
||||
max_output = 131072
|
||||
|
||||
[providers.venice.models."venice-uncensored-role-play".features]
|
||||
[providers.venice.models."qwen3.8-27b".features]
|
||||
tools = true
|
||||
vision = true
|
||||
reasoning = false
|
||||
reasoning = true
|
||||
reasoning_effort = "levels"
|
||||
reasoning_by_default = true
|
||||
|
||||
[providers.venice.models."venice-uncensored-role-play".costs]
|
||||
input_cost_per_mtok = 0.5
|
||||
output_cost_per_mtok = 2.0
|
||||
[providers.venice.models."qwen3.8-27b".controls]
|
||||
reasoning_effort = ["low", "medium", "xhigh"]
|
||||
|
||||
[providers.venice.models."qwen3.8-27b".costs]
|
||||
input_cost_per_mtok = 0.45
|
||||
output_cost_per_mtok = 3.2
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue