1---
2version: 2
3interactions:
4- id: 0
5 request:
6 proto: HTTP/1.1
7 proto_major: 1
8 proto_minor: 1
9 content_length: 556
10 host: ""
11 body: '{"store":false,"include":["reasoning.encrypted_content"],"input":[{"content":"You are a helpful assistant","role":"developer"},{"content":[{"text":"What''s the weather in Florence, Italy?","type":"input_text"}],"role":"user"}],"model":"gpt-5-mini","reasoning":{"effort":"high","summary":"auto"},"tool_choice":"auto","tools":[{"strict":false,"parameters":{"properties":{"location":{"description":"the city","type":"string"}},"required":["location"],"type":"object"},"name":"weather","description":"Get weather information for a location","type":"function"}]}'
12 headers:
13 Accept:
14 - application/json
15 Content-Type:
16 - application/json
17 User-Agent:
18 - Charm-Fantasy/0.12.2 (https://charm.land/fantasy)
19 url: https://fantasy-playground-resource.openai.azure.com/openai/v1/responses
20 method: POST
21 response:
22 proto: HTTP/2.0
23 proto_major: 2
24 proto_minor: 0
25 content_length: 5968
26 body: |-
27 {
28 "id": "resp_03e04b1d440a87110169b2ff8dceac819697919beb0b86d619",
29 "object": "response",
30 "created_at": 1773338509,
31 "status": "completed",
32 "background": false,
33 "completed_at": 1773338517,
34 "content_filters": [
35 {
36 "blocked": false,
37 "source_type": "prompt",
38 "content_filter_raw": [],
39 "content_filter_results": {
40 "jailbreak": {
41 "detected": false,
42 "filtered": false
43 },
44 "hate": {
45 "filtered": false,
46 "severity": "safe"
47 },
48 "sexual": {
49 "filtered": false,
50 "severity": "safe"
51 },
52 "violence": {
53 "filtered": false,
54 "severity": "safe"
55 },
56 "self_harm": {
57 "filtered": false,
58 "severity": "safe"
59 }
60 },
61 "content_filter_offsets": {
62 "start_offset": 0,
63 "end_offset": 71,
64 "check_offset": 0
65 }
66 },
67 {
68 "blocked": false,
69 "source_type": "completion",
70 "content_filter_raw": [],
71 "content_filter_results": {
72 "protected_material_text": {
73 "detected": false,
74 "filtered": false
75 },
76 "protected_material_code": {
77 "detected": false,
78 "filtered": false
79 },
80 "hate": {
81 "filtered": false,
82 "severity": "safe"
83 },
84 "sexual": {
85 "filtered": false,
86 "severity": "safe"
87 },
88 "violence": {
89 "filtered": false,
90 "severity": "safe"
91 },
92 "self_harm": {
93 "filtered": false,
94 "severity": "safe"
95 }
96 },
97 "content_filter_offsets": {
98 "start_offset": 0,
99 "end_offset": 1878,
100 "check_offset": 0
101 }
102 }
103 ],
104 "error": null,
105 "frequency_penalty": 0.0,
106 "incomplete_details": null,
107 "instructions": null,
108 "max_output_tokens": null,
109 "max_tool_calls": null,
110 "model": "gpt-5-mini",
111 "output": [
112 {
113 "id": "rs_03e04b1d440a87110169b2ff91f840819692bf236ebfcc7f66",
114 "type": "reasoning",
115 "encrypted_content": "gAAAAABpsv-VXwrkiA2LGZS81tv6gXmlZFltBSfylmK7DeO9bnDg43lIoU7T_Dmcxg4SHjIsSOAt1-QnNyApcix2-vjt8aim5NX85sGG-DOFbsikMl-eSyXc4B98LXjP9nS0XxNAakLhhBMObzmIFlf7CwMGSyn3z9VT9Z0oizw6BP5TiEVXSJKZcnzPW4CDfVlGzrBk60NnS2ugDpkWUd6krcc_vU_CudDFDAbFVs4HGEGJDSAXnms0XEWemEnkbjL1dLhesjW-MX-W4uQEGXNJqcVoaC0z0LPu6G7T9SdKEZbrNI5GQu-bL67pjdFfddv6VrrSWovs7-D0X6lr5ZAjuDkqPLQo1uyJDAoOUgx-Z2z7tACHEkG7jqCenTJ3fwQe88KdDcoJoZ59s6VqL-msbnAZpiTKdMyM0wR5jQSXwtaVp9yhNgqjRWDW-RlJc7RbY_4x4j5xL3p1vyF1ioFjo2z7u5Lb9tsBLHOXRDpb9BFGXQbxOmP4VpvMN_93CcszyIRd6mPp3taVpnJPlLTSVW4uBXfGX2RKLAcT0DsYicB3O0sjjfWpGLQuEvmCWSrCHBwYAy-PGDPAQgcsGjsE9alwXOhHXONyq5BkiIs4cQ3ZWCibDTqg2CEVsCuXZPHL50SjuQOFRmFZkXRbnH8xXTAhDNGqFsISgHCeSV6EPEUL72n1SPeJPdxHc1x1ZZL7HdqHMQUfPnE-eMW4IKapOU3MJ5rxXui6ye5aYBHtRFVJgv6xf-lYpWQXLjJWqulelZPST5gLeAl9NPcPwpz3frgoWH9GpB6glNgavPVWQ2cJwYTv85gJ0I3kLATYBY5LRegYAqBvKGBE0ZDR55neZwn83uckMcEh37diCV3SbPFQMUbxw9gkFVobB3jC3r0OetBTXc0rBcO1bN2s1pRf_493hP1uG4r1Q40_kJubyq6KjaJm_aOl6-X9aGVV6VmTmcvSPzrfga7_sXoS23Qxgo5qfyqj6ERnsSUHvqofb7XRUZDbpMSYUyQ8MonZSYs8OuZT7ZoFI0F2WNqZEOBfbYCMeCimlPYmdwgb_3LJMf5ivUbuRq9uG94TrZXxLG2MprIvNHJAxVVt3eRHOzMIo0kgwRYtHd-MdIyeo6nUmv_JPZIRJvnJ5w4GRCvcX9V6j2Yq2CV39NM7QFhSkoSTDz2dKvXwQY3gzhCQM651-mINb86qiL3L-vVtGzZe2ZL5z6VBDON-QOiQyZV7fLH8S5ECKgoK_X81fEjxBAuRkBZGAB-HiuIA6DV_B2O_zE-z09a0ObdBztRd68qMMBNQEuTGZx07C1nVLNZPKro-qT_mx9IbAUwQClw2QHhT6vWIvuWdFWdod44rFDtv-zTImkWtMxbQOjc7dWSPZN6dN-7TCQtVR0DIPl0aouEtgRu3eSWKeHOjTUKBa8D0izB2UQYGHpkyL5-FlTc7NplZRbWMjBDsio-63EV4a_ZISrt2AtacO7p1Tk_H-7atZdWYi1Y0aBg8qf1QWtKzdef-EdgkGPcmUr4rqkH67LrOiNncq-tiqiZhRQ1lHduosIB2dN-Of5NFPe3N5oRD0cSlwhMWJjgC3zkA7ECx8kzKjFsJNPFSqh738KQRxwpaZbqLBIc_FA5WzgSByt_7mLpNKTqQHss_RtU2YMe2JH0VO8V7Waa_mpqELoHcMjHfaIKci-srsOtheWV1x8VSE38ouhV16xaE5WieXL5vtrUJGjdKLsKbm7wYrSnIuU9nr_Ms9nGx5dqdEguJkjKbuNkrZFuUk_Ld5s0Dyg9loLcagD_rRJ8wswmH9xRY-4P1zNZMFKwULj92Xw==",
116 "summary": [
117 {
118 "type": "summary_text",
119 "text": "**Fetching weather for Florence**\n\nThe user is asking for the weather in Florence, Italy. I see that I can use the functions.weather tool, which takes a location string. I could use multi_tool_use.parallel, but since I just need one tool, it makes more sense to call functions.weather directly. The tool expects a JSON format with the location specified, so I'll structure it as {\"location\":\"Florence, Italy\"}. Now, I\u2019ll go ahead and call this function to get the weather."
120 }
121 ]
122 },
123 {
124 "id": "fc_03e04b1d440a87110169b2ff9482d08196b9611b538400d9b0",
125 "type": "function_call",
126 "status": "completed",
127 "arguments": "{\"location\":\"Florence, Italy\"}",
128 "call_id": "call_58ZCzgYxpwaBCsl2an3OWjkQ",
129 "name": "weather"
130 }
131 ],
132 "parallel_tool_calls": true,
133 "presence_penalty": 0.0,
134 "previous_response_id": null,
135 "prompt_cache_key": null,
136 "prompt_cache_retention": null,
137 "reasoning": {
138 "effort": "high",
139 "summary": "detailed"
140 },
141 "safety_identifier": null,
142 "service_tier": "default",
143 "store": false,
144 "temperature": 1.0,
145 "text": {
146 "format": {
147 "type": "text"
148 },
149 "verbosity": "medium"
150 },
151 "tool_choice": "auto",
152 "tools": [
153 {
154 "type": "function",
155 "description": "Get weather information for a location",
156 "name": "weather",
157 "parameters": {
158 "properties": {
159 "location": {
160 "description": "the city",
161 "type": "string"
162 }
163 },
164 "required": [
165 "location"
166 ],
167 "type": "object"
168 },
169 "strict": false
170 }
171 ],
172 "top_logprobs": 0,
173 "top_p": 1.0,
174 "truncation": "disabled",
175 "usage": {
176 "input_tokens": 66,
177 "input_tokens_details": {
178 "cached_tokens": 0
179 },
180 "output_tokens": 171,
181 "output_tokens_details": {
182 "reasoning_tokens": 128
183 },
184 "total_tokens": 237
185 },
186 "user": null,
187 "metadata": {}
188 }
189 headers:
190 Content-Type:
191 - application/json
192 status: 200 OK
193 code: 200
194 duration: 8.094597125s
195- id: 1
196 request:
197 proto: HTTP/1.1
198 proto_major: 1
199 proto_minor: 1
200 content_length: 791
201 host: ""
202 body: '{"store":false,"include":["reasoning.encrypted_content"],"input":[{"content":"You are a helpful assistant","role":"developer"},{"content":[{"text":"What''s the weather in Florence, Italy?","type":"input_text"}],"role":"user"},{"arguments":"\"{\\\"location\\\":\\\"Florence, Italy\\\"}\"","call_id":"call_58ZCzgYxpwaBCsl2an3OWjkQ","name":"weather","type":"function_call"},{"call_id":"call_58ZCzgYxpwaBCsl2an3OWjkQ","output":"40 C","type":"function_call_output"}],"model":"gpt-5-mini","reasoning":{"effort":"high","summary":"auto"},"tool_choice":"auto","tools":[{"strict":false,"parameters":{"properties":{"location":{"description":"the city","type":"string"}},"required":["location"],"type":"object"},"name":"weather","description":"Get weather information for a location","type":"function"}]}'
203 headers:
204 Accept:
205 - application/json
206 Content-Type:
207 - application/json
208 User-Agent:
209 - Charm-Fantasy/0.12.2 (https://charm.land/fantasy)
210 url: https://fantasy-playground-resource.openai.azure.com/openai/v1/responses
211 method: POST
212 response:
213 proto: HTTP/2.0
214 proto_major: 2
215 proto_minor: 0
216 content_length: 7839
217 body: |-
218 {
219 "id": "resp_03e04b1d440a87110169b2ff95e7e881968351190f833d9929",
220 "object": "response",
221 "created_at": 1773338517,
222 "status": "completed",
223 "background": false,
224 "completed_at": 1773338527,
225 "content_filters": [
226 {
227 "blocked": false,
228 "source_type": "completion",
229 "content_filter_raw": [],
230 "content_filter_results": {
231 "protected_material_code": {
232 "detected": false,
233 "filtered": false
234 },
235 "protected_material_text": {
236 "detected": false,
237 "filtered": false
238 },
239 "hate": {
240 "filtered": false,
241 "severity": "safe"
242 },
243 "sexual": {
244 "filtered": false,
245 "severity": "safe"
246 },
247 "violence": {
248 "filtered": false,
249 "severity": "safe"
250 },
251 "self_harm": {
252 "filtered": false,
253 "severity": "safe"
254 }
255 },
256 "content_filter_offsets": {
257 "start_offset": 0,
258 "end_offset": 3357,
259 "check_offset": 0
260 }
261 }
262 ],
263 "error": null,
264 "frequency_penalty": 0.0,
265 "incomplete_details": null,
266 "instructions": null,
267 "max_output_tokens": null,
268 "max_tool_calls": null,
269 "model": "gpt-5-mini",
270 "output": [
271 {
272 "id": "rs_03e04b1d440a87110169b2ff9728608196a7633ffa976a82d9",
273 "type": "reasoning",
274 "encrypted_content": "gAAAAABpsv-fpb3rS7-bQl4c_t4hmXUOwnwmGym7XB5QpPIRXiNgCXQVpiKPvvmqEGMhzrlTx0S1pxIn8cuyWLmsQnI76mv63_LRfNGBZekDfsfFDa2ZNTGW8WiWq3LMbP3CZz24Ld9x0rp83M90cKY4tWrWERKfsii6bX4b41p42leowZQMa9QAbuJH2z897shfIVbmwLsG8vUuD0OsrCcLfQcqHoTQJBE0Xme2H9o79idNBOf5mbrG8JhF9OxUHtwjH6LRuubx3fFtyfDAS53sx5oKtYZHbQoG0YMbD1oSqlWgO9DEqApKNb848RvGoXOp1_Yu2Pq4hLNBaH-I2VfR_3HEWupf5GJ1t85Sc3Ag69Ix_RcL2x46y1fpCaSrxw1dPZ0XlPX55cOVErQ4-3hNc3EdsQ4Qi5XWT-LYvophKrSzd02pFWYj4T86KiHX6ROteeGTxDkRZtf7v-3lO-QC1uNlsE5lHuPYsunES_ZXoyCc9n_mKrKxQlXyjVONQavgkpZz3BLNHQSFWPJ4ajip3aYHDjzdHtRp5Z3g7AWPC9_isbZ9MHx3IoR9gcnAEjYmo-yIJffbSEnPVyBCgiGpX9dG3KFue11g-uM9wzkQ_PvLnSeNCiXrP1JXEukQRJic9gQ7KvmRCzjNmGcbQnCvDt6iFmv9gut9HEPEj5DqLDnA5ntX2u_0vCJtCUGeL0iT0cChchvrLlA48XWwgYCmH3UyifNa7gh7NQ2Vm3vyMFcOmcWDFUYSYkTytc33Xr48yzPZKjxmkRtsxJqpF4h8v3z8N3hfRRq-fDsQZsmKW8soI03yuAW1bsVvabnEmdpu8Olk88HCD4NdBeEKHqA4-FiKYnXd6-KT2KZVvMejaCMPYYYE3FsTXpjMlBihDvl2Ajclc_izAD0KKhaGlHQ6VEzuVBDbxvleoOYsDGQwCI9bZXcneqeSSUxUOotJOHyt8gGISVuWkKuM8hLGMqn2gIOyuQERcwWwj1WkxwAaNSNdWszbwlmpSjFSdc9K6knWQna5R2DqlEh9-WQcHSxNtsWo8rGPWb3PbbuQMvaPfD1zVntCfTO3UssmXwwIWwnkMdgZylRDhaQqIln4Xsgx4DYhiK5eYN4Es9bXEXugi5cOq0OEOVj_A9C5-Aj438k9luAAnm09q1xZOIxI5amDblv80zleGijt1r2qsLpdsGCejr44GDFZ-S1Py9pWURzDQ7kfXsqv18Sw1TjsrewP2GwRmJQ4aYSpbsjZRUa82xoHb7kxdLz9j27Fyxi6I9HmnZf-bCcMzy7f8WzGmmCWgGQDRpE5iy7fMxTI0hML0sZpfxAxRWwFtMp7Emr4m8zjDzCgLFjp3S47wRtGJHft_JaWkBXbpjkiJknz0Wo_72Tshqk64PopsGyYNqU_sk2wBL98aHgL-tsrd7XJ4Xjzm0padS9iJ0NqkIX4pQyZ8cXyZa1kXoMb1_JWK2DEJSj1o34iZbxnKPKhgt9tM4yHJrmSX5wgbmeTYjPQVkmx5yiN8FygqyFaeSsCulS1HAfcwoQs59QWcj-vJS_a6ffpYJ336RMpodQ2PgloXTEdJzNvoSWEeZOPML7WKQsGHqjVfAzeENW9Psd2T3IuMjgfoE3xM8opHGd7PFIIS-5FPaWzE16vFWXT9vJDeZaeCOuTetYJjtxs-qaj5uBfQ-OknsSLposZcyYty__eagFdxfPKR_iFcy_AdBPp1mufM71OrN4CyRdQ2QCnPcLFNVzlXVR6LRKwBNCOkUq-gBei474FLheWLh0psuaUy9rxxo8y_hLjxn0_Z0LwAbdYKF2Siz9E18W8YmjGVD9iD1lcraodYs6Xl2D4J2jFKL4dmopw0P9-U143P46HXplpTANifxEGW_RnKG9HpgpUfv6Gp9vPPrL-GeBW-51JDAq-y0BCD0e4SFEHWSDT7b16c5BQpYul2K3XviYHGxjGAI8rWNS03Lac96eAmzuCn8KzqBvOHJcFyZ54PfcEitmhCzOZ03UXEQwduMbRnCCW1Gp-WZGloWpTxbJNQYpLH01nqSJn86wzsVj-g0DLQWSsC1pcOIh_wsslvp15HRqLD3fUtEFc_ls3BDciXoIkNG8O0wZ9HVQJcLm1k08hYvU-5W7X_LW8-cOa3-kBaW6oU0yqk9sNrzl-rAdl90U2j0L0oQF3lufR6A6K8ZJf67MzAWpXcazPOVN58gVu9ZvfR_KbraKjyTkIsQQmFBecWoptOMbxgD_uCOhsHtFzeS5SVFfg77Woxo1BFLqy2PUbw-IpDsTJ4ssJ241Ycyjg1KY8XDSl24AiyCaw70QIksSrcc__dAIUaE-lbHQlQRwRCFu3BHKgHHbwkgFbH2ar9xo_dI7v-uriY0gVxvzwVrnCnKKA6phKGJZs9nVb9fLupHBm5IiueakkoIWTpsGcl6nfZCnSAy3d1SpZJZ9OGHhR0yD_8uP6RvVeT3B5nebw8ko-LF6CWI9Wlb_T0m0yuzgwXqliYlHEVqT0u3IDFbpQ4yAUpIa9PFYatuYX6IEr_a5pfUbrnW63Z-1H3iz7iKJdDKdvrPbje1mvf70ZmRv7esI6BphFj2VRH9A4yJukCx5Kv_w4OYNfk3D7KCQ858p5V_JcUdVGxpOXP_s1PCJe7eZtpdywewNfcH_25mdK70IkAOEPSFsvA9tVmR0KJzYRycs5Nqpsd111HGylZIdrRSAiuxrBc0OiZP7dVsxBx6MeQhG7j-hUh0nk9iMenbyY4yA45R4jalCvR6yjuvJJ6Dgx6E1ePqFEfnISHPZrYTPXjqZtLZUnyD3zKbpF_kxpMlxA930Gi4-_qPNDtQm00TwraPvXkWTmTFHLtxGEh3D_btbymaRxRPkIfwi0myHkJNS-tsa3CUd4QfzvOAYMB5rB-K1dKSr38j_m4l0ZnhfZ7fCSHYgDcSZUWye5f2f3khFuPG5_xrGz_h0CIzugDxTCZI3BNUYQeO7u2e1XeovICoUspkat_BVE-pP2Hm6OSX2ZUNiVemI00bPoxjpxPhriAgzjAlxwz-hPbnc8cAkm6PZNMH4HeNfxJdeYFrtmES86AGW9lYCY8oxIjFsXXnxFhDDFtal1-5bnCSpi1EnsGmP5WmbDKUkj9vqWi1NUk0WrwnjsefvnOGwkvneoP8Yp6Dn4nLPQJl_e-L-cbjNInGf3FS2vdFtNEOMm7VbI-J4qIBnk3UQoTL8jCxct7TQvSEkFwZE-HO-oSFz03KPyWk4X2j2-A4xfUnGCuQOZOSyvIhh6BcJBsU1OwhqC3G0CZMwAj1-hWBvb3QPg00e-zqAADusg2ggkekD-fbopAG8x4rejhRBvrob2IA6Oroig69H1_WnpLuPHgJ9-TYP25iler8R66zuHkX60LKNN-D6B-ff6ymmQ_kF1zVGg2ufjfQ5xlkR302PCLKrb8IhVe5vBsTJEWERR2WehtdCvoqySNgh3u7C2t2thPV4mHN0xA5_HzOk6Zz7AqMLnnW-0m1-eKxWYDic=",
275 "summary": [
276 {
277 "type": "summary_text",
278 "text": "**Reporting Florence weather**\n\nThe tool returned \"40 C,\" which is pretty hot! I need to provide the user with the current weather in Florence, Italy, but I realize it only gives the temperature. So, I should clarify that it's 40\u00b0C right now. It's extremely hot, and I want to remind the user to stay hydrated and seek shade. I'll keep the response concise and ask if they\u2019d like more details about the forecast or hourly conditions."
279 },
280 {
281 "type": "summary_text",
282 "text": "**Summarizing Florence weather info**\n\nI want to provide a comprehensive yet concise update on the weather in Florence, Italy. I\u2019ll tell the user the current temperature is 40\u00b0C (104\u00b0F), along with safety tips: stay hydrated, take breaks in the shade or air conditioning, and wear light clothing and sunscreen. I might also ask if they want a detailed forecast or hourly updates. I need to avoid claiming specifics about weather conditions since the tool didn\u2019t provide that data."
283 }
284 ]
285 },
286 {
287 "id": "msg_03e04b1d440a87110169b2ff9ed2a8819688f2b28a2cdba9a8",
288 "type": "message",
289 "status": "completed",
290 "content": [
291 {
292 "type": "output_text",
293 "annotations": [],
294 "logprobs": [],
295 "text": "Current temperature in Florence, Italy: 40\u00b0C (104\u00b0F).\n\nThat\u2019s very hot \u2014 stay hydrated, avoid strenuous outdoor activity in the midday sun, seek shade or air conditioning, wear light clothing and sunscreen. Would you like a full forecast (conditions, humidity, wind) or an hourly outlook?"
296 }
297 ],
298 "role": "assistant"
299 }
300 ],
301 "parallel_tool_calls": true,
302 "presence_penalty": 0.0,
303 "previous_response_id": null,
304 "prompt_cache_key": null,
305 "prompt_cache_retention": null,
306 "reasoning": {
307 "effort": "high",
308 "summary": "detailed"
309 },
310 "safety_identifier": null,
311 "service_tier": "default",
312 "store": false,
313 "temperature": 1.0,
314 "text": {
315 "format": {
316 "type": "text"
317 },
318 "verbosity": "medium"
319 },
320 "tool_choice": "auto",
321 "tools": [
322 {
323 "type": "function",
324 "description": "Get weather information for a location",
325 "name": "weather",
326 "parameters": {
327 "properties": {
328 "location": {
329 "description": "the city",
330 "type": "string"
331 }
332 },
333 "required": [
334 "location"
335 ],
336 "type": "object"
337 },
338 "strict": false
339 }
340 ],
341 "top_logprobs": 0,
342 "top_p": 1.0,
343 "truncation": "disabled",
344 "usage": {
345 "input_tokens": 248,
346 "input_tokens_details": {
347 "cached_tokens": 0
348 },
349 "output_tokens": 489,
350 "output_tokens_details": {
351 "reasoning_tokens": 384
352 },
353 "total_tokens": 737
354 },
355 "user": null,
356 "metadata": {}
357 }
358 headers:
359 Content-Type:
360 - application/json
361 status: 200 OK
362 code: 200
363 duration: 9.999820417s