This commit is contained in:
parent
ce0bf8dafd
commit
0558ac5c4f
1 changed files with 9 additions and 13 deletions
|
|
@ -62,33 +62,29 @@ pub(crate) async fn review_findings(
|
||||||
show_progress,
|
show_progress,
|
||||||
format!("{REVIEW_EMOJI} Reviewing findings..."),
|
format!("{REVIEW_EMOJI} Reviewing findings..."),
|
||||||
);
|
);
|
||||||
|
|
||||||
let prompt = format!("Topic: {topic}\n\nResearch findings to review:\n{findings}");
|
let prompt = format!("Topic: {topic}\n\nResearch findings to review:\n{findings}");
|
||||||
|
|
||||||
let mut last_error = None;
|
let mut last_error = None;
|
||||||
let mut review = None;
|
let mut extracted_review = None;
|
||||||
|
|
||||||
for attempt in 0..=REVIEW_RETRIES {
|
for attempt in 0..=REVIEW_RETRIES {
|
||||||
match reviewer.prompt_typed::<Review>(prompt.clone()).await {
|
match reviewer.prompt_typed(prompt.clone()).await {
|
||||||
Ok(r) => {
|
Ok(r) => {
|
||||||
review = Some(r);
|
extracted_review = Some(r);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
let suffix = if attempt < REVIEW_RETRIES {
|
tracing::warn!("Attempt {attempt} to extract JSON failed: {e:?}.");
|
||||||
" Retrying..."
|
|
||||||
} else {
|
|
||||||
""
|
|
||||||
};
|
|
||||||
tracing::warn!("Attempt {attempt} to extract JSON failed: {e:?}.{suffix}");
|
|
||||||
last_error = Some(e);
|
last_error = Some(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
drop(spinner);
|
drop(spinner);
|
||||||
|
|
||||||
let review = match review {
|
let review: Review = extracted_review
|
||||||
Some(review) => review,
|
.ok_or_else(|| last_error.expect("loop always sets last_error on failure"))?;
|
||||||
None => return Err(last_error.expect("loop always sets last_error on failure").into()),
|
|
||||||
};
|
|
||||||
|
|
||||||
tracing::info!(approved = review.approved, gaps = %review.gaps, "review complete");
|
tracing::info!(approved = review.approved, gaps = %review.gaps, "review complete");
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue