tool_streaming.yaml

  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: 557
 10    host: ""
 11    body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence,Italy?","role":"user"}],"model":"google/gemini-3.1-flash-lite-preview","max_tokens":4000,"stream_options":{"include_usage":true},"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"}],"usage":{"include":true},"stream":true}'
 12    headers:
 13      Accept:
 14      - application/json
 15      Content-Type:
 16      - application/json
 17      User-Agent:
 18      - Charm-Fantasy/0.15.0 (https://charm.land/fantasy)
 19    url: https://openrouter.ai/api/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    body: |+
 27      : OPENROUTER PROCESSING
 28
 29      : OPENROUTER PROCESSING
 30
 31      : OPENROUTER PROCESSING
 32
 33      : OPENROUTER PROCESSING
 34
 35      : OPENROUTER PROCESSING
 36
 37      : OPENROUTER PROCESSING
 38
 39      data: {"id":"gen-1773945397-vXwGi8oe2Pu1tPhWFBqG","object":"chat.completion.chunk","created":1773945397,"model":"google/gemini-3.1-flash-lite-preview-20260303","provider":"Google","choices":[{"index":0,"delta":{"content":"","role":"assistant","reasoning":null,"reasoning_details":[{"type":"reasoning.encrypted","data":"AY89a195Y0+HaAqhhzh7Ftn/kaQm1mbI2DIUJEF/ivbMf4Ez5+eK1DaB2LIT89cnq2Q=","format":"google-gemini-v1","id":"tool_weather_JseIOiirEv9DOluhcBh6","index":0}]},"finish_reason":null,"native_finish_reason":null}]}
 40
 41      data: {"id":"gen-1773945397-vXwGi8oe2Pu1tPhWFBqG","object":"chat.completion.chunk","created":1773945397,"model":"google/gemini-3.1-flash-lite-preview-20260303","provider":"Google","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"tool_weather_JseIOiirEv9DOluhcBh6","type":"function","function":{"name":"weather","arguments":""}}]},"finish_reason":null,"native_finish_reason":null}]}
 42
 43      data: {"id":"gen-1773945397-vXwGi8oe2Pu1tPhWFBqG","object":"chat.completion.chunk","created":1773945397,"model":"google/gemini-3.1-flash-lite-preview-20260303","provider":"Google","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"function":{"arguments":"{\"location\":\"Florence, Italy\"}"}}]},"finish_reason":null,"native_finish_reason":null}]}
 44
 45      data: {"id":"gen-1773945397-vXwGi8oe2Pu1tPhWFBqG","object":"chat.completion.chunk","created":1773945397,"model":"google/gemini-3.1-flash-lite-preview-20260303","provider":"Google","choices":[{"index":0,"delta":{"content":"","role":"assistant","reasoning":null},"finish_reason":"tool_calls","native_finish_reason":"STOP"}]}
 46
 47      data: {"id":"gen-1773945397-vXwGi8oe2Pu1tPhWFBqG","object":"chat.completion.chunk","created":1773945397,"model":"google/gemini-3.1-flash-lite-preview-20260303","provider":"Google","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"tool_calls","native_finish_reason":"STOP"}],"usage":{"prompt_tokens":39,"completion_tokens":16,"total_tokens":55,"cost":0.00003375,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":0.00003375,"upstream_inference_prompt_cost":0.00000975,"upstream_inference_completions_cost":0.000024},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0,"audio_tokens":0}}}
 48
 49      data: [DONE]
 50
 51    headers:
 52      Content-Type:
 53      - text/event-stream
 54    status: 200 OK
 55    code: 200
 56    duration: 2.843115417s
 57- id: 1
 58  request:
 59    proto: HTTP/1.1
 60    proto_major: 1
 61    proto_minor: 1
 62    content_length: 1027
 63    host: ""
 64    body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence,Italy?","role":"user"},{"tool_calls":[{"id":"tool_weather_JseIOiirEv9DOluhcBh6","function":{"arguments":"{\"location\":\"Florence, Italy\"}","name":"weather"},"type":"function"}],"role":"assistant","reasoning_details":[{"data":"AY89a195Y0+HaAqhhzh7Ftn/kaQm1mbI2DIUJEF/ivbMf4Ez5+eK1DaB2LIT89cnq2Q=","format":"google-gemini-v1","id":"tool_weather_JseIOiirEv9DOluhcBh6","index":0,"type":"reasoning.encrypted"}]},{"content":"40 C","tool_call_id":"tool_weather_JseIOiirEv9DOluhcBh6","role":"tool"}],"model":"google/gemini-3.1-flash-lite-preview","max_tokens":4000,"stream_options":{"include_usage":true},"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"}],"usage":{"include":true},"stream":true}'
 65    headers:
 66      Accept:
 67      - application/json
 68      Content-Type:
 69      - application/json
 70      User-Agent:
 71      - Charm-Fantasy/0.15.0 (https://charm.land/fantasy)
 72    url: https://openrouter.ai/api/v1/chat/completions
 73    method: POST
 74  response:
 75    proto: HTTP/2.0
 76    proto_major: 2
 77    proto_minor: 0
 78    content_length: -1
 79    body: |+
 80      : OPENROUTER PROCESSING
 81
 82      : OPENROUTER PROCESSING
 83
 84      : OPENROUTER PROCESSING
 85
 86      : OPENROUTER PROCESSING
 87
 88      : OPENROUTER PROCESSING
 89
 90      : OPENROUTER PROCESSING
 91
 92      : OPENROUTER PROCESSING
 93
 94      data: {"id":"gen-1773945399-8bWyDDLWhPyFSaQlOcd9","object":"chat.completion.chunk","created":1773945399,"model":"google/gemini-3.1-flash-lite-preview-20260303","provider":"Google","choices":[{"index":0,"delta":{"content":"The weather","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 95
 96      data: {"id":"gen-1773945399-8bWyDDLWhPyFSaQlOcd9","object":"chat.completion.chunk","created":1773945399,"model":"google/gemini-3.1-flash-lite-preview-20260303","provider":"Google","choices":[{"index":0,"delta":{"content":" in Florence, Italy,","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 97
 98      data: {"id":"gen-1773945399-8bWyDDLWhPyFSaQlOcd9","object":"chat.completion.chunk","created":1773945399,"model":"google/gemini-3.1-flash-lite-preview-20260303","provider":"Google","choices":[{"index":0,"delta":{"content":" is currently 40°C.","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 99
100      data: {"id":"gen-1773945399-8bWyDDLWhPyFSaQlOcd9","object":"chat.completion.chunk","created":1773945399,"model":"google/gemini-3.1-flash-lite-preview-20260303","provider":"Google","choices":[{"index":0,"delta":{"content":"","role":"assistant","reasoning":null,"reasoning_details":[{"type":"reasoning.encrypted","data":"AY89a1+Ka9JkxfFogywc5shcRjkm5KIsFHylQ4DTSKSfz0vlhpZvMbmuDXajnxlKJLI=","format":"google-gemini-v1","index":0}]},"finish_reason":null,"native_finish_reason":null}]}
101
102      data: {"id":"gen-1773945399-8bWyDDLWhPyFSaQlOcd9","object":"chat.completion.chunk","created":1773945399,"model":"google/gemini-3.1-flash-lite-preview-20260303","provider":"Google","choices":[{"index":0,"delta":{"content":"","role":"assistant","reasoning":null},"finish_reason":"stop","native_finish_reason":"STOP"}]}
103
104      data: {"id":"gen-1773945399-8bWyDDLWhPyFSaQlOcd9","object":"chat.completion.chunk","created":1773945399,"model":"google/gemini-3.1-flash-lite-preview-20260303","provider":"Google","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"stop","native_finish_reason":"STOP"}],"usage":{"prompt_tokens":73,"completion_tokens":15,"total_tokens":88,"cost":0.00004075,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":0.00004075,"upstream_inference_prompt_cost":0.00001825,"upstream_inference_completions_cost":0.0000225},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0,"audio_tokens":0}}}
105
106      data: [DONE]
107
108    headers:
109      Content-Type:
110      - text/event-stream
111    status: 200 OK
112    code: 200
113    duration: 3.191008375s