mirror of
https://github.com/tiennm99/litellm.git
synced 2026-08-01 18:22:53 +00:00
* fix(tests): drop deprecated OpenAI-Beta realtime header OpenAI deprecated the 'OpenAI-Beta: realtime=v1' header; the live service now returns code 4000 invalid_beta with "Unknown beta requested: 'realtime'.". Two integration tests in tests/llm_translation/realtime/test_realtime_guardrails_openai.py hardcoded the header and started failing across all PRs. Library code is unaffected: the OpenAI realtime handler only forwards 'OpenAI-Beta: realtime=v1' upstream when the proxy *client* sends it (litellm/llms/openai/realtime/handler.py). Default proxy behavior uses the GA protocol. Connect to OpenAI without the deprecated header, and accept the GA event name 'response.output_audio_transcript.delta' alongside the beta-protocol name 'response.audio_transcript.delta' for the transcript-delta assertion. Co-authored-by: Mateo Wang <mateo-berri@users.noreply.github.com> * fix(logging): post_call tolerates non-JSON-serializable values post_call() did json.dumps(original_response) without default=str, so any provider passing a dict containing datetime/Decimal/etc. would raise TypeError. Bedrock batch retrieval hits this with get_model_invocation_job() responses that include datetime fields (submitTime, lastModifiedTime, endTime), failing tests/batches_tests/test_bedrock_files_and_batches.py::test_async_file_and_batch across all PRs. Pass default=str so non-serializable values fall back to str(). Co-authored-by: Mateo Wang <mateo-berri@users.noreply.github.com> * fix(tests): mock boto3 in bedrock retrieve batch test The test patched AsyncHTTPHandler.get, but the bedrock retrieve handler uses boto3.client('bedrock').get_model_invocation_job directly, so the real AWS call was being made on every run, failing with AccessDeniedException because the hardcoded test ARN belongs to a different AWS account. - Mock boto3.client and BedrockBatchesConfig.get_credentials so the test never touches AWS. - Use status=Completed in the mock response so output_file_id is populated (the handler intentionally leaves it None for non-completed jobs). - Assert the predicted per-job output object URI (matches what the handler actually returns) instead of the bare output prefix. Co-authored-by: Mateo Wang <mateo-berri@users.noreply.github.com> * docs(tests): include GA event name in guardrail-block test docstring Co-authored-by: Mateo Wang <mateo-berri@users.noreply.github.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Mateo Wang <mateo-berri@users.noreply.github.com>