MCPcopy Create free account
hub / github.com/pgadmin-org/pgadmin4 / chat_stream

Method chat_stream

web/pgadmin/llm/providers/openai.py:600–649  ·  view source on GitHub ↗

Stream a chat response from OpenAI.

(
        self,
        messages: list[Message],
        tools: Optional[list[Tool]] = None,
        system_prompt: Optional[str] = None,
        max_tokens: int = 4096,
        temperature: float = 0.0,
        **kwargs
    )

Source from the content-addressed store, hash-verified

598 )
599
600 def chat_stream(
601 self,
602 messages: list[Message],
603 tools: Optional[list[Tool]] = None,
604 system_prompt: Optional[str] = None,
605 max_tokens: int = 4096,
606 temperature: float = 0.0,
607 **kwargs
608 ) -> Generator[Union[str, LLMResponse], None, None]:
609 """Stream a chat response from OpenAI."""
610 if self._use_responses_api:
611 payload = self._build_responses_payload(
612 messages, tools, system_prompt, max_tokens
613 )
614 payload['stream'] = True
615 try:
616 yield from self._process_stream(payload)
617 except LLMClientError:
618 raise
619 except Exception as e:
620 raise LLMClientError(LLMError(
621 message=f"Streaming request failed: {e!s}",
622 provider=self.provider_name
623 )) from e
624 return
625
626 # Try Chat Completions API first
627 payload = self._build_chat_payload(
628 messages, tools, system_prompt, max_tokens
629 )
630 payload['stream'] = True
631 payload['stream_options'] = {'include_usage': True}
632
633 try:
634 yield from self._process_stream(payload)
635 except LLMClientError as e:
636 if self._should_use_responses_api(e):
637 self._use_responses_api = True
638 payload = self._build_responses_payload(
639 messages, tools, system_prompt, max_tokens
640 )
641 payload['stream'] = True
642 yield from self._process_stream(payload)
643 else:
644 raise
645 except Exception as e:
646 raise LLMClientError(LLMError(
647 message=f"Streaming request failed: {e!s}",
648 provider=self.provider_name
649 )) from e
650
651 def _process_stream(
652 self, payload: dict

Callers

nothing calls this directly

Calls 6

_process_streamMethod · 0.95
_build_chat_payloadMethod · 0.95
LLMClientErrorClass · 0.90
LLMErrorClass · 0.90

Tested by

no test coverage detected