| 40 | |
| 41 | |
| 42 | class _FakeClassifierClient: |
| 43 | def __init__( |
| 44 | self, |
| 45 | response: str | Exception, |
| 46 | *, |
| 47 | usage: _FakeUsage | None = None, |
| 48 | ) -> None: |
| 49 | self.response = response |
| 50 | self.usage = usage |
| 51 | self.calls: list[dict[str, str]] = [] |
| 52 | |
| 53 | async def classify( |
| 54 | self, |
| 55 | *, |
| 56 | model: str, |
| 57 | system_prompt: str, |
| 58 | request_summary: str, |
| 59 | ) -> ClassifierCompletion: |
| 60 | self.calls.append({ |
| 61 | "model": model, |
| 62 | "system_prompt": system_prompt, |
| 63 | "request_summary": request_summary, |
| 64 | }) |
| 65 | if isinstance(self.response, Exception): |
| 66 | raise self.response |
| 67 | return ClassifierCompletion(content=self.response, usage=self.usage) |
| 68 | |
| 69 | |
| 70 | def _messages_with_prior_assistant_turns(n: int) -> list[dict[str, str]]: |
no outgoing calls