fix: address PR review feedback and enable cache telemetry for Volcengine
- Remove Volcengine from reasoning_effort 'off' no-auth group (HIGH) - Add Volcengine to proper reasoning_effort handling (like DeepSeek) - Remove 'deepseek-reasoner' alias from DeepSeek-V4-Flash (MEDIUM) - Separate WanjieArk and Volcengine env vars in CLI (MEDIUM) - Group config keys by provider for readability (MEDIUM) - Use 'codewhale' instead of 'deepseek' in login hints (MEDIUM) - Enable cache_telemetry_supported for Volcengine provider
This commit is contained in:
@@ -114,7 +114,6 @@ impl Default for ModelRegistry {
|
||||
aliases: vec![
|
||||
"deepseek-v4-flash".to_string(),
|
||||
"deepseek-chat".to_string(),
|
||||
"deepseek-reasoner".to_string(),
|
||||
"volcengine-deepseek-v4-flash".to_string(),
|
||||
"ark-deepseek-v4-flash".to_string(),
|
||||
],
|
||||
|
||||
@@ -1452,10 +1452,12 @@ fn build_tui_command(
|
||||
if resolved_runtime.provider == ProviderKind::Atlascloud {
|
||||
cmd.env("ATLASCLOUD_API_KEY", api_key);
|
||||
}
|
||||
if resolved_runtime.provider == ProviderKind::WanjieArk || resolved_runtime.provider == ProviderKind::Volcengine {
|
||||
cmd.env("VOLCENGINE_API_KEY", api_key);
|
||||
if resolved_runtime.provider == ProviderKind::WanjieArk {
|
||||
cmd.env("WANJIE_ARK_API_KEY", api_key);
|
||||
}
|
||||
if resolved_runtime.provider == ProviderKind::Volcengine {
|
||||
cmd.env("VOLCENGINE_API_KEY", api_key);
|
||||
}
|
||||
let source = resolved_runtime
|
||||
.api_key_source
|
||||
.unwrap_or(RuntimeApiKeySource::Env)
|
||||
@@ -1492,10 +1494,12 @@ fn build_tui_command(
|
||||
if resolved_runtime.provider == ProviderKind::Atlascloud {
|
||||
cmd.env("ATLASCLOUD_API_KEY", api_key);
|
||||
}
|
||||
if resolved_runtime.provider == ProviderKind::WanjieArk || resolved_runtime.provider == ProviderKind::Volcengine {
|
||||
cmd.env("VOLCENGINE_API_KEY", api_key);
|
||||
if resolved_runtime.provider == ProviderKind::WanjieArk {
|
||||
cmd.env("WANJIE_ARK_API_KEY", api_key);
|
||||
}
|
||||
if resolved_runtime.provider == ProviderKind::Volcengine {
|
||||
cmd.env("VOLCENGINE_API_KEY", api_key);
|
||||
}
|
||||
cmd.env("DEEPSEEK_API_KEY_SOURCE", "cli");
|
||||
}
|
||||
if let Some(base_url) = cli.base_url.as_ref() {
|
||||
|
||||
+14
-14
@@ -470,10 +470,10 @@ impl ConfigToml {
|
||||
serialize_http_headers(&self.providers.atlascloud.http_headers)
|
||||
}
|
||||
"providers.wanjie_ark.api_key" => self.providers.wanjie_ark.api_key.clone(),
|
||||
"providers.volcengine.api_key" => self.providers.volcengine.api_key.clone(),
|
||||
"providers.wanjie_ark.base_url" => self.providers.wanjie_ark.base_url.clone(),
|
||||
"providers.volcengine.base_url" => self.providers.volcengine.base_url.clone(),
|
||||
"providers.wanjie_ark.model" => self.providers.wanjie_ark.model.clone(),
|
||||
"providers.volcengine.api_key" => self.providers.volcengine.api_key.clone(),
|
||||
"providers.volcengine.base_url" => self.providers.volcengine.base_url.clone(),
|
||||
"providers.volcengine.model" => self.providers.volcengine.model.clone(),
|
||||
"providers.wanjie_ark.http_headers" => {
|
||||
serialize_http_headers(&self.providers.wanjie_ark.http_headers)
|
||||
@@ -588,15 +588,6 @@ impl ConfigToml {
|
||||
"providers.atlascloud.http_headers" => {
|
||||
self.providers.atlascloud.http_headers = parse_http_headers(value)?;
|
||||
}
|
||||
"providers.volcengine.api_key" => {
|
||||
self.providers.volcengine.api_key = Some(value.to_string());
|
||||
}
|
||||
"providers.volcengine.base_url" => {
|
||||
self.providers.volcengine.base_url = Some(value.to_string());
|
||||
}
|
||||
"providers.volcengine.model" => {
|
||||
self.providers.volcengine.model = Some(value.to_string());
|
||||
}
|
||||
"providers.wanjie_ark.api_key" => {
|
||||
self.providers.wanjie_ark.api_key = Some(value.to_string());
|
||||
}
|
||||
@@ -606,6 +597,15 @@ impl ConfigToml {
|
||||
"providers.wanjie_ark.model" => {
|
||||
self.providers.wanjie_ark.model = Some(value.to_string());
|
||||
}
|
||||
"providers.volcengine.api_key" => {
|
||||
self.providers.volcengine.api_key = Some(value.to_string());
|
||||
}
|
||||
"providers.volcengine.base_url" => {
|
||||
self.providers.volcengine.base_url = Some(value.to_string());
|
||||
}
|
||||
"providers.volcengine.model" => {
|
||||
self.providers.volcengine.model = Some(value.to_string());
|
||||
}
|
||||
"providers.wanjie_ark.http_headers" => {
|
||||
self.providers.wanjie_ark.http_headers = parse_http_headers(value)?;
|
||||
}
|
||||
@@ -741,12 +741,12 @@ impl ConfigToml {
|
||||
"providers.atlascloud.base_url" => self.providers.atlascloud.base_url = None,
|
||||
"providers.atlascloud.model" => self.providers.atlascloud.model = None,
|
||||
"providers.atlascloud.http_headers" => self.providers.atlascloud.http_headers.clear(),
|
||||
"providers.volcengine.api_key" => self.providers.volcengine.api_key = None,
|
||||
"providers.volcengine.base_url" => self.providers.volcengine.base_url = None,
|
||||
"providers.volcengine.model" => self.providers.volcengine.model = None,
|
||||
"providers.wanjie_ark.api_key" => self.providers.wanjie_ark.api_key = None,
|
||||
"providers.wanjie_ark.base_url" => self.providers.wanjie_ark.base_url = None,
|
||||
"providers.wanjie_ark.model" => self.providers.wanjie_ark.model = None,
|
||||
"providers.volcengine.api_key" => self.providers.volcengine.api_key = None,
|
||||
"providers.volcengine.base_url" => self.providers.volcengine.base_url = None,
|
||||
"providers.volcengine.model" => self.providers.volcengine.model = None,
|
||||
"providers.wanjie_ark.http_headers" => {
|
||||
self.providers.wanjie_ark.http_headers.clear();
|
||||
}
|
||||
|
||||
@@ -883,7 +883,8 @@ pub(super) fn apply_reasoning_effort(
|
||||
| ApiProvider::DeepseekCN
|
||||
| ApiProvider::Openrouter
|
||||
| ApiProvider::Novita
|
||||
| ApiProvider::Sglang => {
|
||||
| ApiProvider::Sglang
|
||||
| ApiProvider::Volcengine => {
|
||||
body["thinking"] = json!({ "type": "disabled" });
|
||||
}
|
||||
ApiProvider::Fireworks => {}
|
||||
@@ -904,7 +905,6 @@ pub(super) fn apply_reasoning_effort(
|
||||
ApiProvider::Openai
|
||||
| ApiProvider::Atlascloud
|
||||
| ApiProvider::WanjieArk
|
||||
| ApiProvider::Volcengine
|
||||
| ApiProvider::Ollama => {}
|
||||
ApiProvider::NvidiaNim => {
|
||||
body["chat_template_kwargs"] = json!({
|
||||
@@ -914,7 +914,7 @@ pub(super) fn apply_reasoning_effort(
|
||||
},
|
||||
"low" | "minimal" | "medium" | "mid" | "high" | "" => match provider {
|
||||
// DeepSeek compatibility: low/medium both map to high
|
||||
ApiProvider::Deepseek | ApiProvider::DeepseekCN | ApiProvider::Sglang => {
|
||||
ApiProvider::Deepseek | ApiProvider::DeepseekCN | ApiProvider::Sglang | ApiProvider::Volcengine => {
|
||||
body["reasoning_effort"] = json!("high");
|
||||
body["thinking"] = json!({ "type": "enabled" });
|
||||
}
|
||||
@@ -942,7 +942,6 @@ pub(super) fn apply_reasoning_effort(
|
||||
ApiProvider::Openai
|
||||
| ApiProvider::Atlascloud
|
||||
| ApiProvider::WanjieArk
|
||||
| ApiProvider::Volcengine
|
||||
| ApiProvider::Ollama => {}
|
||||
ApiProvider::NvidiaNim => {
|
||||
body["chat_template_kwargs"] = json!({
|
||||
@@ -952,7 +951,7 @@ pub(super) fn apply_reasoning_effort(
|
||||
}
|
||||
},
|
||||
"xhigh" | "max" | "highest" => match provider {
|
||||
ApiProvider::Deepseek | ApiProvider::DeepseekCN | ApiProvider::Sglang => {
|
||||
ApiProvider::Deepseek | ApiProvider::DeepseekCN | ApiProvider::Sglang | ApiProvider::Volcengine => {
|
||||
body["reasoning_effort"] = json!("max");
|
||||
body["thinking"] = json!({ "type": "enabled" });
|
||||
}
|
||||
@@ -972,7 +971,6 @@ pub(super) fn apply_reasoning_effort(
|
||||
ApiProvider::Openai
|
||||
| ApiProvider::Atlascloud
|
||||
| ApiProvider::WanjieArk
|
||||
| ApiProvider::Volcengine
|
||||
| ApiProvider::Ollama => {}
|
||||
ApiProvider::NvidiaNim => {
|
||||
body["chat_template_kwargs"] = json!({
|
||||
|
||||
@@ -305,7 +305,7 @@ pub fn provider_capability(provider: ApiProvider, resolved_model: &str) -> Provi
|
||||
// Cache telemetry: returned only by DeepSeek-native and NVIDIA NIM endpoints.
|
||||
let cache_telemetry_supported = matches!(
|
||||
provider,
|
||||
ApiProvider::Deepseek | ApiProvider::DeepseekCN | ApiProvider::NvidiaNim
|
||||
ApiProvider::Deepseek | ApiProvider::DeepseekCN | ApiProvider::NvidiaNim | ApiProvider::Volcengine
|
||||
);
|
||||
|
||||
// Request payload mode: all current providers use chat completions.
|
||||
|
||||
@@ -1503,7 +1503,7 @@ fn run_setup_status(config: &Config, workspace: &Path) -> Result<()> {
|
||||
("OLLAMA_API_KEY", "codewhale auth set --provider ollama")
|
||||
}
|
||||
crate::config::ApiProvider::Volcengine => {
|
||||
("VOLCENGINE_API_KEY", "deepseek auth set --provider volcengine")
|
||||
("VOLCENGINE_API_KEY", "codewhale auth set --provider volcengine")
|
||||
}
|
||||
crate::config::ApiProvider::Deepseek | crate::config::ApiProvider::DeepseekCN => {
|
||||
("DEEPSEEK_API_KEY", "codewhale auth set --provider deepseek")
|
||||
|
||||
Reference in New Issue
Block a user