multi_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: 897
 10    host: ""
 11    body: '{"messages":[{"content":"You are a helpful assistant. Always use both add and multiply at the same time.","role":"system"},{"content":"Add and multiply the number 2 and 3","role":"user"}],"model":"openai/gpt-5.4-nano","max_completion_tokens":4000,"stream_options":{"include_usage":true},"tool_choice":"auto","tools":[{"function":{"name":"add","strict":false,"description":"Add two numbers","parameters":{"properties":{"a":{"description":"first number","type":"integer"},"b":{"description":"second number","type":"integer"}},"required":["a","b"],"type":"object"}},"type":"function"},{"function":{"name":"multiply","strict":false,"description":"Multiply two numbers","parameters":{"properties":{"a":{"description":"first number","type":"integer"},"b":{"description":"second number","type":"integer"}},"required":["a","b"],"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      data: {"id":"gen-1773945383-68FpvFnqJ5V1GOao5iM6","object":"chat.completion.chunk","created":1773945383,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"call_RyRtXc5TxuhGTghDihBOXNar","type":"function","function":{"name":"add","arguments":""}}]},"finish_reason":null,"native_finish_reason":null}]}
 30
 31      data: {"id":"gen-1773945383-68FpvFnqJ5V1GOao5iM6","object":"chat.completion.chunk","created":1773945383,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null,"native_finish_reason":null}]}
 32
 33      data: {"id":"gen-1773945383-68FpvFnqJ5V1GOao5iM6","object":"chat.completion.chunk","created":1773945383,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"function":{"arguments":"{\"a\":2,\"b\":3}"}}]},"finish_reason":null,"native_finish_reason":null}]}
 34
 35      data: {"id":"gen-1773945383-68FpvFnqJ5V1GOao5iM6","object":"chat.completion.chunk","created":1773945383,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"call_JmyBVHKW2AnWeep5UITLC9Wx","type":"function","function":{"name":"multiply","arguments":""}}]},"finish_reason":null,"native_finish_reason":null}]}
 36
 37      data: {"id":"gen-1773945383-68FpvFnqJ5V1GOao5iM6","object":"chat.completion.chunk","created":1773945383,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"function":{"arguments":""}}]},"finish_reason":null,"native_finish_reason":null}]}
 38
 39      data: {"id":"gen-1773945383-68FpvFnqJ5V1GOao5iM6","object":"chat.completion.chunk","created":1773945383,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"function":{"arguments":"{\"a\":2,\"b\":3}"}}]},"finish_reason":null,"native_finish_reason":null}]}
 40
 41      data: {"id":"gen-1773945383-68FpvFnqJ5V1GOao5iM6","object":"chat.completion.chunk","created":1773945383,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"tool_calls","native_finish_reason":"completed"}]}
 42
 43      data: {"id":"gen-1773945383-68FpvFnqJ5V1GOao5iM6","object":"chat.completion.chunk","created":1773945383,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"tool_calls","native_finish_reason":"completed"}],"usage":{"prompt_tokens":109,"completion_tokens":54,"total_tokens":163,"cost":0.0000893,"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.0000893,"upstream_inference_prompt_cost":0.0000218,"upstream_inference_completions_cost":0.0000675},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0,"audio_tokens":0}}}
 44
 45      data: [DONE]
 46
 47    headers:
 48      Content-Type:
 49      - text/event-stream
 50    status: 200 OK
 51    code: 200
 52    duration: 449.3595ms
 53- id: 1
 54  request:
 55    proto: HTTP/1.1
 56    proto_major: 1
 57    proto_minor: 1
 58    content_length: 1322
 59    host: ""
 60    body: '{"messages":[{"content":"You are a helpful assistant. Always use both add and multiply at the same time.","role":"system"},{"content":"Add and multiply the number 2 and 3","role":"user"},{"tool_calls":[{"id":"call_RyRtXc5TxuhGTghDihBOXNar","function":{"arguments":"{\"a\":2,\"b\":3}","name":"add"},"type":"function"},{"id":"call_JmyBVHKW2AnWeep5UITLC9Wx","function":{"arguments":"{\"a\":2,\"b\":3}","name":"multiply"},"type":"function"}],"role":"assistant"},{"content":"5","tool_call_id":"call_RyRtXc5TxuhGTghDihBOXNar","role":"tool"},{"content":"6","tool_call_id":"call_JmyBVHKW2AnWeep5UITLC9Wx","role":"tool"}],"model":"openai/gpt-5.4-nano","max_completion_tokens":4000,"stream_options":{"include_usage":true},"tool_choice":"auto","tools":[{"function":{"name":"add","strict":false,"description":"Add two numbers","parameters":{"properties":{"a":{"description":"first number","type":"integer"},"b":{"description":"second number","type":"integer"}},"required":["a","b"],"type":"object"}},"type":"function"},{"function":{"name":"multiply","strict":false,"description":"Multiply two numbers","parameters":{"properties":{"a":{"description":"first number","type":"integer"},"b":{"description":"second number","type":"integer"}},"required":["a","b"],"type":"object"}},"type":"function"}],"usage":{"include":true},"stream":true}'
 61    headers:
 62      Accept:
 63      - application/json
 64      Content-Type:
 65      - application/json
 66      User-Agent:
 67      - Charm-Fantasy/0.15.0 (https://charm.land/fantasy)
 68    url: https://openrouter.ai/api/v1/chat/completions
 69    method: POST
 70  response:
 71    proto: HTTP/2.0
 72    proto_major: 2
 73    proto_minor: 0
 74    content_length: -1
 75    body: |+
 76      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"-","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 77
 78      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" **","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 79
 80      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"2","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 81
 82      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" +","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 83
 84      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" ","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 85
 86      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"3","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 87
 88      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" =","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 89
 90      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" ","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 91
 92      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"5","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 93
 94      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"**\n","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 95
 96      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"-","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 97
 98      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" **","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
 99
100      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"2","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
101
102      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" ×","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
103
104      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" ","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
105
106      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"3","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
107
108      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" =","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
109
110      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":" ","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
111
112      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"6","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
113
114      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"**","role":"assistant"},"finish_reason":null,"native_finish_reason":null}]}
115
116      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"stop","native_finish_reason":"completed"}]}
117
118      data: {"id":"gen-1773945384-CDS0bQpWtuMHu6nuk27q","object":"chat.completion.chunk","created":1773945384,"model":"openai/gpt-5.4-nano-20260317","provider":"OpenAI","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"stop","native_finish_reason":"completed"}],"usage":{"prompt_tokens":183,"completion_tokens":24,"total_tokens":207,"cost":0.0000666,"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.0000666,"upstream_inference_prompt_cost":0.0000366,"upstream_inference_completions_cost":0.00003},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0,"audio_tokens":0}}}
119
120      data: [DONE]
121
122    headers:
123      Content-Type:
124      - text/event-stream
125    status: 200 OK
126    code: 200
127    duration: 388.096708ms