Pipecat's OpenAI LLM page documents OpenAILLMService for chat completions. The settings table default for model is gpt-4.1. GPT-6 tool calls that OpenAI rejects on Chat Completions need OpenAIResponsesLLMService or OpenAIResponsesHttpLLMService, which are the Responses API classes.
Last reviewed . Publisher: SunsetDiff.
Steps
See which class you construct. OpenAILLMService is Chat Completions. OpenAIResponsesLLMService and OpenAIResponsesHttpLLMService are the Responses API.
Read settings.model. The model id lives in Settings(model=...). The old model= constructor argument is deprecated.
Swap a retiring id. Put the official replacement in settings.model. The default string gpt-4.1 is an alias. Check the dated rows in the table.
Move tool calls. A pipeline that still constructs OpenAILLMService is still on Chat Completions.
Check the id. Check the id with lookup JSON, the MCP check_model tool, or a status badge before you ship the new string.
Where the model id lives
The OpenAI LLM page says OpenAILLMService provides chat completion. The settings table lists model as a string whose default is gpt-4.1. The basic setup example passes settings=OpenAILLMService.Settings(model="gpt-4o"). A later example uses model="gpt-4.1".
The constructor argument named model is marked deprecated since 0.0.105 and removed in 2.0.0. The page says to use settings=OpenAILLMService.Settings(...) instead.
If the API key argument is omitted, the page says the service uses the OPENAI_API_KEY environment variable. This page does not show a key.
Chat Completions, default id from the settings table
from pipecat.services.openai.llm import OpenAILLMService
llm = OpenAILLMService(
settings=OpenAILLMService.Settings(model="gpt-4.1"),
)
Change the string in Settings(model=...). That is the OpenAI model id. The page does not document a router alias or a fallback list.
The documented default is the short id gpt-4.1. The shutdown table lists dated snapshot ids. Read the alias sentence under the table before you treat gpt-4.1 itself as shut down. If a dated row is the id you send, swap that string for the official replacement on the row.
The Responses page says to use OpenAILLMService for the Chat Completions API and OpenAIResponsesLLMService or OpenAIResponsesHttpLLMService for the Responses API. Both Responses classes take settings.model. Their settings table also defaults model to gpt-4.1.
Both the chat page and the Responses page say function calling is registered with register_function. The Responses page says the WebSocket variant is the one to use when the workflow involves frequent tool calls.
OpenAI's Using GPT-6 guide says GPT-6 Astra and GPT-6.1 Sol tool calling requires the Responses API. A pipeline that still constructs OpenAILLMService is still on Chat Completions, which is the endpoint that guide says cannot run those function tools. GPT-6 Sol and GPT-6 Luna are the models that guide allows on Chat Completions only with reasoning effort none. The error pages record the failure text.
Responses service, from the Pipecat Responses page
from pipecat.services.openai.responses.llm import OpenAIResponsesLLMService
llm = OpenAIResponsesLLMService(
settings=OpenAIResponsesLLMService.Settings(model="gpt-4.1"),
)
gpt-4.1-2025-04-14, gpt-4.1-mini-2025-04-14, gpt-4o-2024-08-06, gpt-4o-2024-11-20, and gpt-4o-mini-2024-07-18 shut down on 2027-01-14. The official replacement on these rows is gpt-6-luna.
gpt-4.1, gpt-4.1-mini, gpt-4o, and gpt-4o-mini have no shutdown date on their own records. A request that sends the short id is not the dated snapshot row. Open the model page before you treat the short id as shut down.
Rows are upcoming OpenAI chat models in the gpt-4o, gpt-4.1, gpt-4-turbo, gpt-4, and gpt-3.5-turbo families.
Audio, realtime, transcribe, and search ids are not in this table.
The same id on another platform is in the other-platforms column.
The full calendar is upcoming shutdowns.
Provider wording for the shutdown day is on what happens on shutdown day.
5 upcoming OpenAI chat shutdowns from this dataset.
Why do Pipecat GPT-6 tool calls fail on the default OpenAI service?
OpenAILLMService is the Chat Completions service. The OpenAI LLM page says so, and its default model string is gpt-4.1. OpenAI's Using GPT-6 guide says GPT-6 Astra and GPT-6.1 Sol tool calling requires the Responses API. Use OpenAIResponsesLLMService or OpenAIResponsesHttpLLMService.
Where is the Pipecat model id if the constructor has no model argument?
In settings, as OpenAILLMService.Settings(model=...). The page says the old model= constructor argument is deprecated since 0.0.105 and removed in 2.0.0.
Where do the dates in the shutdown table come from?
From SunsetDiff model records for upcoming OpenAI chat ids in the gpt-4o, gpt-4.1, gpt-4-turbo, gpt-4, and gpt-3.5-turbo families. The sentence above the table is built from those records when the site is built. Each row links the provider source stored on that record.