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: 466
10 host: ""
11 body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence, Italy?","role":"user"}],"model":"openai/gpt-5","tool_choice":"auto","tools":[{"function":{"name":"weather","strict":false,"description":"Get weather information for a location","parameters":{"properties":{"location":{"description":"the city","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"reasoning":{"enabled":true}}'
12 headers:
13 Accept:
14 - application/json
15 Content-Type:
16 - application/json
17 User-Agent:
18 - OpenAI/Go 2.7.1
19 url: https://ai-gateway.vercel.sh/v1/chat/completions
20 method: POST
21 response:
22 proto: HTTP/2.0
23 proto_major: 2
24 proto_minor: 0
25 content_length: -1
26 uncompressed: true
27 body: '{"id":"gen_01KGF3B3C7Q42KHM2W985XF2T3","object":"chat.completion","created":1770033356,"model":"openai/gpt-5","choices":[{"index":0,"message":{"role":"assistant","content":null,"reasoning":"**Checking weather in Florence**\n\nI need to answer the user regarding the weather in Florence, Italy. I have access to a functions.weather tool for this purpose. Since we''re only calling one tool, I don’t need to use the multi_tool_use feature, which is meant for parallel calls. I’ll simply use functions.weather directly. I’ll provide the location as \"Florence, Italy\" and then wait for the results. Fingers crossed the tool gives us the correct data!","reasoning_details":[{"type":"reasoning.summary","summary":"**Checking weather in Florence**\n\nI need to answer the user regarding the weather in Florence, Italy. I have access to a functions.weather tool for this purpose. Since we''re only calling one tool, I don’t need to use the multi_tool_use feature, which is meant for parallel calls. I’ll simply use functions.weather directly. I’ll provide the location as \"Florence, Italy\" and then wait for the results. Fingers crossed the tool gives us the correct data!","id":"rs_0562170428b0ad7001698090c89354819687c27b2705c3ce4c","format":"openai-responses-v1","index":0},{"type":"reasoning.encrypted","data":"gAAAAABpgJDMsf0VPNBZL3A8tONVzmCdRytZjL7k3QaiavhXgEfFZ0_E6LPvHdpQha_hZs16TnpTURpI-a0UEqxQ0ogIISECklCdduz3wdG0_h55n2hL-NL07dwRdFhygz4tmLJo9mqbUsn1D0uWEu-4afSiPP1HUVoyM3P-XAqG0iDZBG0S3MTxzLCkS9kRgQlzROJlaXEmEB9AJdyFXmb7zAABESJ5kGlH6sT0Iakwvl8vVr34M-OwgYCCGQ6ppz-m0UQmNhCBlcq08d8KkpYElyOQ8hbbykatWslxGZzBWLz7leWClihD4iMM72zbWnwXZDshOqp4lObx1TZuLlDI_naQj6yNXVMRolOSq7g_SygrgJ4o8vmDWUu8Tt_pAHcjWTbzhhTOo-X0-OubpEPgOdjvjdGnQ3tuS5BZs39XVsN0CL2L_XzL6zdVKGdCkqEwoiXjJSLtSFZLgQvn5bzmIPY0II0xX4CAeSN8oHhE4CnocBqWrU3PRaKPHM0WypqB0UuM254n_cZBvdKC9OaJfWKmVbdI1H5R0arzb3KYBG8DXpuWVO354MtLSZ6ZaqxJDNapHX9nwGZ2muBBzYSqxsdYFuLSxz3J-uAwA8YM8o6yb8otfhXrmiHS_562EofNf1yKoFX2j4lACJFTFRWpDRl-ytnfW_VCXvdEelBlmB40JuFu6qy_lF0_g-CndYzGXOi714BIPR0dvcNOLpX_w71QA4WHJUvm7udhzvcHvIkNZHu3O8lUl7htEJGYnx-6x1vn_XLJBD47TUi4QbbuvmqPcHVfbQ5Z-9Hn-Dc9JMGXhao72RRnilCBeiJcJmjTYTWn4JjgE0yMr9BdJjQv9j5E2p3oPHIB2Dqw1FiIHpw1VaGan4T8N3yRPD6-AinoZggBNkULFTS0lWBPPI0vk4uMWIruJS5l7z8rs08PsBS5kTk6-J4IEp-3--Yy5YJND8Z_zboGaKewpWFeft0FqRklGdJ00e_FGaPD2aOfcOygzlCtKumLhU2XG_E8VvGxjz4-TLlzM3LR35Hgm03amQVV_20JMdI1XB_OSoPKoGCZubzBQsf7E_8zVj23J3wVkFEv6o1Fh4XJ4unWcLeQjjLvT7Bkv-smny6wWN-Fd6SM9yU8fMlTHbRCCVdcGRN6QjcX1K5eOiI8U4qmvQw8Tn9_MtMejUdEkWdiKxACIhOhAqJRlTl8JwQL9ggL1gc4iVMepQuaSvauSVjNWalgq94e-k1tSSkobHt6yGD3Fd9jUwyC6KrWraEWR7tmbWesc1KR_zbsd9J_B57szRFLz0JU6GmTCwRM9sblytuCLLdIeW8FLlqIRyhkYm5HrgKyoYwBLp9yOkfllj6C35ZW5ZTOpLNhmeDi3BOLMh6IvMgak4TCaNJjvmPD7ZVU6Y_--LOe_SCJta3yppo2f4-eOduTsUXcXC-gmpbvAhUBgIyOV55OTSE8OGYHZ86sTdF7UVnzftznjQ-5mZKPiHMTNgastAmdKdNhcjDunKlL-qbyEsX4Eeb9TKXM2koCcxZ-Dfs84wSS","id":"rs_0562170428b0ad7001698090c89354819687c27b2705c3ce4c","format":"openai-responses-v1","index":0}],"tool_calls":[{"id":"call_iHMVWYLENDMIMaQBppQsnQ2Y","type":"function","function":{"name":"weather","arguments":"{\"location\":\"Florence, Italy\"}"}}],"provider_metadata":{"openai":{"responseId":"resp_0562170428b0ad7001698090c836608196820886f8d884db01","serviceTier":"default"},"gateway":{"routing":{"originalModelId":"openai/gpt-5","resolvedProvider":"openai","resolvedProviderApiModelId":"gpt-5-2025-08-07","internalResolvedModelId":"openai:gpt-5-2025-08-07","fallbacksAvailable":["azure"],"internalReasoning":"Selected openai as preferred provider for gpt-5. 1 fallback(s) available: azure","planningReasoning":"System credentials planned for: openai, azure. Total execution order: openai(system) → azure(system)","canonicalSlug":"openai/gpt-5","finalProvider":"openai","attempts":[{"provider":"openai","internalModelId":"openai:gpt-5-2025-08-07","providerApiModelId":"gpt-5-2025-08-07","credentialType":"system","success":true,"startTime":1469621.176344,"endTime":1473996.358343,"statusCode":200,"providerResponseId":"resp_0562170428b0ad7001698090c836608196820886f8d884db01"}],"modelAttemptCount":1,"modelAttempts":[{"modelId":"openai/gpt-5","canonicalSlug":"openai/gpt-5","success":false,"providerAttemptCount":0,"providerAttempts":[]}],"totalProviderAttemptCount":0},"cost":"0.00215875","marketCost":"0.00215875","generationId":"gen_01KGF3B3C7Q42KHM2W985XF2T3","billableWebSearchCalls":0}}},"logprobs":null,"finish_reason":"tool_calls"}],"usage":{"prompt_tokens":63,"completion_tokens":144,"total_tokens":207,"cost":0.00215875,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0,"upstream_inference_completions_cost":0},"completion_tokens_details":{"reasoning_tokens":64,"image_tokens":0},"cache_creation_input_tokens":0,"market_cost":0.00215875},"system_fingerprint":"fp_5jkdir3bke","generationId":"gen_01KGF3B3C7Q42KHM2W985XF2T3"}'
28 headers:
29 Content-Type:
30 - application/json
31 status: 200 OK
32 code: 200
33 duration: 4.531842958s
34- id: 1
35 request:
36 proto: HTTP/1.1
37 proto_major: 1
38 proto_minor: 1
39 content_length: 2977
40 host: ""
41 body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence, Italy?","role":"user"},{"tool_calls":[{"id":"call_iHMVWYLENDMIMaQBppQsnQ2Y","function":{"arguments":"{\"location\":\"Florence, Italy\"}","name":"weather"},"type":"function"}],"role":"assistant","reasoning_details":[{"format":"openai-responses-v1","index":0,"summary":"**Checking weather in Florence**\n\nI need to answer the user regarding the weather in Florence, Italy. I have access to a functions.weather tool for this purpose. Since we''re only calling one tool, I don’t need to use the multi_tool_use feature, which is meant for parallel calls. I’ll simply use functions.weather directly. I’ll provide the location as \"Florence, Italy\" and then wait for the results. Fingers crossed the tool gives us the correct data!","type":"reasoning.summary"},{"data":"gAAAAABpgJDMsf0VPNBZL3A8tONVzmCdRytZjL7k3QaiavhXgEfFZ0_E6LPvHdpQha_hZs16TnpTURpI-a0UEqxQ0ogIISECklCdduz3wdG0_h55n2hL-NL07dwRdFhygz4tmLJo9mqbUsn1D0uWEu-4afSiPP1HUVoyM3P-XAqG0iDZBG0S3MTxzLCkS9kRgQlzROJlaXEmEB9AJdyFXmb7zAABESJ5kGlH6sT0Iakwvl8vVr34M-OwgYCCGQ6ppz-m0UQmNhCBlcq08d8KkpYElyOQ8hbbykatWslxGZzBWLz7leWClihD4iMM72zbWnwXZDshOqp4lObx1TZuLlDI_naQj6yNXVMRolOSq7g_SygrgJ4o8vmDWUu8Tt_pAHcjWTbzhhTOo-X0-OubpEPgOdjvjdGnQ3tuS5BZs39XVsN0CL2L_XzL6zdVKGdCkqEwoiXjJSLtSFZLgQvn5bzmIPY0II0xX4CAeSN8oHhE4CnocBqWrU3PRaKPHM0WypqB0UuM254n_cZBvdKC9OaJfWKmVbdI1H5R0arzb3KYBG8DXpuWVO354MtLSZ6ZaqxJDNapHX9nwGZ2muBBzYSqxsdYFuLSxz3J-uAwA8YM8o6yb8otfhXrmiHS_562EofNf1yKoFX2j4lACJFTFRWpDRl-ytnfW_VCXvdEelBlmB40JuFu6qy_lF0_g-CndYzGXOi714BIPR0dvcNOLpX_w71QA4WHJUvm7udhzvcHvIkNZHu3O8lUl7htEJGYnx-6x1vn_XLJBD47TUi4QbbuvmqPcHVfbQ5Z-9Hn-Dc9JMGXhao72RRnilCBeiJcJmjTYTWn4JjgE0yMr9BdJjQv9j5E2p3oPHIB2Dqw1FiIHpw1VaGan4T8N3yRPD6-AinoZggBNkULFTS0lWBPPI0vk4uMWIruJS5l7z8rs08PsBS5kTk6-J4IEp-3--Yy5YJND8Z_zboGaKewpWFeft0FqRklGdJ00e_FGaPD2aOfcOygzlCtKumLhU2XG_E8VvGxjz4-TLlzM3LR35Hgm03amQVV_20JMdI1XB_OSoPKoGCZubzBQsf7E_8zVj23J3wVkFEv6o1Fh4XJ4unWcLeQjjLvT7Bkv-smny6wWN-Fd6SM9yU8fMlTHbRCCVdcGRN6QjcX1K5eOiI8U4qmvQw8Tn9_MtMejUdEkWdiKxACIhOhAqJRlTl8JwQL9ggL1gc4iVMepQuaSvauSVjNWalgq94e-k1tSSkobHt6yGD3Fd9jUwyC6KrWraEWR7tmbWesc1KR_zbsd9J_B57szRFLz0JU6GmTCwRM9sblytuCLLdIeW8FLlqIRyhkYm5HrgKyoYwBLp9yOkfllj6C35ZW5ZTOpLNhmeDi3BOLMh6IvMgak4TCaNJjvmPD7ZVU6Y_--LOe_SCJta3yppo2f4-eOduTsUXcXC-gmpbvAhUBgIyOV55OTSE8OGYHZ86sTdF7UVnzftznjQ-5mZKPiHMTNgastAmdKdNhcjDunKlL-qbyEsX4Eeb9TKXM2koCcxZ-Dfs84wSS","format":"openai-responses-v1","id":"rs_0562170428b0ad7001698090c89354819687c27b2705c3ce4c","index":0,"type":"reasoning.encrypted"}]},{"content":"40 C","tool_call_id":"call_iHMVWYLENDMIMaQBppQsnQ2Y","role":"tool"}],"model":"openai/gpt-5","tool_choice":"auto","tools":[{"function":{"name":"weather","strict":false,"description":"Get weather information for a location","parameters":{"properties":{"location":{"description":"the city","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"reasoning":{"enabled":true}}'
42 headers:
43 Accept:
44 - application/json
45 Content-Type:
46 - application/json
47 User-Agent:
48 - OpenAI/Go 2.7.1
49 url: https://ai-gateway.vercel.sh/v1/chat/completions
50 method: POST
51 response:
52 proto: HTTP/2.0
53 proto_major: 2
54 proto_minor: 0
55 content_length: -1
56 uncompressed: true
57 body: '{"id":"gen_01KGF3B7PMN3C6EZGFX1P9A78S","object":"chat.completion","created":1770033366,"model":"openai/gpt-5","choices":[{"index":0,"message":{"role":"assistant","content":"Right now in Florence, Italy it’s about 40°C (104°F). Want a forecast or more details?","reasoning":"**Presenting the temperature**\n\nThe tool returned \"40 C,\" which feels a bit too brief. I think I should present this clearly to the user. Converting 40 C to Fahrenheit gives us 104 F. I want to keep it concise, so I’ll say, \"Right now in Florence, it’s about 40°C (104°F).\" I should also offer to get a forecast or details like humidity, while sticking with the details that are most relevant and avoiding assumptions about the weather.**Considering the heat advisory**\n\nI realize that 40 C is extremely hot! I could include a simple advisory like \"stay hydrated,\" but it might come off as unsolicited. Since the instructions emphasize being concise, I think I’ll keep the final message straightforward: \"Right now in Florence, Italy, it''s around 40°C (104°F). Would you like a forecast or more details?\" That way, I’m providing the info without overstepping.","reasoning_details":[{"type":"reasoning.summary","summary":"**Presenting the temperature**\n\nThe tool returned \"40 C,\" which feels a bit too brief. I think I should present this clearly to the user. Converting 40 C to Fahrenheit gives us 104 F. I want to keep it concise, so I’ll say, \"Right now in Florence, it’s about 40°C (104°F).\" I should also offer to get a forecast or details like humidity, while sticking with the details that are most relevant and avoiding assumptions about the weather.**Considering the heat advisory**\n\nI realize that 40 C is extremely hot! I could include a simple advisory like \"stay hydrated,\" but it might come off as unsolicited. Since the instructions emphasize being concise, I think I’ll keep the final message straightforward: \"Right now in Florence, Italy, it''s around 40°C (104°F). Would you like a forecast or more details?\" That way, I’m providing the info without overstepping.","id":"rs_0562170428b0ad7001698090cd65008196b1811384c1eb1d6c","format":"openai-responses-v1","index":0},{"type":"reasoning.encrypted","data":"gAAAAABpgJDWD7uuI9cHJYRhaE0aumxBFm7lcXL0q4zfSOYK50X0LE6YwVz7CUc7g6HDCOxpi78m5CX5xe4sR7mloQRkr8YuAFOv_draZ0tZ21FJhKoEr7x8XyzCgrx-Mxv98HGsZE7V3cF61q8b4VZVb4r5MAPDCaZyUINTj2tLAdZChdxpwq4ZBDGhUVrYdqoPbFZm-rx9gkWOKSP7ir9aWU3L5qkQcay0i7zYj0p2Gp8iL1A--48RYacfVaXOgpfYGCBvo0whLwTVtjXxCy0_OEmkSp4bMjkd9dq3PibuD_XwN5mU3QxPW-qiF1zwsS26WQ1Zw0xwvg188l5-MMSaWhJZkZdkWFGmsmazBglfMOncPQO3khM2158ca0W6aeo0WryrEQWNeb37sJjrT258fQ_0NA9Udn0YWUXWdOndCXM7el37_JqxB-4fng9iseMEM9jx5wJ4gtinOVovootaQPYe8Vg68juw0FWgcywsJsbK1GKZNaT7-ISsgcy6Cq8uijY6S9jDn2mUxry1PZz702OrpQSkuYn_YLwXM3bPBsMIn_5sTTm4Z4FZUEXVHndT5U5-klkfzBtAYXpA1cnT65_FVqZydKo_KSLYwbssjUZL8K2QCq1MWJ8X2Lq84i0lmbX-i8Nh205TEi31ub_syPKa-pQ-r-6W0glXUCUTIuqpvGMthEOGb6YVeBhVkzenPtPSeVXWeF0oHZuuQpFbfaF2m1lxGIkETgowuRvDU7S2UOb-B1kTfDpzfFsgxXHtbBhE03tw49_EU5h8h-fCBxiR8Tc6ZylJsAUsEszEH0ofcsuF33IrhTpbLlCXN3wsfSucUq9O4NtgLO-B5VuqPOdFTJ4mbR70C_Cve-Wt4VmGekrsmD1wTImf0o9X3d_ZvZ190dkG7XDAJRDdCMK5uflIBY-fYb7TEKqtnV9WrGR1wY38lpJDzboxOXit99XOHGL64z5oCiD9K0_4BPTRbaHL9Gn8ohO4lQo0NIN4wGRD2YYHaPPjFDK4Fgr_sq8JVp4GsdZ82VyhWjE9XmX2L6VMZff44je18xTHbCRNU0BnTlkpqYea_LFip7pdZcbITnMgDrZi9zrqEpx5AjVoqBr3v7tsLP206LYwQ2g1KjNzhTStPgw3FEyKgcfrLDD9FQ7xjmvHRGWAQ_29MdVTG93M8ypEE77GkMf4AdDwa0uXOhw-k7wJe3QR206ZFzZT4fn1sDy55O0_1F-fmoPm9Ow1Cuw7W0p2oZgBShQU_IhVR3NtRF269WM28bCoCyohF71tgSzMm_dyW2qtkPhptO6Xpw2r2xUpH7AqPIC073m8O3PvfPnmr_MKQ6tS6mUH5sOqu8wrqhwuLsM3j3Pcze-2sCb8gRsw7UfrE0ed_ZTbJmbWRZbKSbX7nvGs_TVB4SpKTCe8VNtmk_4CKc0TP0ZHimi_O8CkOUn7WE7edN--E-6xuZxA47IsE1DkLXtJPuAbJZrk2XshkePp-icDeWPQ0csiLAriBRFlZQBiquXNWBsALiZK0RdchPSq5uLOPVEisXlzPgDAalfxNY2eti3vxTMIAGjZnu4QBYIrd4bUg2AAA9d5OX-TsSO0m3j1lS2sHtekYdr34ofA5dT0ntWdsaQ2WS-8WHYDmGN7TZBcfTJC784EPpoKXuTIwr9NiUAB71FRyk_wY6TdhoDqDw4KtCw28l1QMXGFK3wv0koIHOGVCjuB5IQK7NWNnyned5kSqVgkGY-epfBtvEdcdc7CCBcA7yf-qoGd7idCBnjqcMszsKMD2d95sDDO3nqNV51vhjfA9fxuo-HlGNv12PbsePQTZXSzRM9kVX7jWiu-MFgUfPtZrzYMVh97QA586AZH40Zp5D2NZpfpFFCHFxWCHbhtRhklzeBu1gQ-iWmpxzns2XypqiL5STk4JeBYoav4B7-ypRBO8mwQUEzheZgKO5Hi0jWElzqcWvO2sAouwciUP7-8Tjl0NDLAs7MzuvwtCkzH8o9ikw1vR8MmLToCgUZ1BFHZn5_EH-VWGiZ0x2kikoLM-iHi0fBFUcdj2XrVQ4mnU6IbHh2ST4Xfltx7CmssTxVvK357mX_5Aq5U-13XAJRjGaYX1rsclnudN8N2ib8LYiukfq_Rqxzxdm0QjLuc-vdGLm5V2vdJ2qX5fwrVMaVJgwt393P42SsVoyzkYPpwn4eXfiQssdjPdLkJpLFcjQ==","id":"rs_0562170428b0ad7001698090cd65008196b1811384c1eb1d6c","format":"openai-responses-v1","index":0}],"provider_metadata":{"openai":{"responseId":"resp_0562170428b0ad7001698090ccce248196b6d739df157f9b65","serviceTier":"default"},"gateway":{"routing":{"originalModelId":"openai/gpt-5","resolvedProvider":"openai","resolvedProviderApiModelId":"gpt-5-2025-08-07","internalResolvedModelId":"openai:gpt-5-2025-08-07","fallbacksAvailable":["azure"],"internalReasoning":"Selected openai as preferred provider for gpt-5. 1 fallback(s) available: azure","planningReasoning":"System credentials planned for: openai, azure. Total execution order: openai(system) → azure(system)","canonicalSlug":"openai/gpt-5","finalProvider":"openai","attempts":[{"provider":"openai","internalModelId":"openai:gpt-5-2025-08-07","providerApiModelId":"gpt-5-2025-08-07","credentialType":"system","success":true,"startTime":7725848.499705,"endTime":7735703.317098,"statusCode":200,"providerResponseId":"resp_0562170428b0ad7001698090ccce248196b6d739df157f9b65"}],"modelAttemptCount":1,"modelAttempts":[{"modelId":"openai/gpt-5","canonicalSlug":"openai/gpt-5","success":false,"providerAttemptCount":0,"providerAttempts":[]}],"totalProviderAttemptCount":0},"cost":"0.00479","marketCost":"0.00479","generationId":"gen_01KGF3B7PMN3C6EZGFX1P9A78S","billableWebSearchCalls":0}}},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":216,"completion_tokens":260,"total_tokens":476,"cost":0.00479,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0,"upstream_inference_completions_cost":0},"completion_tokens_details":{"reasoning_tokens":192,"image_tokens":0},"cache_creation_input_tokens":0,"market_cost":0.00479},"system_fingerprint":"fp_bemblx56dt","generationId":"gen_01KGF3B7PMN3C6EZGFX1P9A78S"}'
58 headers:
59 Content-Type:
60 - application/json
61 status: 200 OK
62 code: 200
63 duration: 10.00759025s