Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

GPTLiveModel: image input and backend-turn typed input parity with RealtimeModel

Aperta
#7,291 1 commento 1 reazione 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
45/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python

Direzione di ricerca

Start by comparing GPTLiveSession and GPTLiveModel with RealtimeModel's image-input path, then trace how RoomIO's text callback reaches GPTLiveSession._generate_reply. Read the linked Live delegation guide for the documented image and backend-turn inputs. Done means GPTLiveModel provides reliable image submission and an option to route typed text as a backend user turn; verify reconnect behavior and that commentary mode still works.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Feature Type

Would make my life easier

Feature Description

Use case. A voice agent in a live meeting where a participant shares their screen. The agent needs to (a) inspect a screenshot on demand and reason over it in the delegated backend, and (b) accept a typed message from a participant in the same session. GPT-Live's full-duplex voice with a delegated Responses backend is the right shape for this: the voice model stays responsive while the backend handles the screenshot and the task context. The two gaps below are what blocked it. Both are supported by OpenAI's protocol today (see the Live delegation guide); the plugin just has no application path to them.

GPTLiveModel (livekit-plugins-openai 1.8.1, delegation="responses") has no application path for two inputs that RealtimeModel handles natively:

  1. Image input. ImageContent in the chat context is not translated into a Responses backend input item; the renderer reads message text only. OpenAI's Live delegation guide documents this: with a vision-capable backend model the client queues "a supported Responses image input item with response.item.create". Today an app has to upload the file itself and call send_event directly, and because send_event queues locally and the plugin retains its outgoing queue across reconnects, the app cannot know whether the item reached the session it was authored for. Request: push_video / ImageContent support on GPTLiveSession equivalent to RealtimeModel.push_video, or a documented submit_backend_item() that returns a receipt bound to the current connection.

  2. Typed user turns. RoomIO's default text callback calls generate_reply(user_input=...), which GPTLiveSession._generate_reply turns into append_commentary(_ASK_TYPED ...) — an ask to the voice model to talk about the text — rather than a backend user turn. OpenAI's guide documents typed input as exactly this: a response.item.create with a message item, role user, content {"type": "input_text", "text": ...}, followed by response.create "when ready to run or continue the backend". The plugin does not expose that path; it routes typed text to the voice model's commentary instead. Request: an option on GPTLiveModel (e.g. text_input="backend_turn" | "commentary") so apps do not have to reimplement turn admission and idle tracking against private event ordering.

Workarounds / Alternatives

We implemented both seams in-app (~1,100 lines: generation-lease bookkeeping, idle tracking on session.started / response.created / function_call, Files upload with expiry). It works but reimplements plugin-owned state and is fragile across reconnects (APIConnectOptions(max_retry=0) + max_session_duration=None to avoid queue replay). We have paused GPT-Live in our product until the plugin covers these.

Additional Context

Pinned: livekit-agents 1.8.1, livekit-plugins-openai 1.8.1, Python 3.12. Happy to share the fixture that reproduces queued-item replay across a reconnect.

Lingua principale
Python
Stelle
14.6k
Fork
3.9k
Merge medio
2g 6h
PR unite (30g)
153

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di livekit/agents

Tutte le issue di livekit/agents

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.