Skip to content

Commit 1693211

Browse files
committed
[opentelemetry-instrumentation-genai-anthropic] Add beta raw-response and tool-calling conformance scenarios
Adds InferenceBetaRawResponseScenario, InferenceBetaRawResponseStreamingScenario, and ToolCallingBetaScenario, closing the beta.messages coverage gap against the existing non-beta conformance scenarios. InferenceBetaStreamingScenario moves out of inference_beta.py into its own inference_streaming_beta.py, matching the inference.py/inference_streaming.py split already used for the non-beta scenarios
1 parent c22b050 commit 1693211

9 files changed

Lines changed: 895 additions & 63 deletions
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
interactions:
2+
- request:
3+
body: |-
4+
{
5+
"max_tokens": 100,
6+
"messages": [
7+
{
8+
"role": "user",
9+
"content": "Say hello in one word."
10+
}
11+
],
12+
"model": "claude-sonnet-4-6",
13+
"stream": true
14+
}
15+
headers:
16+
accept:
17+
- application/json
18+
accept-encoding:
19+
- gzip, deflate, zstd
20+
anthropic-version:
21+
- '2023-06-01'
22+
connection:
23+
- keep-alive
24+
content-length:
25+
- '124'
26+
content-type:
27+
- application/json
28+
host:
29+
- api.anthropic.com
30+
user-agent:
31+
- Anthropic/Python 1.7.0
32+
x-api-key:
33+
- test_anthropic_api_key
34+
x-stainless-arch:
35+
- arm64
36+
x-stainless-async:
37+
- 'false'
38+
x-stainless-lang:
39+
- python
40+
x-stainless-os:
41+
- MacOS
42+
x-stainless-package-version:
43+
- 1.7.0
44+
x-stainless-read-timeout:
45+
- '600'
46+
x-stainless-retry-count:
47+
- '0'
48+
x-stainless-runtime:
49+
- CPython
50+
x-stainless-runtime-version:
51+
- 3.14.6
52+
x-stainless-timeout:
53+
- NOT_GIVEN
54+
method: POST
55+
uri: https://api.anthropic.com/v1/messages?beta=true
56+
response:
57+
body:
58+
string: |+
59+
event: message_start
60+
data: {"type":"message_start","message":{"model":"claude-sonnet-4-6","id":"msg_011CfLorRvMwxYsZHeQrxia9","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":13,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":2,"service_tier":"standard","inference_geo":"global"}} }
61+
62+
event: content_block_start
63+
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} }
64+
65+
event: ping
66+
data: {"type": "ping"}
67+
68+
event: content_block_delta
69+
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Hello!"} }
70+
71+
event: content_block_stop
72+
data: {"type":"content_block_stop","index":0 }
73+
74+
event: message_delta
75+
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":13,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":5} }
76+
77+
event: message_stop
78+
data: {"type":"message_stop" }
79+
80+
headers:
81+
anthropic-ratelimit-input-tokens-limit:
82+
- '10000000'
83+
anthropic-ratelimit-input-tokens-remaining:
84+
- '10000000'
85+
anthropic-ratelimit-input-tokens-reset:
86+
- '2026-09-23T18:01:07Z'
87+
anthropic-ratelimit-output-tokens-limit:
88+
- '2000000'
89+
anthropic-ratelimit-output-tokens-remaining:
90+
- '2000000'
91+
anthropic-ratelimit-output-tokens-reset:
92+
- '2026-09-23T18:01:07Z'
93+
anthropic-ratelimit-requests-limit:
94+
- '10000'
95+
anthropic-ratelimit-requests-remaining:
96+
- '9999'
97+
anthropic-ratelimit-requests-reset:
98+
- '2026-09-23T18:01:07Z'
99+
anthropic-ratelimit-tokens-limit:
100+
- '12000000'
101+
anthropic-ratelimit-tokens-remaining:
102+
- '12000000'
103+
anthropic-ratelimit-tokens-reset:
104+
- '2026-09-23T18:01:07Z'
105+
anthropic-workspace-id:
106+
- wrkspc_01L3gbfA51adEVPjSGsx8zHV
107+
cache-control:
108+
- no-cache
109+
cf-cache-status:
110+
- DYNAMIC
111+
cf-ray:
112+
- a3fb73e8af15c882-EWR
113+
connection:
114+
- keep-alive
115+
content-length:
116+
- '1204'
117+
content-security-policy:
118+
- default-src 'none'; frame-ancestors 'none'
119+
content-type:
120+
- text/event-stream; charset=utf-8
121+
date:
122+
- Wed, 23 Sep 2026 18:01:07 GMT
123+
request-id:
124+
- req_011CfLorQgwoQT6Wm3tPQyUj
125+
server:
126+
- cloudflare
127+
strict-transport-security:
128+
- max-age=31536000; includeSubDomains; preload
129+
traceresponse:
130+
- 00-73e46d908d7ebeb260387bf9aef405bd-e1adaf0c167b5572-01
131+
transfer-encoding:
132+
- chunked
133+
vary:
134+
- Accept-Encoding
135+
x-robots-tag:
136+
- none
137+
status:
138+
code: 200
139+
message: OK
140+
version: 1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
interactions:
2+
- request:
3+
body: |-
4+
{
5+
"max_tokens": 100,
6+
"messages": [
7+
{
8+
"role": "user",
9+
"content": "Say hello in one word."
10+
}
11+
],
12+
"model": "claude-sonnet-4-6",
13+
"stream": true
14+
}
15+
headers:
16+
accept:
17+
- application/json
18+
accept-encoding:
19+
- gzip, deflate, zstd
20+
anthropic-version:
21+
- '2023-06-01'
22+
connection:
23+
- keep-alive
24+
content-length:
25+
- '124'
26+
content-type:
27+
- application/json
28+
host:
29+
- api.anthropic.com
30+
user-agent:
31+
- Anthropic/Python 1.7.0
32+
x-api-key:
33+
- test_anthropic_api_key
34+
x-stainless-arch:
35+
- arm64
36+
x-stainless-async:
37+
- 'false'
38+
x-stainless-lang:
39+
- python
40+
x-stainless-os:
41+
- MacOS
42+
x-stainless-package-version:
43+
- 1.7.0
44+
x-stainless-raw-response:
45+
- raw
46+
x-stainless-read-timeout:
47+
- '600'
48+
x-stainless-retry-count:
49+
- '0'
50+
x-stainless-runtime:
51+
- CPython
52+
x-stainless-runtime-version:
53+
- 3.14.6
54+
x-stainless-timeout:
55+
- NOT_GIVEN
56+
method: POST
57+
uri: https://api.anthropic.com/v1/messages
58+
response:
59+
body:
60+
string: |+
61+
event: message_start
62+
data: {"type":"message_start","message":{"model":"claude-sonnet-4-6","id":"msg_011CfLotfBPksyuad5TcZ8u9","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":13,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":2,"service_tier":"standard","inference_geo":"global"}} }
63+
64+
event: content_block_start
65+
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} }
66+
67+
event: ping
68+
data: {"type": "ping"}
69+
70+
event: content_block_delta
71+
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Hello!"} }
72+
73+
event: content_block_stop
74+
data: {"type":"content_block_stop","index":0 }
75+
76+
event: message_delta
77+
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":13,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":5} }
78+
79+
event: message_stop
80+
data: {"type":"message_stop" }
81+
82+
headers:
83+
anthropic-ratelimit-input-tokens-limit:
84+
- '10000000'
85+
anthropic-ratelimit-input-tokens-remaining:
86+
- '10000000'
87+
anthropic-ratelimit-input-tokens-reset:
88+
- '2026-09-23T18:01:37Z'
89+
anthropic-ratelimit-output-tokens-limit:
90+
- '2000000'
91+
anthropic-ratelimit-output-tokens-remaining:
92+
- '2000000'
93+
anthropic-ratelimit-output-tokens-reset:
94+
- '2026-09-23T18:01:37Z'
95+
anthropic-ratelimit-requests-limit:
96+
- '10000'
97+
anthropic-ratelimit-requests-remaining:
98+
- '9999'
99+
anthropic-ratelimit-requests-reset:
100+
- '2026-09-23T18:01:37Z'
101+
anthropic-ratelimit-tokens-limit:
102+
- '12000000'
103+
anthropic-ratelimit-tokens-remaining:
104+
- '12000000'
105+
anthropic-ratelimit-tokens-reset:
106+
- '2026-09-23T18:01:37Z'
107+
anthropic-workspace-id:
108+
- wrkspc_01L3gbfA51adEVPjSGsx8zHV
109+
cache-control:
110+
- no-cache
111+
cf-cache-status:
112+
- DYNAMIC
113+
cf-ray:
114+
- a3fb74a6de394a1a-EWR
115+
connection:
116+
- keep-alive
117+
content-length:
118+
- '1182'
119+
content-security-policy:
120+
- default-src 'none'; frame-ancestors 'none'
121+
content-type:
122+
- text/event-stream; charset=utf-8
123+
date:
124+
- Wed, 23 Sep 2026 18:01:41 GMT
125+
request-id:
126+
- req_011CfLoteirHixqtzp5mMHPH
127+
server:
128+
- cloudflare
129+
strict-transport-security:
130+
- max-age=31536000; includeSubDomains; preload
131+
traceresponse:
132+
- 00-90c41b635f8d75a7b816b7b23755b250-764bd81cbcc466b4-01
133+
transfer-encoding:
134+
- chunked
135+
vary:
136+
- Accept-Encoding
137+
x-robots-tag:
138+
- none
139+
status:
140+
code: 200
141+
message: OK
142+
version: 1

0 commit comments

Comments
 (0)