Strip markdown decoration from model-emitted insight titles
Models wrap the title line despite the prompt — "**Title: A Day in the Woods**", "## Title: ...", bold around just the label — which made parse_title_body's bare "Title:" prefix match fall through to the fallbacks and leak asterisks into the stored title. strip_title_markdown trims bold/italic markers, heading hashes, backticks, and quotes from both ends; applied to the label line, the extracted title, both fallback paths, and generate_photo_title (which previously stripped only quotes). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
efd05db523
commit
3fa4fa8501
2 files changed
+54
-13
No files matched your search
+10
-1
@@ -548,7 +548,16 @@ Capture the key moment or theme. Return ONLY the title, nothing else."#,
|
||||
let title = self
|
||||
.generate_with_images(&prompt, Some(system), None)
|
||||
.await?;
|
||||
Ok(title.trim().trim_matches('"').to_string())
|
||||
// Models decorate despite "Return ONLY the title": quotes, bold
|
||||
// markers, sometimes a "Title:" label.
|
||||
use crate::ai::insight_generator::strip_title_markdown;
|
||||
let cleaned = strip_title_markdown(title.trim());
|
||||
let cleaned = cleaned
|
||||
.strip_prefix("Title:")
|
||||
.or_else(|| cleaned.strip_prefix("title:"))
|
||||
.map(strip_title_markdown)
|
||||
.unwrap_or(cleaned);
|
||||
Ok(cleaned.to_string())
|
||||
}
|
||||
|
||||
/// Generate a summary for a single photo based on its context
|
||||
|
||||
Reference in new issue
Block a user