Problem with proxy and streaming
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
- Área
- networking
Línea de trabajo
Comienza con la configuración proporcionada de AsyncClient y ejecuta el ejemplo con y sin proxy="http://localhost:8080" y verify=False. Compara cuándo están disponibles los chunks transmitidos y, después, rastrea los puntos de entrada de proxy y streaming implicados. Se considera terminado cuando la configuración indicada conserva el streaming incremental y el comportamiento se ha verificado frente al caso sin proxy.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Originally opened by
@markowangaon 2024-02-13 01:54:52 in encode/httpx
I try to process streaming (return customer in chat). I need to use proxy. I have problem that response does not streaming when using proxy (all responses returned after all processed, no effect of writing text)
import asyncio
from typing import Optional
from httpx import AsyncClient
from openai import AsyncStream, AsyncOpenAI
from openai.types.chat import ChatCompletionChunk
async def get_openai_stream_agenerator() -> AsyncStream[ChatCompletionChunk]:
client = AsyncOpenAI(
http_client=AsyncClient(
# when I comment these two lines streaming is ok
proxy="http://localhost:8080", # I'm using mitmproxy with basic configuration
verify=False,
)
)
messages = [
{"role": "system", "content": "Return details about asking person"},
{"role": "user", "content": "Iga Świątek"},
]
response: AsyncStream[ChatCompletionChunk] = await client.chat.completions.create(
model='gpt-4-0613',
messages=messages,
stream=True,
) # type: ignore
return response
def get_delta_argument(chunk: ChatCompletionChunk) -> Optional[str]:
if len(chunk.choices) > 0:
return chunk.dict()['choices'][0]['delta']['content']
else:
return None
async def get_response_generator() -> None:
async for it in await get_openai_stream_agenerator():
value = get_delta_argument(it)
if value:
print(value, end="")
print()
if __name__ == '__main__':
asyncio.run(get_response_generator())
OS: macOS
Python version: Python v3.11.7
Library version: openai 1.12.0, httpx 0.26.0
- Lenguaje dominante
- Python
- Estrellas
- 1.6k
- Forks
- 103
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 25
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una 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 pydantic/httpx2
-
Please revert aiter_bytes signature to AsyncIteratorQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
pydantic/httpx2#1158 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Export AutoBackendQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
pydantic/httpx2#1131 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Mention header name error message for invalid header encodingsQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
pydantic/httpx2#864 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Support DigestAuth with "x-www-authenticate" in first response headerPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
Todos los issues de pydantic/httpx2
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
OCA/account-invoicing#2529 ·
Los mantenedores suelen responder en 1 día
-
area/ci
Dificultad 1/5 Menos de una hora Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
ImageGen generate-batch aborts valid JSONL jobs containing a Unicode line separator in poster textAbiertobug imagen skills
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Email validation accepts a trailing newlinePosiblemente ocupada @marcello-pichini la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día