(
self,
messages: list[dict[str, Any]],
*,
max_output_tokens: int | None = None,
)
| 529 | ) |
| 530 | |
| 531 | async def _complete_text_async( |
| 532 | self, |
| 533 | messages: list[dict[str, Any]], |
| 534 | *, |
| 535 | max_output_tokens: int | None = None, |
| 536 | ) -> str: |
| 537 | original_max_output_tokens = self.config.max_output_tokens |
| 538 | if max_output_tokens is not None: |
| 539 | self.config.max_output_tokens = max_output_tokens |
| 540 | try: |
| 541 | payload = self._build_text_payload(messages) |
| 542 | request_metrics = _request_metrics_from_serialized_input(self._request_metrics_input(payload)) |
| 543 | self._last_request_metrics = dict(request_metrics) |
| 544 | for key, value in request_metrics.items(): |
| 545 | self._cumulative_request_metrics[key] += value |
| 546 | |
| 547 | response_payload = await self._post_with_retries(payload) |
| 548 | |
| 549 | usage_metrics = self._usage_metrics_from_payload(response_payload) |
| 550 | self._last_usage_metrics = dict(usage_metrics) |
| 551 | for key, value in usage_metrics.items(): |
| 552 | self._cumulative_usage_metrics[key] += value |
| 553 | |
| 554 | raw_text = self._extract_text(response_payload) |
| 555 | append_runtime_log( |
| 556 | self._raw_response_log_path(), |
| 557 | source="model", |
| 558 | event="raw_text", |
| 559 | raw_text=raw_text, |
| 560 | ) |
| 561 | return raw_text |
| 562 | finally: |
| 563 | self.config.max_output_tokens = original_max_output_tokens |
| 564 | |
| 565 | def __call__( |
| 566 | self, |
no test coverage detected