Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

docs: openai.LLM vs openai.responses.LLM for HTTP OpenAI-compat hosts

Open Beginner friendly
#7,022 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@AbarnaaSree is already working on this.

Since Aug 29, 2026.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Quiet
Tech stack
python, typescript
Domain
documentation

Research direction

Start with the OpenAI-compatible LLM docs at https://docs.livekit.io/agents/models/llm/openai-compatible-llms/ and compare the existing custom base_url guidance with the Chat Completions and Responses helpers. Clarify that generic HTTP OpenAI-compatible hosts should use openai.LLM(), while openai.responses.LLM() is WebSocket-oriented; the existing Python and Node examples show the relevant constructors. Done when readers can tell which class to choose without mistaking HTTP /v1/responses for the LiveKit Responses WebSocket path.

Written by the indexing model from the issue text.

Description

Feature Type

Would make my life easier

Feature Description

LiveKit docs already cover custom base_url on openai.LLM() (Chat Completions). The trap is using openai.responses.LLM() against a host that only speaks HTTP Chat Completions / HTTP POST /v1/responses. The Responses helper is WebSocket-oriented and is the wrong class for a generic OpenAI-compat inference API.

PZERO is a live Chat Completions host (POST /v1/chat/completions). Public catalog: GET https://api.pzero.studio/v1/models. Default text id: deepseek-v4-flash. Prepaid Bearer key (pzero_…). Use chat openai.LLM(), not openai.responses.LLM(). Do not point STT or TTS at this host.

from livekit.plugins import openai

llm = openai.LLM(
    model="deepseek-v4-flash",
    base_url="https://api.pzero.studio/v1",
    api_key="pzero_…",
)

Node:

import * as openai from '@livekit/agents-plugin-openai';

const llm = new openai.LLM({
  model: 'deepseek-v4-flash',
  baseURL: 'https://api.pzero.studio/v1',
  apiKey: 'pzero_…',
});

Docs: https://docs.livekit.io/agents/models/llm/openai-compatible-llms/

No first-party with_pzero() helper asked.

Workarounds / Alternatives

The generic openai.LLM({ base_url }) constructor already works. This issue is the class-choice gotcha vs openai.responses.LLM().

Additional Context

PZERO POST /v1/responses exists over HTTP (401 without a key, not 404). That is not the LiveKit Responses WebSocket path.

Dominant language
Python
Stars
14.6k
Forks
3.9k
Avg merge
3d 9h
Merged PRs (30d)
159

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from livekit/agents

All issues in livekit/agents

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.