修复bug

This commit is contained in:
2026-05-26 16:30:28 +08:00
parent 1063369d96
commit a08bc809bb
3 changed files with 44 additions and 7 deletions

View File

@@ -242,8 +242,21 @@ impl DeepSeekClient {
result.choices result.choices
.into_iter() .into_iter()
.next() .next()
.map(|c| c.message.content.trim().to_string()) .map(|c| {
.ok_or_else(|| anyhow::anyhow!("No response from DeepSeek")) let content = c.message.content.trim().to_string();
if content.is_empty() {
c.reasoning_content
.map(|r| r.trim().to_string())
.unwrap_or_default()
} else {
content
}
})
.filter(|s| !s.is_empty())
.ok_or_else(|| anyhow::anyhow!(
"No response from DeepSeek. \
If thinking mode is enabled, try disabling it or ensure the model supports it."
))
} }
} }

View File

@@ -242,8 +242,21 @@ impl KimiClient {
result.choices result.choices
.into_iter() .into_iter()
.next() .next()
.map(|c| c.message.content.trim().to_string()) .map(|c| {
.ok_or_else(|| anyhow::anyhow!("No response from Kimi")) let content = c.message.content.trim().to_string();
if content.is_empty() {
c.reasoning_content
.map(|r| r.trim().to_string())
.unwrap_or_default()
} else {
content
}
})
.filter(|s| !s.is_empty())
.ok_or_else(|| anyhow::anyhow!(
"No response from Kimi. \
If thinking mode is enabled, try disabling it or ensure the model supports it."
))
} }
} }

View File

@@ -211,10 +211,21 @@ impl LlmClient {
/// Parse commit response from LLM /// Parse commit response from LLM
fn parse_commit_response(&self, response: &str, format: crate::config::CommitFormat) -> Result<GeneratedCommit> { fn parse_commit_response(&self, response: &str, format: crate::config::CommitFormat) -> Result<GeneratedCommit> {
let lines: Vec<&str> = response.lines().collect(); let lines: Vec<&str> = response.lines()
.map(|l| l.trim())
.filter(|l| !l.is_empty())
.collect();
if lines.is_empty() { if lines.is_empty() {
bail!("Empty response from LLM"); let preview: String = response.chars().take(200).collect();
bail!(
"LLM returned empty or whitespace-only response. \
Raw response preview: '{}'. \
Hint: If using DeepSeek/Kimi with thinking enabled, \
the model may have returned reasoning_content only. \
Try disabling thinking mode or switching models.",
preview
);
} }
let first_line = lines[0]; let first_line = lines[0];