2525
2626
2727def make_status (
28- total_paper_count : int , relevant_paper_count : int , evidence_count : int , cost : float
28+ total_paper_count : int ,
29+ relevant_paper_count : int ,
30+ evidence_count : int ,
31+ relevant_evidence_count : int ,
32+ cost : float ,
2933) -> str :
3034 return (
3135 f"Status: Paper Count={ total_paper_count } "
32- f" | Relevant Papers={ relevant_paper_count } | Current Evidence={ evidence_count } "
36+ f" | Relevant Papers={ relevant_paper_count } "
37+ f" | Evidence Count={ evidence_count } "
38+ f" | Relevant Evidence={ relevant_evidence_count } "
3339 f" | Current Cost=${ cost :.4f} "
3440 )
3541
@@ -39,7 +45,8 @@ def default_status(state: "EnvironmentState") -> str:
3945 return make_status (
4046 total_paper_count = len (state .docs .docs ),
4147 relevant_paper_count = len ({c .text .doc .dockey for c in relevant_contexts }),
42- evidence_count = len (relevant_contexts ),
48+ evidence_count = len (state .session .contexts ),
49+ relevant_evidence_count = len (relevant_contexts ),
4350 cost = state .session .cost ,
4451 )
4552
@@ -60,9 +67,10 @@ class EnvironmentState(BaseModel):
6067 ),
6168 )
6269
63- # SEE: https://regex101.com/r/RmuVdC/1
70+ # SEE: https://regex101.com/r/RmuVdC/3
6471 STATUS_SEARCH_REGEX_PATTERN : ClassVar [str ] = (
65- r"Status: Paper Count=(\d+) \| Relevant Papers=(\d+) \| Current Evidence=(\d+)"
72+ r"Status: Paper Count=(\d+)\s\|\sRelevant Papers=(\d+)"
73+ r"\s\|\sEvidence Count=(\d+)\s\|\sRelevant Evidence=(\d+)"
6674 )
6775
6876 @computed_field # type: ignore[prop-decorator]
@@ -350,7 +358,7 @@ async def gen_answer(self, state: EnvironmentState) -> str:
350358 # Use to separate answer from status
351359 # NOTE: can match failure to answer or an actual answer
352360 ANSWER_SPLIT_REGEX_PATTERN : ClassVar [str ] = (
353- r" \| " + EnvironmentState .STATUS_SEARCH_REGEX_PATTERN
361+ r"\s\|\s " + EnvironmentState .STATUS_SEARCH_REGEX_PATTERN
354362 )
355363
356364 @classmethod
@@ -359,7 +367,7 @@ def extract_answer_from_message(cls, content: str) -> str:
359367 answer , * rest = re .split (
360368 pattern = cls .ANSWER_SPLIT_REGEX_PATTERN , string = content , maxsplit = 1
361369 )
362- return answer if len (rest ) == 4 else "" # noqa: PLR2004
370+ return answer if len (rest ) == 5 else "" # noqa: PLR2004
363371
364372
365373class Reset (NamedTool ):
@@ -383,7 +391,7 @@ class Complete(NamedTool):
383391
384392 # Use to separate certainty from status
385393 CERTAINTY_SPLIT_REGEX_PATTERN : ClassVar [str ] = (
386- r" \| " + EnvironmentState .STATUS_SEARCH_REGEX_PATTERN
394+ r"\s\|\s " + EnvironmentState .STATUS_SEARCH_REGEX_PATTERN
387395 )
388396
389397 NO_ANSWER_PHRASE : ClassVar [str ] = "No answer generated."
0 commit comments