Structured output streaming: no way to see the object while it generates
Los mantenedores suelen responder en 2 días
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
Línea de trabajo
Empieza siguiendo el flujo de eventos de ai.stream() y el estado de salida de Stream; después, inspecciona cómo Agent.run reenvía los eventos del stream del modelo. Se considera terminado cuando se emiten eventos de salida parcial cuando el JSON acumulado se analiza de forma diferente, Stream.partial_output expone la instantánea plain-dict más reciente y stream.output sigue estando validado después de completarse.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
With output_type=<pydantic model>, ai.stream() emits text deltas but the parsed object only exists after the stream ends (stream.output). Consumers rendering progressive results — live forms, tables, status panels — cannot show the object taking shape. The TypeScript AI SDK's streamObject() supports this and it's a common expectation coming from that ecosystem (pydantic-ai streams validated partials as well).
Suggested behavior
Emit a PartialOutput event after each text delta that changes the parse of the accumulated JSON, carrying the best-effort partial as a plain dict, plus a Stream.partial_output property for the latest snapshot.
Design notes:
- partials are deliberately unvalidated dicts — validating incomplete JSON is meaningless;
stream.outputstays the validated contract - parsing uses
json_repairwithstream_stable=Trueso truncated values remain verbatim strings instead of being creatively repaired mid-stream - agent runs forward model stream events unchanged, so this surfaces through
Agent.runfor free
Happy to take this one.
- Lenguaje dominante
- Python
- Estrellas
- 189
- Forks
- 26
- Merge medio
- 1 d 23 h
- PR fusionados (30 d)
- 14
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de vercel-labs/ai-python
-
MCP: get_stdio_tools() fails in documented setupPosiblemente ocupada @dajiaohuang la tomó hace 11 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
vercel-labs/ai-python#310 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
vercel-labs/ai-python#299 ·
Los mantenedores suelen responder en 2 días
-
Tool parameters lose descriptions from Annotated[...] and docstring Args sectionsPosiblemente ocupada @jaygupta17 la tomó hace 41 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
vercel-labs/ai-python#270 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
vercel-labs/ai-python#224 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 2 días
Todos los issues de vercel-labs/ai-python
Issues similares
-
defect from-review v0.9.2
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
khuisman/mcp-gee-sweet#926 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 Menos de una hora Aptitud para principiantes 84/100
EtanHey/brainlayer#1164 ·
Los mantenedores suelen responder en 1 día
-
bug security
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
yunaremaia/vibeguard#141 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
PrismorSec/prismor#599 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
iii-hq/iii#2278 · 1 comentario ·
Los mantenedores suelen responder en 1 día