thinking.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: 550
 10    host: generativelanguage.googleapis.com
 11    body: |
 12      {"contents":[{"parts":[{"text":"What's the weather in Florence, Italy?"}],"role":"user"}],"generationConfig":{"thinkingConfig":{"includeThoughts":true,"thinkingBudget":128}},"systemInstruction":{"parts":[{"text":"You are a helpful assistant"}],"role":"user"},"toolConfig":{"functionCallingConfig":{"mode":"AUTO"}},"tools":[{"functionDeclarations":[{"description":"Get weather information for a location","name":"weather","parameters":{"properties":{"location":{"description":"the city","type":"STRING"}},"required":["location"],"type":"OBJECT"}}]}]}
 13    headers:
 14      Content-Type:
 15      - application/json
 16      User-Agent:
 17      - Charm-Fantasy/0.12.2 (https://charm.land/fantasy)
 18      - google-genai-sdk/1.49.0 gl-go/go1.26.1
 19    url: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent
 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: |
 28      {
 29        "candidates": [
 30          {
 31            "content": {
 32              "parts": [
 33                {
 34                  "text": "**Weather Check in Florence**\n\nOkay, so the user wants the weather, specifically in Florence, Italy. That's straightforward; the input string \"Florence, Italy\" clearly indicates the desired location. We've got a `weather.get_weather` function that's perfectly suited for this, and it takes a `location` parameter. Piece of cake. All I need to do is map \"Florence, Italy\" to that `location` parameter. Done.\n",
 35                  "thought": true
 36                },
 37                {
 38                  "functionCall": {
 39                    "name": "weather",
 40                    "args": {
 41                      "location": "Florence, Italy"
 42                    }
 43                  },
 44                  "thoughtSignature": "CpwCAb4+9vvjWTfN/coHAtL6RNHuB/D9RcoYaEbOXifBzo42rnPBxgLXlfKKVlWjSujb7uS5VqrErCz1riiaQMDIWmUT6eO5hy397uPpmJTyuud7DY+yEa0wglfCTh+KNPlWvZlDfWGMAGhoI0sUcA1IwSGEmcLHyQ7xFZ30Ze1YxbNO+OGSyJn31RDaivuHWcBLBEPKDsHbJcHs9NJH+kIarQkNTSJAhGwNSPE6hXBtoFpGDrCfFKo7X1Psc3IaJeubv+h1Ox3FS4OErR/Q/sNj52+JUUbRWJ8G6aptVbvzNtHFZMMIeljaEMlxGiBKUiSNeudWDCoPII/q1NY/YwBExXWwxGET1pj0o0YV5vXTw81gkDiyqHrKaWAzkYg="
 45                }
 46              ],
 47              "role": "model"
 48            },
 49            "finishReason": "STOP",
 50            "index": 0,
 51            "finishMessage": "Model generated function call(s)."
 52          }
 53        ],
 54        "usageMetadata": {
 55          "promptTokenCount": 54,
 56          "candidatesTokenCount": 15,
 57          "totalTokenCount": 133,
 58          "promptTokensDetails": [
 59            {
 60              "modality": "TEXT",
 61              "tokenCount": 54
 62            }
 63          ],
 64          "thoughtsTokenCount": 64
 65        },
 66        "modelVersion": "gemini-2.5-pro",
 67        "responseId": "1ACzaaq1BaKDz7IPv92N6A8"
 68      }
 69    headers:
 70      Content-Type:
 71      - application/json; charset=UTF-8
 72    status: 200 OK
 73    code: 200
 74    duration: 3.139889041s
 75- id: 1
 76  request:
 77    proto: HTTP/1.1
 78    proto_major: 1
 79    proto_minor: 1
 80    content_length: 1170
 81    host: generativelanguage.googleapis.com
 82    body: |
 83      {"contents":[{"parts":[{"text":"What's the weather in Florence, Italy?"}],"role":"user"},{"parts":[{"functionCall":{"args":{"location":"Florence, Italy"},"id":"1","name":"weather"},"thoughtSignature":"CpwCAb4+9vvjWTfN/coHAtL6RNHuB/D9RcoYaEbOXifBzo42rnPBxgLXlfKKVlWjSujb7uS5VqrErCz1riiaQMDIWmUT6eO5hy397uPpmJTyuud7DY+yEa0wglfCTh+KNPlWvZlDfWGMAGhoI0sUcA1IwSGEmcLHyQ7xFZ30Ze1YxbNO+OGSyJn31RDaivuHWcBLBEPKDsHbJcHs9NJH+kIarQkNTSJAhGwNSPE6hXBtoFpGDrCfFKo7X1Psc3IaJeubv+h1Ox3FS4OErR/Q/sNj52+JUUbRWJ8G6aptVbvzNtHFZMMIeljaEMlxGiBKUiSNeudWDCoPII/q1NY/YwBExXWwxGET1pj0o0YV5vXTw81gkDiyqHrKaWAzkYg="}],"role":"model"},{"parts":[{"functionResponse":{"id":"1","name":"weather","response":{"result":"40 C"}}}],"role":"user"}],"generationConfig":{"thinkingConfig":{"includeThoughts":true,"thinkingBudget":128}},"systemInstruction":{"parts":[{"text":"You are a helpful assistant"}],"role":"user"},"toolConfig":{"functionCallingConfig":{"mode":"AUTO"}},"tools":[{"functionDeclarations":[{"description":"Get weather information for a location","name":"weather","parameters":{"properties":{"location":{"description":"the city","type":"STRING"}},"required":["location"],"type":"OBJECT"}}]}]}
 84    headers:
 85      Content-Type:
 86      - application/json
 87      User-Agent:
 88      - Charm-Fantasy/0.12.2 (https://charm.land/fantasy)
 89      - google-genai-sdk/1.49.0 gl-go/go1.26.1
 90    url: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent
 91    method: POST
 92  response:
 93    proto: HTTP/2.0
 94    proto_major: 2
 95    proto_minor: 0
 96    content_length: -1
 97    uncompressed: true
 98    body: |
 99      {
100        "candidates": [
101          {
102            "content": {
103              "parts": [
104                {
105                  "text": "The weather in Florence, Italy is 40 C. \n"
106                }
107              ],
108              "role": "model"
109            },
110            "finishReason": "STOP",
111            "index": 0
112          }
113        ],
114        "usageMetadata": {
115          "promptTokenCount": 84,
116          "candidatesTokenCount": 12,
117          "totalTokenCount": 96,
118          "promptTokensDetails": [
119            {
120              "modality": "TEXT",
121              "tokenCount": 84
122            }
123          ]
124        },
125        "modelVersion": "gemini-2.5-pro",
126        "responseId": "1gCzabW2FLznz7IP7YS00Ak"
127      }
128    headers:
129      Content-Type:
130      - application/json; charset=UTF-8
131    status: 200 OK
132    code: 200
133    duration: 2.338408583s