Skip to main content

Overview

OpenAIResponsesLLMService provides chat completion capabilities using OpenAI’s Responses API, supporting streaming text responses, function calling, usage metrics, and out-of-band inference. This service works with the universal LLMContext and LLMContextAggregatorPair.
The Responses API is a newer OpenAI API designed for conversational AI applications. It differs from the Chat Completions API in its request/response structure and streaming format. See OpenAI Responses API documentation for more details.

OpenAI Responses API Reference

Pipecat’s API methods for OpenAI Responses integration

Example Implementation

Interruptible conversation example

OpenAI Documentation

Official OpenAI Responses API documentation

OpenAI Platform

Access models and manage API keys

Installation

To use OpenAI services, install the required dependencies:

Prerequisites

OpenAI Account Setup

Before using OpenAI Responses LLM services, you need:
  1. OpenAI Account: Sign up at OpenAI Platform
  2. API Key: Generate an API key from your account dashboard
  3. Model Selection: Choose from available models (GPT-4.1, GPT-4o, GPT-4o-mini, etc.)
  4. Usage Limits: Set up billing and usage limits as needed

Required Environment Variables

  • OPENAI_API_KEY: Your OpenAI API key for authentication

Configuration

str
default:"None"
OpenAI API key. If None, uses the OPENAI_API_KEY environment variable.
str
default:"None"
Custom base URL for the OpenAI API. Override for proxied or self-hosted deployments.
str
default:"None"
OpenAI organization ID.
str
default:"None"
OpenAI project ID.
Mapping[str, str]
default:"None"
Additional HTTP headers to include in every request.
str
default:"None"
Service tier to use (e.g., “auto”, “flex”, “priority”).
OpenAIResponsesLLMService.Settings
default:"None"
Runtime-configurable model settings. See Settings below.

Settings

Runtime-configurable settings passed via the settings constructor argument using OpenAIResponsesLLMService.Settings(...). These can be updated mid-conversation with LLMUpdateSettingsFrame. See Service Settings for details.
NOT_GIVEN values are omitted from the API request entirely, letting the OpenAI API use its own defaults. This is different from None, which would be sent explicitly.

Usage

Basic Setup

With Custom Settings

Updating Settings at Runtime

Model settings can be changed mid-conversation using LLMUpdateSettingsFrame:

Out-of-Band Inference

Run a one-shot inference without pushing frames through the pipeline:

Notes

  • Responses API vs Chat Completions API: The Responses API has a different request/response structure compared to the Chat Completions API. Use OpenAILLMService for the Chat Completions API and OpenAIResponsesLLMService for the Responses API.
  • Universal LLM Context: This service works with the universal LLMContext and LLMContextAggregatorPair, making it easy to switch between different LLM providers.
  • Function calling: Supports OpenAI’s tool/function calling format. Register function handlers on the pipeline task to handle tool calls automatically.
  • Usage metrics: Automatically tracks token usage, including cached tokens and reasoning tokens.
  • Service tiers: Supports OpenAI’s service tier system for prioritizing requests.

Event Handlers

OpenAIResponsesLLMService supports the following event handlers, inherited from LLMService: