Skip to content

feat(prompts): add tool function support #3153

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Jul 21, 2025
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
interactions:
- request:
body: '{"messages": [{"role": "user", "content": "Tell me a joke about OpenTelemetry,
pirate style"}], "model": "gpt-3.5-turbo", "frequency_penalty": 0.0, "presence_penalty":
0.0, "temperature": 1.0, "top_p": 1.0}'
body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry,
pirate style"}],"model":"gpt-3.5-turbo","frequency_penalty":0.0,"presence_penalty":0.0,"temperature":1.0,"top_p":1.0}'
headers:
accept:
- application/json
Expand All @@ -11,13 +10,15 @@ interactions:
connection:
- keep-alive
content-length:
- '206'
- '192'
content-type:
- application/json
host:
- api.openai.com
traceparent:
- 00-37210d668eeb33fe3c5822a666f6cd24-07feebe1c6e184df-01
user-agent:
- OpenAI/Python 1.12.0
- OpenAI/Python 1.59.7
x-stainless-arch:
- arm64
x-stainless-async:
Expand All @@ -27,175 +28,82 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.12.0
- 1.59.7
x-stainless-retry-count:
- '0'
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.9.5
- 3.12.10
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAA1SRMW/bMBCFd/2Kyy1d7ECyrNTxEsRjO7QFiqZAVRg0dZaYkjyWPLUxAv/3grJj
owuH9/E9vju+FgBoOlwD6kGJdsHOV39/f/nw7U/ln5cfx9Vh82IWy8/qe0n0lDY4yw7ePZOWN9et
ZhcsiWF/wjqSEsqp1fvyvqybRV1NwHFHNtv6IPP6tpnLGHc8L6tFc3YObDQlXMOPAgDgdTpzR9/R
C66hnL0pjlJSPeH6cgkAI9usoErJJFFecHaFmr2Qn2o/DQfoTAcyEAQTlRCMieBTIP+VLDmSeHiA
1rd+Q1plNBB4oo46EIYWnQotAo8yRUgklcZIoAdK8i5Bi8GOvqO45+iU19Qi5FCj0w08xhj74QbP
zY6XkSz3IfIuj+9Hay/63niThm1+hH2un4TDyX4sAH5Oqxv/2waGyC7IVvgX+RxYrU5xeP2sK6zr
MxQWZa96UxXnfpgOScht98b3FEM0pz3uw3Z1VzV36n6pSiyOxT8AAAD//wMALyBo+lECAAA=
H4sIAAAAAAAAA4xTTWsbMRC976+Y6GwHO45p8KXEPacuxaWBEhZZmt1VopXEaBR3Cf7vReuPtdMW
ctFh3rzRm/ektwJAGC0WIFQjWbXBjpevXyd+/dC0j8+bx2/hy8uPZfNQraNZfV8lMcoMv3lGxUfW
tfJtsMjGuz2sCCVjnjr9NJ9Npjd389seaL1Gm2l14PHsej7mRBs/nkxv5gdm443CKBbwqwAAeOvP
rNFp/C0WMBkdKy3GKGsUi1MTgCBvc0XIGE1k6ViMBlB5x+h62T+bDrTRwA1CMCQZIbIkhhSNq2EV
0K3RYotM3WdYopIpYu7uYIuEwIZQg69A2q3sIkSUpJpMrTzBJpFBDUwoYyKEreHGJwbpOlA2YbyC
eyIaQSsZu6tzjYRVijJ75JK1Z4B0zrPMHvfuPB2Q3ckP6+tAfhPfUUVlnIlNmbV4l3eP7IPo0V0B
8NT7ni6sFIF8G7hk/4L9ddO7/TgxJD2As0Mmgj1LO9Rvj6SLaaVGlsbGs9yEkqpBPTCHkGXSxp8B
xdnOf4v51+z93sbVHxk/AEphYNRlINRGXS48tBHmf/C/tpPHvWARkV6NwpINUs5BYyWT3b9QEbvI
2JaVcTVSINM/05xjsSv+AAAA//8DAFN4U72lAwAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 85c04495087659e9-MXP
Cache-Control:
- no-cache, must-revalidate
- 96224d016ea66763-ATL
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 27 Feb 2024 12:00:32 GMT
- Sun, 20 Jul 2025 12:00:54 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=LoJ2ZkCANwIqvi6X3zsB_pSZBAQV8b8_h6miKLqayFA-1709035232-1.0-AXd2vlSgAt1d5qFXyzZa1shIzwyXYdM4w3Q/BIEZg6/X+kjSX9gtdZ1JqATyO5wgV/Y3qvZkVEyORfaQrvAaufY=;
path=/; expires=Tue, 27-Feb-24 12:30:32 GMT; domain=.api.openai.com; HttpOnly;
- __cf_bm=H20W0JJarUpRkr88Sl8ViyJe3yXNpW7TTYHeb.KYut0-1753012854-1.0.1.1-dYEIQTN1zh.YlgOfUznU5VLuE6ez1tSiJkMTdxQ_X7v8wEpqhvOWojuF4.YeITJKT0zevj8MEZujoILnM2hweJr1ZBKf6xZ6DVsvHkWCGCw;
path=/; expires=Sun, 20-Jul-25 12:30:54 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=O7d.J_kaKidtjrPfjEuOEWuKBIYColpIz74xLCFIKSE-1709035232387-0.0-604800000;
- _cfuvid=nZelhdYblEmG5UYeD8r5SM04mNPVMFC_sANjFLDUm9A-1753012854749-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
X-Content-Type-Options:
- nosniff
access-control-expose-headers:
- X-Request-ID
alt-svc:
- h3=":443"; ma=86400
openai-model:
- gpt-3.5-turbo-0125
openai-organization:
- traceloop
openai-processing-ms:
- '670'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15724800; includeSubDomains
x-ratelimit-limit-requests:
- '5000'
x-ratelimit-limit-tokens:
- '160000'
x-ratelimit-remaining-requests:
- '4999'
x-ratelimit-remaining-tokens:
- '159971'
x-ratelimit-reset-requests:
- 12ms
x-ratelimit-reset-tokens:
- 10ms
x-request-id:
- req_47026d43d59fb48f5b82610faec6dc0f
status:
code: 200
message: OK
- request:
body: '{"messages": [{"role": "user", "content": "Tell me a joke about OpenTelemetry,
pirate style"}], "model": "gpt-3.5-turbo", "frequency_penalty": 0.0, "presence_penalty":
0.0, "temperature": 1.0, "top_p": 1.0}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '206'
content-type:
- application/json
cookie:
- __cf_bm=LoJ2ZkCANwIqvi6X3zsB_pSZBAQV8b8_h6miKLqayFA-1709035232-1.0-AXd2vlSgAt1d5qFXyzZa1shIzwyXYdM4w3Q/BIEZg6/X+kjSX9gtdZ1JqATyO5wgV/Y3qvZkVEyORfaQrvAaufY=;
_cfuvid=O7d.J_kaKidtjrPfjEuOEWuKBIYColpIz74xLCFIKSE-1709035232387-0.0-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.12.0
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.12.0
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.9.5
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAA1SRT28TMRTE7/spHj4n1W7SLUkuCA60AqQCQq0ERdGL/Xbt1v+w3zZEVb47crJN
xMWH+XlG4/FLBSCMEisQUiNLF+10sf3z7bP8dF1/f1J3z1/e//wY8evtdX/TtTMvJsURNo8k+dV1
IYOLltiEEctEyFRSm7f1sp63s/nsAFxQZIutjzydX7RTHtImTOtm1o5OHYykLFbwqwIAeDmcpaNX
9FesoJ68Ko5yxp7E6nQJQKRgiyIwZ5MZPYvJGcrgmfyh9r3egTIKWBNEk5AJhkxwG8n/IEuOOO3e
wYN/8B9IYkGGQZONpEAbBx6fTV9cJYATodSUwpBhi0wpQ+hAmczJbAYmBZxQGt/D1rAGwkwTwJQS
OGTavRFjxf3pbTb0MYVN2cEP1p70zniT9ToR5uDLOzKHeLTvK4Dfhw2H/2YRMQUXec3hiXwJbBbH
OHH+tTOcNyPkwGjP+uWyGvuJvMtMbt0Z31OKyRwH7eJ6cdW0V7i8xFpU++ofAAAA//8DALH1FP5a
AgAA
headers:
CF-Cache-Status:
cf-cache-status:
- DYNAMIC
CF-RAY:
- 85c0449a999e59e9-MXP
Cache-Control:
- no-cache, must-revalidate
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 27 Feb 2024 12:00:33 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400
openai-model:
- gpt-3.5-turbo-0125
openai-organization:
- traceloop
openai-processing-ms:
- '905'
- '653'
openai-project:
- proj_tzz1TbPPOXaf6j9tEkVUBIAa
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15724800; includeSubDomains
- max-age=31536000; includeSubDomains; preload
x-envoy-upstream-service-time:
- '658'
x-ratelimit-limit-requests:
- '5000'
- '10000'
x-ratelimit-limit-tokens:
- '160000'
- '50000000'
x-ratelimit-remaining-requests:
- '4999'
- '9999'
x-ratelimit-remaining-tokens:
- '159971'
- '49999985'
x-ratelimit-reset-requests:
- 12ms
- 6ms
x-ratelimit-reset-tokens:
- 10ms
- 0s
x-request-id:
- req_f362faa68fe4f881612cbf58af4e0a73
- req_90ff1803f952197b695580d69fb2d9c4
status:
code: 200
message: OK
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
interactions:
- request:
body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry,
pirate style"}],"model":"gpt-4o-mini","frequency_penalty":0.0,"presence_penalty":0.0,"response_format":{"type":"json_schema","json_schema":{"name":"joke","schema":{"type":"object","properties":{"joke":{"type":"string","description":"The
joke"}}}}},"temperature":1.0,"top_p":1.0}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '353'
content-type:
- application/json
host:
- api.openai.com
traceparent:
- 00-39ef40ef0d31ad400d44b4c35b6e22d4-5fb770dc605aec85-01
user-agent:
- OpenAI/Python 1.59.7
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.59.7
x-stainless-retry-count:
- '0'
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.10
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//jFNdi9swEHz3r9jqpRDiko/LJeSlcAfl2oce3F1baH0YRd7Ym8iSKq3T
piH/vcjJxbn2Cn2xYGdnNDsr7xIAQYWYg1CVZFU7nV5tPg6+rx/ubq8+3Nyvrsdfpzfv3w3uPn8y
7v6X6EeGXaxQ8RPrjbK108hkzQFWHiVjVB1OJ+PBcDSbXLZAbQvUkVY6Ti9sWpOhdDQYXaSDaTqc
HdmVJYVBzOFbAgCwa7/Rpynwp5jDoP9UqTEEWaKYn5oAhLc6VoQMgQJLw6LfgcoaRtNa32ViZdeY
iXkmvlRbKKgArhAceckIHpdNQGAL8bh1aB5QY43st28Bssy8vpYRqRCs0VtYoCbcYAFkIEjSZMpW
rldRWUFAGXrwg7iyDYM0W+ixlwp7rzKxPzfYXitjSKbR+gyQxliWMeQ2mscjsj+FoW3pvF2EP6hi
SYZClXuUwZo4eGDrRIvuE4DHNvTmWY7CeVs7ztmusb1uMjrIiW7VHTi+PIJsWequPpv1X1DLC2RJ
OpwtTSipKiw6Zrdh2RRkz4DkbOa/zbykfZibTPk/8h2gFDrGInceC1LPB+7aPMYf4V9tp4xbwyKg
35DCnAl93EOBS9now/MUYRsY63xJpkTvPLVvNO4x2Se/AQAA//8DACPXtwimAwAA
headers:
CF-RAY:
- 96224d0f5ce2bd3f-ATL
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Sun, 20 Jul 2025 12:00:57 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=cwmqUlXe5pDl.vUChZNIKR7dejmJK3PHR9Qac9D1olw-1753012857-1.0.1.1-Ja9YveD1M0RyHT_LFW8aUZoTgeupKJ7azyzam23AaYnxINFZQzdyI7e3pH41DhrwvKeWAxEuUWFpU.66BB2gJukhaI7m4zvN6Q_LCdAZjvI;
path=/; expires=Sun, 20-Jul-25 12:30:57 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=lDau0Xl34A4N0ZlyD8AIGKSZg8RAmiOUbJ1.B64mZ6Q-1753012857146-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-expose-headers:
- X-Request-ID
alt-svc:
- h3=":443"; ma=86400
cf-cache-status:
- DYNAMIC
openai-organization:
- traceloop
openai-processing-ms:
- '836'
openai-project:
- proj_tzz1TbPPOXaf6j9tEkVUBIAa
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains; preload
x-envoy-upstream-service-time:
- '842'
x-ratelimit-limit-requests:
- '30000'
x-ratelimit-limit-tokens:
- '150000000'
x-ratelimit-remaining-requests:
- '29999'
x-ratelimit-remaining-tokens:
- '149999985'
x-ratelimit-reset-requests:
- 2ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_f65c518acc5ffa774fa2dba56dcfa969
status:
code: 200
message: OK
version: 1
Loading