litellm/tests/integration/translation/messages/bases/azure.py
Kerry Lu b5ef20e084
test(translation): recapture azure gpt-6-astra content_filters (#46691)
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-15 09:27:01 -07:00

832 lines
37 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from typing import Final
from integration.translation.case import TranslationTestCase
from integration.translation.messages.templates import MESSAGES_BRIDGE_RESPONSE, MESSAGES_REQUEST
from integration.translation.templates.azure import AZURE_RESPONSES_BRIDGE_REQUEST, AZURE_RESPONSES_RESPONSE
from pydantic import JsonValue
GPT_5_4_TEST_CASE: Final = TranslationTestCase(
scenario="basic",
litellm_endpoint="/v1/messages",
litellm_request={
"model": "azure/gpt-5.4",
"max_tokens": 64,
"system": "You are a terse assistant.",
"messages": [{"role": "user", "content": "Say hello."}],
"cache": {"no-cache": True},
},
expected_provider_endpoint="/openai/deployments/gpt-5.4/chat/completions?api-version=2025-04-01-preview",
expected_provider_headers={
"content-type": "application/json",
"api-key": "synthetic-azure-key",
"authorization": "Bearer synthetic-azure-key",
},
expected_provider_request={
"messages": [
{"role": "system", "content": "You are a terse assistant."},
{"role": "user", "content": "Say hello."},
],
"model": "gpt-5.4",
"max_completion_tokens": 64,
},
mock_provider_response={
"choices": [
{
"content_filter_results": {
"hate": {"filtered": False, "severity": "safe"},
"protected_material_code": {"detected": False, "filtered": False},
"protected_material_text": {"detected": False, "filtered": False},
"self_harm": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
},
"finish_reason": "stop",
"index": 0,
"logprobs": None,
"message": {"annotations": [], "content": "Hello.", "refusal": None, "role": "assistant"},
}
],
"created": 1791231864,
"id": "chatcmpl-EVjWSpHSltjjRtiCWAwJpzcB7dyOQ",
"model": "gpt-5.4-2026-03-05",
"object": "chat.completion",
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"hate": {"filtered": False, "severity": "safe"},
"jailbreak": {"detected": False, "filtered": False},
"self_harm": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
},
}
],
"routing": {"serving_pipereplica": "d20260919103649-bf00bd58-default-r2-dp0-default"},
"service_tier": "default",
"system_fingerprint": None,
"usage": {
"completion_tokens": 5,
"completion_tokens_details": {
"accepted_prediction_tokens": 0,
"audio_tokens": 0,
"reasoning_tokens": 0,
"rejected_prediction_tokens": 0,
},
"latency_checkpoint": {
"engine_tbt_ms": 11,
"engine_ttft_ms": 84,
"engine_ttlt_ms": 152,
"pre_inference_ms": 63,
"service_tbt_ms": 12,
"service_ttft_ms": 516,
"service_ttlt_ms": 578,
"user_visible_ttft_ms": 453,
},
"prompt_tokens": 19,
"prompt_tokens_details": {"audio_tokens": 0, "cached_tokens": 0},
"total_tokens": 24,
},
},
expected_litellm_response={
"id": "chatcmpl-EVjWSpHSltjjRtiCWAwJpzcB7dyOQ",
"type": "message",
"role": "assistant",
"model": "azure/gpt-5.4",
"stop_sequence": None,
"usage": {"input_tokens": 19, "output_tokens": 5},
"content": [{"type": "text", "text": "Hello."}],
"stop_reason": "end_turn",
"stop_details": None,
},
)
GPT_5_6_SOL_TEST_CASE: Final = TranslationTestCase(
scenario="basic",
litellm_endpoint="/v1/messages",
litellm_request={
"model": "azure/gpt-5.6-sol",
"max_tokens": 64,
"system": "You are a terse assistant.",
"messages": [{"role": "user", "content": "Say hello."}],
"cache": {"no-cache": True},
},
expected_provider_endpoint="/openai/deployments/gpt-5.6-sol/chat/completions?api-version=2025-04-01-preview",
expected_provider_headers={
"content-type": "application/json",
"api-key": "synthetic-azure-key",
"authorization": "Bearer synthetic-azure-key",
},
expected_provider_request={
"messages": [
{"role": "system", "content": "You are a terse assistant."},
{"role": "user", "content": "Say hello."},
],
"model": "gpt-5.6-sol",
"max_completion_tokens": 64,
},
mock_provider_response={
"choices": [
{
"content_filter_results": {
"hate": {"filtered": False, "severity": "safe"},
"protected_material_code": {"detected": False, "filtered": False},
"protected_material_text": {"detected": False, "filtered": False},
"self_harm": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
},
"finish_reason": "stop",
"index": 0,
"logprobs": None,
"message": {"annotations": [], "content": "Hello.", "refusal": None, "role": "assistant"},
}
],
"created": 1791231865,
"id": "chatcmpl-EVjWTALQyI0QnRBpbPzjE9NvDPIJG",
"model": "gpt-5.6-sol-2026-07-09",
"object": "chat.completion",
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"hate": {"filtered": False, "severity": "safe"},
"jailbreak": {"detected": False, "filtered": False},
"self_harm": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
},
}
],
"routing": {"serving_pipereplica": "d20260930154032-380c3f99-prefill-r9-dp0-prefill"},
"service_tier": "default",
"system_fingerprint": None,
"usage": {
"completion_tokens": 5,
"completion_tokens_details": {
"accepted_prediction_tokens": 0,
"audio_tokens": 0,
"reasoning_tokens": 0,
"rejected_prediction_tokens": 0,
},
"latency_checkpoint": {
"engine_tbt_ms": 7,
"engine_ttft_ms": 144,
"engine_ttlt_ms": 186,
"pre_inference_ms": 66,
"service_tbt_ms": 4,
"service_ttft_ms": 267,
"service_ttlt_ms": 286,
"user_visible_ttft_ms": 201,
},
"prompt_tokens": 19,
"prompt_tokens_details": {"audio_tokens": 0, "cache_write_tokens": 0, "cached_tokens": 0},
"total_tokens": 24,
},
},
expected_litellm_response={
"id": "chatcmpl-EVjWTALQyI0QnRBpbPzjE9NvDPIJG",
"type": "message",
"role": "assistant",
"model": "azure/gpt-5.6-sol",
"stop_sequence": None,
"usage": {"input_tokens": 19, "output_tokens": 5},
"content": [{"type": "text", "text": "Hello."}],
"stop_reason": "end_turn",
"stop_details": None,
},
)
GPT_5_6_LUNA_TEST_CASE: Final = TranslationTestCase(
scenario="basic",
litellm_endpoint="/v1/messages",
litellm_request={
"model": "azure/gpt-5.6-luna",
"max_tokens": 64,
"system": "You are a terse assistant.",
"messages": [{"role": "user", "content": "Say hello."}],
"cache": {"no-cache": True},
},
expected_provider_endpoint="/openai/deployments/gpt-5.6-luna/chat/completions?api-version=2025-04-01-preview",
expected_provider_headers={
"content-type": "application/json",
"api-key": "synthetic-azure-key",
"authorization": "Bearer synthetic-azure-key",
},
expected_provider_request={
"messages": [
{"role": "system", "content": "You are a terse assistant."},
{"role": "user", "content": "Say hello."},
],
"model": "gpt-5.6-luna",
"max_completion_tokens": 64,
},
mock_provider_response={
"choices": [
{
"content_filter_results": {
"hate": {"filtered": False, "severity": "safe"},
"protected_material_code": {"detected": False, "filtered": False},
"protected_material_text": {"detected": False, "filtered": False},
"self_harm": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
},
"finish_reason": "stop",
"index": 0,
"logprobs": None,
"message": {"annotations": [], "content": "Hello!", "refusal": None, "role": "assistant"},
}
],
"created": 1791231867,
"id": "chatcmpl-EVjWVHRXX2btCuzlg1wSnpqkpZFQZ",
"model": "gpt-5.6-luna-2026-07-09",
"object": "chat.completion",
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"hate": {"filtered": False, "severity": "safe"},
"jailbreak": {"detected": False, "filtered": False},
"self_harm": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
},
}
],
"routing": {"serving_pipereplica": "d20260925052750-47dc37a0-prefill-r12-dp0-prefill"},
"service_tier": "default",
"system_fingerprint": None,
"usage": {
"completion_tokens": 5,
"completion_tokens_details": {
"accepted_prediction_tokens": 0,
"audio_tokens": 0,
"reasoning_tokens": 0,
"rejected_prediction_tokens": 0,
},
"latency_checkpoint": {
"engine_tbt_ms": 12,
"engine_ttft_ms": 64,
"engine_ttlt_ms": 138,
"pre_inference_ms": 88,
"service_tbt_ms": 14,
"service_ttft_ms": 248,
"service_ttlt_ms": 317,
"user_visible_ttft_ms": 159,
},
"prompt_tokens": 19,
"prompt_tokens_details": {"audio_tokens": 0, "cache_write_tokens": 0, "cached_tokens": 0},
"total_tokens": 24,
},
},
expected_litellm_response={
"id": "chatcmpl-EVjWVHRXX2btCuzlg1wSnpqkpZFQZ",
"type": "message",
"role": "assistant",
"model": "azure/gpt-5.6-luna",
"stop_sequence": None,
"usage": {"input_tokens": 19, "output_tokens": 5},
"content": [{"type": "text", "text": "Hello!"}],
"stop_reason": "end_turn",
"stop_details": None,
},
)
GPT_6_LUNA_CONTENT_FILTERS: Final[JsonValue] = [
{
"blocked": False,
"source_type": "prompt",
"content_filter_raw": [],
"content_filter_results": {
"hate": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
"self_harm": {"filtered": False, "severity": "safe"},
"jailbreak": {"detected": False, "filtered": False},
},
"content_filter_offsets": {"start_offset": 0, "end_offset": 575, "check_offset": 0},
},
{
"blocked": False,
"source_type": "completion",
"content_filter_raw": [],
"content_filter_results": {
"protected_material_text": {"detected": False, "filtered": False},
"protected_material_code": {"detected": False, "filtered": False},
"hate": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
"self_harm": {"filtered": False, "severity": "safe"},
},
"content_filter_offsets": {"start_offset": 0, "end_offset": 388, "check_offset": 0},
},
]
GPT_6_LUNA_TEST_CASE: Final = TranslationTestCase(
scenario="basic",
litellm_endpoint="/v1/messages",
litellm_request={**MESSAGES_REQUEST, "model": "azure/gpt-6-luna"},
expected_provider_endpoint="/openai/responses?api-version=2025-04-01-preview",
expected_provider_headers={"content-type": "application/json", "api-key": "synthetic-azure-key"},
expected_provider_request={
**AZURE_RESPONSES_BRIDGE_REQUEST,
"model": "gpt-6-luna",
"instructions": MESSAGES_REQUEST["system"],
},
mock_provider_response={
**AZURE_RESPONSES_RESPONSE,
"id": "resp_0534b0c3898d6d1b006ad023ba700c8195b63f1819ab327ab3",
"created_at": 1792025530,
"completed_at": 1792025531,
"content_filters": GPT_6_LUNA_CONTENT_FILTERS,
"instructions": MESSAGES_REQUEST["system"],
"model": "gpt-6-luna",
"output": [
{
"id": "rs_0534b0c3898d6d1b006ad023bb09b8819590793fe299bffdcf",
"type": "reasoning",
"content": [],
"encrypted_content": (
"gAAAAABq0CO7N77UmN8oIxFPRrP2rvE9LuqnrGGHsFzckseHLpNB24KIlg0OKnfemaCgYarrVksxeJBK"
"goiQ79xkF1NR9RI8-82w4OGNB0ViGNYNA7nf5kOqOTrMh1_gHecIN0Evxn8I0meiqOds7h1biKfkiZlm"
"19b-9r_Y2K--KXONVKFEbe8kP54_ka9KCxQ3_5XnL4IRfRS7lsLfoMjORKnapkVSnMjueRVVOprw_897"
"JJypeT61mzzBYM_18T6k68OE70JndMsr4GNRq4c_Lf_rSRoHg7_iFrdHsBdvMfN79dfp_PeLu5MZVRgc"
"ag-qM9aKUAvzhTD2-EutMw1C1ZNabU2S5Qa4RXq2OiU_iZljJI6JhpnJ9jT9g_M3W_0mklmFU2HBhQ6O"
"csIFmPePVcSaQlmofKgvq2ZThSHyFpLsT15ftBL2ZMZ3OWeodDnkfRr2fY5NDM7v7U1TLcAx7xCnP88W"
"03kyb3SuJGSsbPnYTGbNZN7ye3SBJRkCMpRgUfguSYdC46mmMjPdvdkLnTWHZ23GOoDG5A2lffUJZ4WX"
"NgPrMdG2FNThtHT0otHeDC75ahpa6i5xtqIsCGiFRVH_iSxhItArxFXoc7e6oBU9YxsgkUkyXW_zz6h5"
"h5E6DoJz4QckOAdL8E3SwL1nu6ovpS3_QgeiHa5RewKs6WclFCxeiwiyXO6bfjhl_VtOA8KyWqkO-rt4"
"T0RneV_bZHav6KoVanyCX-ZsAYj1WIhn4xEOXh6RdBjZJJB-yDw5cq6zdXkmN1hxs_nmA7hUemHkPclb"
"2lGF41N28IwMpcXq1rx2jrw2XleLnqFVKwgCLysinS9erU2vRN1CmmDQrGl7C5lIOrfSVCpB2W_p3BZW"
"NDKwAfF4i8uXCxy1_5-EjJ08CJXXYVchceOreHYNYxAXhVTHhJArQqVWQgTwJl9e_HhyA0OFZHojB54B"
"jlkMr7QJMm9VE9LIkOJgRgIrtUM2ULIy1tZ-EzuzEy9HYx5NuUKe_12ExKuUVrQmaJ2HRHvj_pPcmSk6"
"lOVrN5VvVBMj_KHd3MfkbUWVeVfzIsgWc149TexK6FPtvHGPxf_VQBdyA4Jl77dPp671wxH7puzy184L"
"V1IMdxq5eY1JG4QdCOluIDkkqbw_qYEiKGNXImGnp9LsXCcYa6JivYmSAw_vgZ5YhO98L49aLEI6nT3H"
"WRWuzY3H39aCkFdA8Y0DttzwXYvhz8UuenFgoGvIk0W7WSOLBxi6pSefdczpRizWLMm10zlrYVFvdMzU"
"PEx7OyDUhSXag61gYcsm6L5mcXGb2cojThdHEXcFZg36bQYjQVJzu_ASlvN-Z9AFNajIIyw8qKx3Q8pR"
"Vg3HCpQcSyRiDhicvT_Gp8d0X7VhoAhG_-LPg4AOz7U985JqP0wB2dB4sYhRgMZpQ29x7wgvgjNtsyqb"
"CA=="
),
"summary": [],
},
{
"id": "msg_0534b0c3898d6d1b006ad023bb52f881958af6ee45425a3b25",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": (
"I need `shop/validation.py` next to see how it handles zero, negative, and "
"non-integer quantities."
),
}
],
"phase": "commentary",
"role": "assistant",
},
{
"id": "fc_0534b0c3898d6d1b006ad023bb83a881958d95537bd9e16f3e",
"type": "function_call",
"status": "completed",
"arguments": '{"path":"shop/validation.py","start_line":1,"end_line":120}',
"call_id": "call_G1yFCqI4OnAJbTANskb1ROdb",
"name": "read_file",
},
],
"usage": {
"input_tokens": 309,
"input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0},
"output_tokens": 114,
"output_tokens_details": {"reasoning_tokens": 50},
"total_tokens": 423,
},
},
expected_litellm_response={
**MESSAGES_BRIDGE_RESPONSE,
"id": "resp_0534b0c3898d6d1b006ad023ba700c8195b63f1819ab327ab3",
"model": "azure/gpt-6-luna",
"usage": {"input_tokens": 309, "output_tokens": 114},
"content": [
{
"type": "text",
"text": (
"I need `shop/validation.py` next to see how it handles zero, negative, and non-integer quantities."
),
},
{
"type": "tool_use",
"id": "call_G1yFCqI4OnAJbTANskb1ROdb",
"name": "read_file",
"input": {"path": "shop/validation.py", "start_line": 1, "end_line": 120},
},
],
},
)
GPT_6_1_SOL_CONTENT_FILTERS: Final[JsonValue] = [
{
"blocked": False,
"source_type": "prompt",
"content_filter_raw": [],
"content_filter_results": {
"hate": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
"self_harm": {"filtered": False, "severity": "safe"},
"jailbreak": {"detected": False, "filtered": False},
},
"content_filter_offsets": {"start_offset": 0, "end_offset": 575, "check_offset": 0},
},
{
"blocked": False,
"source_type": "completion",
"content_filter_raw": [],
"content_filter_results": {
"protected_material_text": {"detected": False, "filtered": False},
"protected_material_code": {"detected": False, "filtered": False},
"hate": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
"self_harm": {"filtered": False, "severity": "safe"},
},
"content_filter_offsets": {"start_offset": 0, "end_offset": 475, "check_offset": 0},
},
]
GPT_6_1_SOL_TEST_CASE: Final = TranslationTestCase(
scenario="basic",
litellm_endpoint="/v1/messages",
litellm_request={**MESSAGES_REQUEST, "model": "azure/gpt-6.1-sol"},
expected_provider_endpoint="/openai/responses?api-version=2025-04-01-preview",
expected_provider_headers={"content-type": "application/json", "api-key": "synthetic-azure-key"},
expected_provider_request={
**AZURE_RESPONSES_BRIDGE_REQUEST,
"model": "gpt-6.1-sol",
"instructions": MESSAGES_REQUEST["system"],
},
mock_provider_response={
**AZURE_RESPONSES_RESPONSE,
"id": "resp_0a4a896afe94ce65006ad023b047248193999d7c3a0c4fec39",
"created_at": 1792025520,
"completed_at": 1792025524,
"content_filters": GPT_6_1_SOL_CONTENT_FILTERS,
"instructions": MESSAGES_REQUEST["system"],
"output": [
{
"id": "rs_0a4a896afe94ce65006ad023b19f8481938d51de793f83feed",
"type": "reasoning",
"content": [],
"encrypted_content": (
"gAAAAABq0CO0QoINZ4oOVkvDvinFAJAMUBmzqqpXLoppdlyP4fFQsNqPOh-L08mQt8yf4OUtOwzk3E6Q"
"7CLHieco0s_tfuYHRlTU0Blr62KF_C77RScOjKYa6p4E2fjdwO44Y2HIiGfIo_GnUpkfwW1EiVZmj6L8"
"PO0biPqihvK3KJ-GNKB_R4-lLyKXrrvVN-985glSdHg-_fRrmyVGBvVxPFyERlD-WPm8fPujqMmXnUcA"
"v3N-wUoIEccd7PfJGqBs52UzllpH27mNCI71C_qbc2nZ97jZgSabTvAZKF8Q9zSJzWA_Gs72iQqd0X55"
"F5vD0-xrMuVdXFTYLV-y-S_1rN8tY1bEbdJWr7Dl84NvNWCYqA5byZgsMxAVyjADWXcVaagrZhNtQ1ol"
"II2oePJL2WyrKrOs4d7ZuGFW5BcFCDS5zxk6MwckKbLkSi3HM34z-AhIOjr6SNc5qcR8yur4Phm9pSJQ"
"qFscqQwtmEgbAzXqC9U5rwQ_c11N7o6Xc2bnoRXxeXQvKyGCPZWOqQr8AffHBCCOmeKjbPMV0ITek7Hy"
"RiOWg_Pjq-_xlVCoUGM7gIq5nq3HG1SqH7Yr6qev5Arq24UALiBbr0NAtmq3p-YGRgia3oDnSrnygIX8"
"AbqhnGrHz1kjBbwGr6fXF2XruSKuL96bQghfWGx6nhsbIDH4FI3akERb6Rh1B9XIWsWw4Zzo6-tg6Dnj"
"zfaJteZqIY4qS5mHSD9stXEVqu_CfnGh7EdOlZlnkG6kIQ3m6oAo2ZG9E58m32X-KEqZDjD4yUgWss9y"
"7cnFbYeEzntQneytoBpaTNXtSEsM1fUoz73Ol7FzqPI0CKIsp3UGje2K7LqAwkV54JrhqCfxkD5HmPJn"
"yEOnP0dODvyqD3CK-cbkoPoszI2Ba0dk11re5kF985he-Fjm7dXDNhQX93__nj4awDCtnX8_Ke5ld7O3"
"sA1ou7WHhgfGo-Jr4ZcGL5JWflPbI9oPpGOOvLsS-e8CUjTcTRb_eA2jApeGU2nAdW42U-CnXeScaR5e"
"JE1RoXTFXIP6MMSpxqpTRWYBfhIDyPEzwTveki-WOWgJtyNJ5W3GJxaEZla2uJ5_cdiD4-HgRy1UwxIJ"
"ODUh0F2hKC6niDVIZqoZ6Z4nb4OUvJP00_nGBA5-IL31Ij8I8U740RAZvnOsMOIsKelsJioM8Ii4MdPi"
"O2FYSdKjijEJmXLDdbYkQEXeqwfKGC7trXBOyRwO5AF6mLR9Yf8Bu_eiKbuf5DT9sw88P4JtfPi5LLIs"
"o2Ki44UnxePraO7vinqg7H7oOi-1gw7BbDaKH7tJs3vUOaxl6mA0BNTg5cDt6TtFZMpFgKNRyanWzSwG"
"WQGYlYbfUGVUnM_tjtgoBNFJAQz1s8fd-qOl1NQDggjlryl6TJk3RSiNYKyJ3fmpE10LM3LUtN3AoFMD"
"FbEEBstDuVg0zzvwe64zaKosn7PIh_Ym-y7QlMdcvUbsqO-T6pfsq8iqEz2anv3yujHkAXIaa3292lbA"
"dFIq80ycQSJbWNd2MtkYQHdWtWmQQoqMX1PdyJGp6N3GG45A4A=="
),
"summary": [],
},
{
"id": "msg_0a4a896afe94ce65006ad023b2cc3081939533c6e664038345",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": (
"I’ll read `shop/validation.py` first to check how it handles zero, negative, and "
"non-integer quantities.\n"
),
}
],
"phase": "commentary",
"role": "assistant",
},
{
"id": "fc_0a4a896afe94ce65006ad023b3229881938388d9bef2b4a8ef",
"type": "function_call",
"status": "completed",
"arguments": '{"path":"shop/validation.py","start_line":1,"end_line":200}',
"call_id": "call_5drWfeHZt2S3rfVa9SYefgB1",
"name": "read_file",
},
],
"usage": {
"input_tokens": 309,
"input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0},
"output_tokens": 137,
"output_tokens_details": {"reasoning_tokens": 72},
"total_tokens": 446,
},
},
expected_litellm_response={
**MESSAGES_BRIDGE_RESPONSE,
"id": "resp_0a4a896afe94ce65006ad023b047248193999d7c3a0c4fec39",
"model": "azure/gpt-6.1-sol",
"usage": {"input_tokens": 309, "output_tokens": 137},
"content": [
{
"type": "text",
"text": (
"I’ll read `shop/validation.py` first to check how it handles zero, negative, and "
"non-integer quantities.\n"
),
},
{
"type": "tool_use",
"id": "call_5drWfeHZt2S3rfVa9SYefgB1",
"name": "read_file",
"input": {"path": "shop/validation.py", "start_line": 1, "end_line": 200},
},
],
},
)
GPT_6_ASTRA_CONTENT_FILTERS: Final[JsonValue] = [
{
"blocked": False,
"source_type": "prompt",
"content_filter_raw": [],
"content_filter_results": {
"hate": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
"self_harm": {"filtered": False, "severity": "safe"},
"jailbreak": {"detected": False, "filtered": False},
},
"content_filter_offsets": {"start_offset": 0, "end_offset": 575, "check_offset": 0},
},
{
"blocked": False,
"source_type": "completion",
"content_filter_raw": [],
"content_filter_results": {
"protected_material_code": {"detected": False, "filtered": False},
"protected_material_text": {"detected": False, "filtered": False},
"hate": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
"self_harm": {"filtered": False, "severity": "safe"},
},
"content_filter_offsets": {"start_offset": 0, "end_offset": 545, "check_offset": 0},
},
]
GPT_6_ASTRA_TEST_CASE: Final = TranslationTestCase(
scenario="basic",
litellm_endpoint="/v1/messages",
litellm_request={**MESSAGES_REQUEST, "model": "azure/gpt-6-astra"},
expected_provider_endpoint="/openai/responses?api-version=2025-04-01-preview",
expected_provider_headers={"content-type": "application/json", "api-key": "synthetic-azure-key"},
expected_provider_request={
**AZURE_RESPONSES_BRIDGE_REQUEST,
"model": "gpt-6-astra",
"instructions": MESSAGES_REQUEST["system"],
},
mock_provider_response={
**AZURE_RESPONSES_RESPONSE,
"id": "resp_019af305501e4822006ad023c3a50881958c4cf40623699cf8",
"created_at": 1792025539,
"completed_at": 1792025543,
"content_filters": GPT_6_ASTRA_CONTENT_FILTERS,
"instructions": MESSAGES_REQUEST["system"],
"model": "gpt-6-astra",
"output": [
{
"id": "rs_019af305501e4822006ad023c49ce4819590da413b9879e06b",
"type": "reasoning",
"content": [],
"encrypted_content": (
"gAAAAABq0CPHdct5jJ3BolLC7QmXutcBsSZ0YzHiI8z2uK07jqwLifVhEROdF12ygdCVRtcrLrHPyHSh"
"pVbh41ULxn2L3SyVYLHbbkFMcwbzfky_kqZdUe_1D-PLxsVyI1KFMPLg0Fb9K-N9u_ElvkFcXXsmAhRQ"
"CcB4SE9TMe_5tKBHiZbqvOI112wig7cc57rDbvM0mEoKyFn3WgprP_ewHeCeP6DSEvVGDEMjUd_TIXAH"
"H7y2Ae3y0WRW7WUag_wAiO7xzAH13mh4S6eKeBTKh62krmYeUH3wETO8BF1WnkuZ_86lS0zWLBzeLJJn"
"JiXKXVquKatJ6HvO3m6FkPF0tBXhdc8YYtTF1B_WBMECARKcw4n3mPL3R6J2jpHe05Eo7W7uZkcY5E-q"
"mE_cqUK8YQXTXx-mR339iuAvqSe0N2Rgl9Ey1l7z0MBATIV0c6J4wRav6Di5aAxEEXkgDVk1jF9LZSHo"
"mcGjh2B2UWFiAZEELRDD7ovpP3c7B05h0QvwazXlZnskJf-xYZEHAl2CNZk0iqagFs6EtNrFguM5W2AH"
"6dsuaGjNGmdWM_kt4JqIUeScZLNgMty8qTOHFzd7tiBpuLkQgcnHzOigWb2vY_8ahy_zfzM2lVL-JQxP"
"9SB7Gq1m49Ln-byC1O_kPyqEFXELhhQ8peXQY5do2R2T-3I0WLOhDhP5rruLsL66vNHAAMjka6WmjI2g"
"oiy-JF_nVCplJd791Wqa3yf7Q7ksfasnSKtjR7-cgTtMcXX7n_5joMnqf4_LsqSq6gHdeKw4VTeT8wGB"
"Uo3MHLkgi8PnAIphdb3PKgifSjstE_oH4_ZbmlyCsHaFYq2aoy-S85ndlrR_PAHBtU8II-Ud_42EPzS-"
"Etdt5d1Qjjri3KTyPjPO7fAm8aPFr1k3GbjwASPMQ7cUs7yLhPmI-TCm5U-zgK1pIALviiU2o4IM7kdH"
"0-Dg1eyyZN8hsFGSHaUB7G_tGB0fj0H0GSztH8ltNjTK_276IOh8Jv5csxjjmlcMOHVBmDCkkE_DlVjv"
"NQtWQS9QBt9jd1gFSzaOhXVkKZJK3vTIaq8JxTvYtgLc8WM5pRHbnQr71TfWB-eLEYgN-aX5PueKkXGr"
"GauDpKkzVJyNZ6mZ_dVXwl1p5IiNNJ1xzhmZK2GVDFWt0nfOBYyxmCDfIxvQL8YAhXXAi1Hrjal82c68"
"lw7UBauyMojDOcbH7EDG9KNbVV-kmkhCW3aH0QCIALzHqO_cukXDqnYX-iVNuxWpW5KUAJdg9cfgwX35"
"O246HxDoSpoIYQ1GooqIWSImYrlNQajPHpJcpxnWeSgKOSYIAYCAr70MouYhUg-lsId7n2pr4gspPf1Z"
"UrBhAG3h4n9qSguKTlpnAYlln_2MzgVVN1cH5sopvgJJLr20HKS1cfu9lB-CHDF5h74z7q3ydZJljn8d"
"QLBqL3csr0ovOZkTjP21rOjPhdsedg4CLKnylgk5nTewbQz99lKxKPhfYK0-XxiDdE6aKvobQUoRupGN"
"Hv-gMLqJjehMUynaC6XzBwJ63pPNhH3AlCj3zSte0Mj1FkPQQIY2PjhMB49CmXBV8Z9YJv0="
),
"summary": [],
},
{
"id": "msg_019af305501e4822006ad023c5f73c819597a30ebb95c43472",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": (
"I’ll read `shop/validation.py` first to check how it handles zero, negative "
"values, and non-integer quantities.\n"
),
}
],
"phase": "commentary",
"role": "assistant",
},
{
"id": "fc_019af305501e4822006ad023c65c408195b9fa8c35e75b1ebd",
"type": "function_call",
"status": "completed",
"arguments": '{"path":"shop/validation.py","start_line":1,"end_line":200}',
"call_id": "call_zAt0ZCuKW07iCDDK2RlX7lAX",
"name": "read_file",
},
],
"usage": {
"input_tokens": 309,
"input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0},
"output_tokens": 138,
"output_tokens_details": {"reasoning_tokens": 72},
"total_tokens": 447,
},
},
expected_litellm_response={
**MESSAGES_BRIDGE_RESPONSE,
"id": "resp_019af305501e4822006ad023c3a50881958c4cf40623699cf8",
"model": "azure/gpt-6-astra",
"usage": {"input_tokens": 309, "output_tokens": 138},
"content": [
{
"type": "text",
"text": (
"I’ll read `shop/validation.py` first to check how it handles zero, negative "
"values, and non-integer quantities.\n"
),
},
{
"type": "tool_use",
"id": "call_zAt0ZCuKW07iCDDK2RlX7lAX",
"name": "read_file",
"input": {"path": "shop/validation.py", "start_line": 1, "end_line": 200},
},
],
},
)
GPT_5_6_TERRA_CONTENT_FILTERS: Final[JsonValue] = [
{
"blocked": False,
"source_type": "prompt",
"content_filter_raw": [],
"content_filter_results": {
"hate": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
"self_harm": {"filtered": False, "severity": "safe"},
"jailbreak": {"detected": False, "filtered": False},
},
"content_filter_offsets": {"start_offset": 0, "end_offset": 575, "check_offset": 0},
},
{
"blocked": False,
"source_type": "completion",
"content_filter_raw": [],
"content_filter_results": {
"protected_material_code": {"detected": False, "filtered": False},
"protected_material_text": {"detected": False, "filtered": False},
"hate": {"filtered": False, "severity": "safe"},
"sexual": {"filtered": False, "severity": "safe"},
"violence": {"filtered": False, "severity": "safe"},
"self_harm": {"filtered": False, "severity": "safe"},
},
"content_filter_offsets": {"start_offset": 0, "end_offset": 313, "check_offset": 0},
},
]
GPT_5_6_TERRA_TEST_CASE: Final = TranslationTestCase(
scenario="basic",
litellm_endpoint="/v1/messages",
litellm_request={**MESSAGES_REQUEST, "model": "azure/gpt-5.6-terra"},
expected_provider_endpoint="/openai/responses?api-version=2025-04-01-preview",
expected_provider_headers={"content-type": "application/json", "api-key": "synthetic-azure-key"},
expected_provider_request={
**AZURE_RESPONSES_BRIDGE_REQUEST,
"model": "gpt-5.6-terra",
"instructions": MESSAGES_REQUEST["system"],
},
mock_provider_response={
**AZURE_RESPONSES_RESPONSE,
"id": "resp_0d178c5d2401a624006ad023cf1c588194ab41d5803ed29401",
"created_at": 1792025551,
"completed_at": 1792025552,
"content_filters": GPT_5_6_TERRA_CONTENT_FILTERS,
"instructions": MESSAGES_REQUEST["system"],
"model": "gpt-5.6-terra",
"output": [
{
"id": "rs_0d178c5d2401a624006ad023cfe304819486bdf040ec55eab7",
"type": "reasoning",
"content": [],
"encrypted_content": (
"gAAAAABq0CPQDJzIdOV-2rO0aGYCUhKcJifPRv4ZkBaIrKZEARo0rk8CqAe8IV0c2kyBwOFe4M70GMM-"
"HrR1L3hIUxan9dcDB5_S7e45yDaxFMiKpbr20izrXNktdwBQfvYOKoMMd07fslVRR-GHOEtz8JvU98v5"
"81sxXgVTxNAWGSl_Kb22g2Fds02t1-1g2hT304vsi1sBxbA6P2b-NFNQ8N3NEfX6FoWi7UF0nH69-Dg3"
"sCMb4dpZ0gGZaZSHwvzXXHESEuiMv1nJSX18tfrFIt29gmw3Mq3sUxZ3eALkPZ54yDUlfYXl6sm2MHXT"
"2xn3l5x6jlG4X8hEqgdfHI76otxmfsXvgtbXCADCes87f00bkWatqWgq27oluRYsY02xDMhtrT4h4C4s"
"PIpV7PA9tdhS6Lo3znsQiOEQvMqnSS3dH1NKnZsAiyjNwVZVZa0opIzI5fpNCGjBmMv_4hB3jBRgenG-"
"Ku75OcwPp6HXMej9McvpLIKtXb8FMKS5wqiZzYBLp-F25hzOHI0QVl0pGFL5ya9mWU4hkQYeu6HuH6Zj"
"Sujzyy-8ZmlBjnRZSQp8mN4t34u2ofk4RtyuZKJkgjJfN2m5MxBTT3AccMalmbiEa7lJv7GV9kLcqR0G"
"T2Rzd6UMX6qPG92VdfjIgCj1Rzh1IWrJvMloKkMj5qB3nN2dABqfCtjBleStNoTjO2VDensXf11ceG9-"
"KKWeCjfrG0ONgTVXPjTTUPHR0BxtoixnRxIYBZFb8sKdYAPI_QINjby2SVhhQH7UtookBf7N7OqmIJKb"
"zR4CLshKnvthH4fJQAZdsfoEPR9I943uBpZi4HnF8mQPF61Aiw9B3bh3USBc9_Oh2rJL044B6qYVD3QK"
"KGydzcplRxQWA31m-4Zn9eVxn-xOtx4Tvpdh6BhlFPKX9p2W0mSnb7kjpzX51Ec0J2AsTNUOonaaMFt8"
"2MJDELTGcAb3tsAkPzzNK0M_zjQ43CCH5Cu1yV2WhbUzxCu4UM0spAIuzpAZv6JGmW1wF4RtAgLfJjc2"
"LxoxcS9MJbLOUPAYdRlwBTj_IL9PIDeNlGVRgVQYL-9xnNKiWD8Iyu2vj8AoslM41wVTEXvOAYyEs25E"
"yo9ia2km8909d42DjFi2_ngA5ofZI89KQHtCzGwfCf_VTLbpMmrOB4NDFVTUYQlAMBvuSsXLXJJp0QPl"
"n2UBHhZ3erIcQ1D990SFRdx1uY47-E2FnCCPljyhJrWHnFxTlGbuEY4i5vPOweqYzj-uBbLVeDbcfjCL"
"jSLFgM4Fa5Zg"
),
"summary": [],
},
{
"id": "msg_0d178c5d2401a624006ad023d011388194a221b5ec1cb6e8bd",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": (
"I need `shop/validation.py` next to verify the current behavior for zero, "
"negative, and non-integer quantities before reviewing the corresponding tests."
),
}
],
"phase": "commentary",
"role": "assistant",
},
{
"id": "fc_0d178c5d2401a624006ad023d04f708194bb3ccd55f7afb1d0",
"type": "function_call",
"status": "completed",
"arguments": '{"path":"shop/validation.py","start_line":1,"end_line":200}',
"call_id": "call_xFsX3SKb9MppLeAL2L0aGZ8J",
"name": "read_file",
},
],
"usage": {
"input_tokens": 309,
"input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0},
"output_tokens": 92,
"output_tokens_details": {"reasoning_tokens": 22},
"total_tokens": 401,
},
},
expected_litellm_response={
**MESSAGES_BRIDGE_RESPONSE,
"id": "resp_0d178c5d2401a624006ad023cf1c588194ab41d5803ed29401",
"model": "azure/gpt-5.6-terra",
"usage": {"input_tokens": 309, "output_tokens": 92},
"content": [
{
"type": "text",
"text": (
"I need `shop/validation.py` next to verify the current behavior for zero, "
"negative, and non-integer quantities before reviewing the corresponding tests."
),
},
{
"type": "tool_use",
"id": "call_xFsX3SKb9MppLeAL2L0aGZ8J",
"name": "read_file",
"input": {"path": "shop/validation.py", "start_line": 1, "end_line": 200},
},
],
},
)