praval.providers.openai

OpenAI provider implementation for Praval framework.

Provides integration with OpenAI’s Chat Completions API with support for conversation history, tool calling, and streaming responses.

Classes

OpenAIProvider(config)

OpenAI provider for LLM interactions.

class praval.providers.openai.OpenAIProvider(config)[source]

Bases: object

OpenAI provider for LLM interactions.

Handles communication with OpenAI’s GPT models through the Chat Completions API with support for tools and conversation history.

provider_name = 'openai'
capabilities = ProviderCapabilities(text=True, chat_completions=True, responses_api=True, tools=True, streaming=True, native_streaming=True, tool_streaming=True, structured_outputs=True, json_schema_mode='json_schema', multimodal=True, image_input=True, file_input=False, audio_input=False, video_input=False, audio_transcription=True, speech_generation=True, reasoning=True, reasoning_effort=True, reasoning_budget=False, embeddings=True, local=False, server_tools=False, mcp=False, computer_use=False)
__init__(config)[source]

Initialize OpenAI provider.

Parameters:

config – AgentConfig object with provider settings

Raises:

ProviderError – If OpenAI client initialization fails

generate(messages, tools=None, *args, **kwargs)
invoke(request, tools=None)[source]

Invoke OpenAI through the provider-neutral adapter surface.

Return type:

ModelResponse

Parameters:
  • request (ModelRequest)

  • tools (List[Dict[str, Any]] | None)

stream(request, tools=None)[source]

Stream OpenAI responses as provider-neutral events.

Return type:

Iterator[ModelEvent]

Parameters:
  • request (ModelRequest)

  • tools (List[Dict[str, Any]] | None)

transcribe(request)[source]

Transcribe request-based audio through OpenAI’s audio endpoint.

Return type:

AudioResponse

Parameters:

request (TranscriptionRequest)

speak(request)[source]

Synthesize request-based speech through OpenAI’s audio endpoint.

Return type:

AudioResponse

Parameters:

request (SpeechRequest)

close()[source]

Close the underlying SDK client when supported.

Return type:

None

continue_with_tool_results(request, response, tool_results)[source]

Submit runtime-executed client tool results to OpenAI.

Return type:

ModelResponse

Parameters:
resume_tool_flow(suspended_state, tools, hitl_context=None)[source]

Resume an interrupted OpenAI tool-call flow from persisted state.

Return type:

str

Parameters:
  • suspended_state (Dict[str, Any])

  • tools (List[Dict[str, Any]] | None)

  • hitl_context (Dict[str, Any] | None)