(self, prompt: str)
| 85 | self._call_count = 0 |
| 86 | |
| 87 | def __call__(self, prompt: str) -> str: |
| 88 | self._call_count += 1 |
| 89 | |
| 90 | if self.simulate_latency: |
| 91 | base = 0.04 if self._call_count == 1 else 0.03 |
| 92 | time.sleep(base + random.uniform(0.005, 0.015)) |
| 93 | |
| 94 | correction_in_prompt = "Correction note:" in prompt |
| 95 | effective_rate = ( |
| 96 | self.failure_rate * 0.35 |
| 97 | if correction_in_prompt |
| 98 | else self.failure_rate |
| 99 | ) |
| 100 | |
| 101 | if random.random() < effective_rate: |
| 102 | return self._bad_response() |
| 103 | return self._good_response(prompt) |
| 104 | |
| 105 | def _good_response(self, prompt: str) -> str: |
| 106 | if "json" in prompt.lower() or "JSON" in prompt: |
nothing calls this directly
no test coverage detected