Skip to content

Commit 865f5cb

Browse files
feat(prompts): add tool function support (#3153)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
1 parent 1fe6257 commit 865f5cb

File tree

6 files changed

+478
-135
lines changed

6 files changed

+478
-135
lines changed

packages/traceloop-sdk/tests/cassettes/test_prompt_management/test_prompt_management.yaml

Lines changed: 42 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
interactions:
22
- request:
3-
body: '{"messages": [{"role": "user", "content": "Tell me a joke about OpenTelemetry,
4-
pirate style"}], "model": "gpt-3.5-turbo", "frequency_penalty": 0.0, "presence_penalty":
5-
0.0, "temperature": 1.0, "top_p": 1.0}'
3+
body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry,
4+
pirate style"}],"model":"gpt-3.5-turbo","frequency_penalty":0.0,"presence_penalty":0.0,"temperature":1.0,"top_p":1.0}'
65
headers:
76
accept:
87
- application/json
@@ -11,13 +10,15 @@ interactions:
1110
connection:
1211
- keep-alive
1312
content-length:
14-
- '206'
13+
- '192'
1514
content-type:
1615
- application/json
1716
host:
1817
- api.openai.com
18+
traceparent:
19+
- 00-37210d668eeb33fe3c5822a666f6cd24-07feebe1c6e184df-01
1920
user-agent:
20-
- OpenAI/Python 1.12.0
21+
- OpenAI/Python 1.59.7
2122
x-stainless-arch:
2223
- arm64
2324
x-stainless-async:
@@ -27,175 +28,82 @@ interactions:
2728
x-stainless-os:
2829
- MacOS
2930
x-stainless-package-version:
30-
- 1.12.0
31+
- 1.59.7
32+
x-stainless-retry-count:
33+
- '0'
3134
x-stainless-runtime:
3235
- CPython
3336
x-stainless-runtime-version:
34-
- 3.9.5
37+
- 3.12.10
3538
method: POST
3639
uri: https://api.openai.com/v1/chat/completions
3740
response:
3841
body:
3942
string: !!binary |
40-
H4sIAAAAAAAAA1SRMW/bMBCFd/2Kyy1d7ECyrNTxEsRjO7QFiqZAVRg0dZaYkjyWPLUxAv/3grJj
41-
owuH9/E9vju+FgBoOlwD6kGJdsHOV39/f/nw7U/ln5cfx9Vh82IWy8/qe0n0lDY4yw7ePZOWN9et
42-
ZhcsiWF/wjqSEsqp1fvyvqybRV1NwHFHNtv6IPP6tpnLGHc8L6tFc3YObDQlXMOPAgDgdTpzR9/R
43-
C66hnL0pjlJSPeH6cgkAI9usoErJJFFecHaFmr2Qn2o/DQfoTAcyEAQTlRCMieBTIP+VLDmSeHiA
44-
1rd+Q1plNBB4oo46EIYWnQotAo8yRUgklcZIoAdK8i5Bi8GOvqO45+iU19Qi5FCj0w08xhj74QbP
45-
zY6XkSz3IfIuj+9Hay/63niThm1+hH2un4TDyX4sAH5Oqxv/2waGyC7IVvgX+RxYrU5xeP2sK6zr
46-
MxQWZa96UxXnfpgOScht98b3FEM0pz3uw3Z1VzV36n6pSiyOxT8AAAD//wMALyBo+lECAAA=
43+
H4sIAAAAAAAAA4xTTWsbMRC976+Y6GwHO45p8KXEPacuxaWBEhZZmt1VopXEaBR3Cf7vReuPtdMW
44+
ctFh3rzRm/ektwJAGC0WIFQjWbXBjpevXyd+/dC0j8+bx2/hy8uPZfNQraNZfV8lMcoMv3lGxUfW
45+
tfJtsMjGuz2sCCVjnjr9NJ9Npjd389seaL1Gm2l14PHsej7mRBs/nkxv5gdm443CKBbwqwAAeOvP
46+
rNFp/C0WMBkdKy3GKGsUi1MTgCBvc0XIGE1k6ViMBlB5x+h62T+bDrTRwA1CMCQZIbIkhhSNq2EV
47+
0K3RYotM3WdYopIpYu7uYIuEwIZQg69A2q3sIkSUpJpMrTzBJpFBDUwoYyKEreHGJwbpOlA2YbyC
48+
eyIaQSsZu6tzjYRVijJ75JK1Z4B0zrPMHvfuPB2Q3ckP6+tAfhPfUUVlnIlNmbV4l3eP7IPo0V0B
49+
8NT7ni6sFIF8G7hk/4L9ddO7/TgxJD2As0Mmgj1LO9Rvj6SLaaVGlsbGs9yEkqpBPTCHkGXSxp8B
50+
xdnOf4v51+z93sbVHxk/AEphYNRlINRGXS48tBHmf/C/tpPHvWARkV6NwpINUs5BYyWT3b9QEbvI
51+
2JaVcTVSINM/05xjsSv+AAAA//8DAFN4U72lAwAA
4752
headers:
48-
CF-Cache-Status:
49-
- DYNAMIC
5053
CF-RAY:
51-
- 85c04495087659e9-MXP
52-
Cache-Control:
53-
- no-cache, must-revalidate
54+
- 96224d016ea66763-ATL
5455
Connection:
5556
- keep-alive
5657
Content-Encoding:
5758
- gzip
5859
Content-Type:
5960
- application/json
6061
Date:
61-
- Tue, 27 Feb 2024 12:00:32 GMT
62+
- Sun, 20 Jul 2025 12:00:54 GMT
6263
Server:
6364
- cloudflare
6465
Set-Cookie:
65-
- __cf_bm=LoJ2ZkCANwIqvi6X3zsB_pSZBAQV8b8_h6miKLqayFA-1709035232-1.0-AXd2vlSgAt1d5qFXyzZa1shIzwyXYdM4w3Q/BIEZg6/X+kjSX9gtdZ1JqATyO5wgV/Y3qvZkVEyORfaQrvAaufY=;
66-
path=/; expires=Tue, 27-Feb-24 12:30:32 GMT; domain=.api.openai.com; HttpOnly;
66+
- __cf_bm=H20W0JJarUpRkr88Sl8ViyJe3yXNpW7TTYHeb.KYut0-1753012854-1.0.1.1-dYEIQTN1zh.YlgOfUznU5VLuE6ez1tSiJkMTdxQ_X7v8wEpqhvOWojuF4.YeITJKT0zevj8MEZujoILnM2hweJr1ZBKf6xZ6DVsvHkWCGCw;
67+
path=/; expires=Sun, 20-Jul-25 12:30:54 GMT; domain=.api.openai.com; HttpOnly;
6768
Secure; SameSite=None
68-
- _cfuvid=O7d.J_kaKidtjrPfjEuOEWuKBIYColpIz74xLCFIKSE-1709035232387-0.0-604800000;
69+
- _cfuvid=nZelhdYblEmG5UYeD8r5SM04mNPVMFC_sANjFLDUm9A-1753012854749-0.0.1.1-604800000;
6970
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
7071
Transfer-Encoding:
7172
- chunked
72-
access-control-allow-origin:
73-
- '*'
73+
X-Content-Type-Options:
74+
- nosniff
75+
access-control-expose-headers:
76+
- X-Request-ID
7477
alt-svc:
7578
- h3=":443"; ma=86400
76-
openai-model:
77-
- gpt-3.5-turbo-0125
78-
openai-organization:
79-
- traceloop
80-
openai-processing-ms:
81-
- '670'
82-
openai-version:
83-
- '2020-10-01'
84-
strict-transport-security:
85-
- max-age=15724800; includeSubDomains
86-
x-ratelimit-limit-requests:
87-
- '5000'
88-
x-ratelimit-limit-tokens:
89-
- '160000'
90-
x-ratelimit-remaining-requests:
91-
- '4999'
92-
x-ratelimit-remaining-tokens:
93-
- '159971'
94-
x-ratelimit-reset-requests:
95-
- 12ms
96-
x-ratelimit-reset-tokens:
97-
- 10ms
98-
x-request-id:
99-
- req_47026d43d59fb48f5b82610faec6dc0f
100-
status:
101-
code: 200
102-
message: OK
103-
- request:
104-
body: '{"messages": [{"role": "user", "content": "Tell me a joke about OpenTelemetry,
105-
pirate style"}], "model": "gpt-3.5-turbo", "frequency_penalty": 0.0, "presence_penalty":
106-
0.0, "temperature": 1.0, "top_p": 1.0}'
107-
headers:
108-
accept:
109-
- application/json
110-
accept-encoding:
111-
- gzip, deflate
112-
connection:
113-
- keep-alive
114-
content-length:
115-
- '206'
116-
content-type:
117-
- application/json
118-
cookie:
119-
- __cf_bm=LoJ2ZkCANwIqvi6X3zsB_pSZBAQV8b8_h6miKLqayFA-1709035232-1.0-AXd2vlSgAt1d5qFXyzZa1shIzwyXYdM4w3Q/BIEZg6/X+kjSX9gtdZ1JqATyO5wgV/Y3qvZkVEyORfaQrvAaufY=;
120-
_cfuvid=O7d.J_kaKidtjrPfjEuOEWuKBIYColpIz74xLCFIKSE-1709035232387-0.0-604800000
121-
host:
122-
- api.openai.com
123-
user-agent:
124-
- OpenAI/Python 1.12.0
125-
x-stainless-arch:
126-
- arm64
127-
x-stainless-async:
128-
- 'false'
129-
x-stainless-lang:
130-
- python
131-
x-stainless-os:
132-
- MacOS
133-
x-stainless-package-version:
134-
- 1.12.0
135-
x-stainless-runtime:
136-
- CPython
137-
x-stainless-runtime-version:
138-
- 3.9.5
139-
method: POST
140-
uri: https://api.openai.com/v1/chat/completions
141-
response:
142-
body:
143-
string: !!binary |
144-
H4sIAAAAAAAAA1SRT28TMRTE7/spHj4n1W7SLUkuCA60AqQCQq0ERdGL/Xbt1v+w3zZEVb47crJN
145-
xMWH+XlG4/FLBSCMEisQUiNLF+10sf3z7bP8dF1/f1J3z1/e//wY8evtdX/TtTMvJsURNo8k+dV1
146-
IYOLltiEEctEyFRSm7f1sp63s/nsAFxQZIutjzydX7RTHtImTOtm1o5OHYykLFbwqwIAeDmcpaNX
147-
9FesoJ68Ko5yxp7E6nQJQKRgiyIwZ5MZPYvJGcrgmfyh9r3egTIKWBNEk5AJhkxwG8n/IEuOOO3e
148-
wYN/8B9IYkGGQZONpEAbBx6fTV9cJYATodSUwpBhi0wpQ+hAmczJbAYmBZxQGt/D1rAGwkwTwJQS
149-
OGTavRFjxf3pbTb0MYVN2cEP1p70zniT9ToR5uDLOzKHeLTvK4Dfhw2H/2YRMQUXec3hiXwJbBbH
150-
OHH+tTOcNyPkwGjP+uWyGvuJvMtMbt0Z31OKyRwH7eJ6cdW0V7i8xFpU++ofAAAA//8DALH1FP5a
151-
AgAA
152-
headers:
153-
CF-Cache-Status:
79+
cf-cache-status:
15480
- DYNAMIC
155-
CF-RAY:
156-
- 85c0449a999e59e9-MXP
157-
Cache-Control:
158-
- no-cache, must-revalidate
159-
Connection:
160-
- keep-alive
161-
Content-Encoding:
162-
- gzip
163-
Content-Type:
164-
- application/json
165-
Date:
166-
- Tue, 27 Feb 2024 12:00:33 GMT
167-
Server:
168-
- cloudflare
169-
Transfer-Encoding:
170-
- chunked
171-
access-control-allow-origin:
172-
- '*'
173-
alt-svc:
174-
- h3=":443"; ma=86400
175-
openai-model:
176-
- gpt-3.5-turbo-0125
17781
openai-organization:
17882
- traceloop
17983
openai-processing-ms:
180-
- '905'
84+
- '653'
85+
openai-project:
86+
- proj_tzz1TbPPOXaf6j9tEkVUBIAa
18187
openai-version:
18288
- '2020-10-01'
18389
strict-transport-security:
184-
- max-age=15724800; includeSubDomains
90+
- max-age=31536000; includeSubDomains; preload
91+
x-envoy-upstream-service-time:
92+
- '658'
18593
x-ratelimit-limit-requests:
186-
- '5000'
94+
- '10000'
18795
x-ratelimit-limit-tokens:
188-
- '160000'
96+
- '50000000'
18997
x-ratelimit-remaining-requests:
190-
- '4999'
98+
- '9999'
19199
x-ratelimit-remaining-tokens:
192-
- '159971'
100+
- '49999985'
193101
x-ratelimit-reset-requests:
194-
- 12ms
102+
- 6ms
195103
x-ratelimit-reset-tokens:
196-
- 10ms
104+
- 0s
197105
x-request-id:
198-
- req_f362faa68fe4f881612cbf58af4e0a73
106+
- req_90ff1803f952197b695580d69fb2d9c4
199107
status:
200108
code: 200
201109
message: OK
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
interactions:
2+
- request:
3+
body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry,
4+
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
5+
joke"}}}}},"temperature":1.0,"top_p":1.0}'
6+
headers:
7+
accept:
8+
- application/json
9+
accept-encoding:
10+
- gzip, deflate
11+
connection:
12+
- keep-alive
13+
content-length:
14+
- '353'
15+
content-type:
16+
- application/json
17+
host:
18+
- api.openai.com
19+
traceparent:
20+
- 00-39ef40ef0d31ad400d44b4c35b6e22d4-5fb770dc605aec85-01
21+
user-agent:
22+
- OpenAI/Python 1.59.7
23+
x-stainless-arch:
24+
- arm64
25+
x-stainless-async:
26+
- 'false'
27+
x-stainless-lang:
28+
- python
29+
x-stainless-os:
30+
- MacOS
31+
x-stainless-package-version:
32+
- 1.59.7
33+
x-stainless-retry-count:
34+
- '0'
35+
x-stainless-runtime:
36+
- CPython
37+
x-stainless-runtime-version:
38+
- 3.12.10
39+
method: POST
40+
uri: https://api.openai.com/v1/chat/completions
41+
response:
42+
body:
43+
string: !!binary |
44+
H4sIAAAAAAAAAwAAAP//jFNdi9swEHz3r9jqpRDiko/LJeSlcAfl2oce3F1baH0YRd7Ym8iSKq3T
45+
piH/vcjJxbn2Cn2xYGdnNDsr7xIAQYWYg1CVZFU7nV5tPg6+rx/ubq8+3Nyvrsdfpzfv3w3uPn8y
46+
7v6X6EeGXaxQ8RPrjbK108hkzQFWHiVjVB1OJ+PBcDSbXLZAbQvUkVY6Ti9sWpOhdDQYXaSDaTqc
47+
HdmVJYVBzOFbAgCwa7/Rpynwp5jDoP9UqTEEWaKYn5oAhLc6VoQMgQJLw6LfgcoaRtNa32ViZdeY
48+
iXkmvlRbKKgArhAceckIHpdNQGAL8bh1aB5QY43st28Bssy8vpYRqRCs0VtYoCbcYAFkIEjSZMpW
49+
rldRWUFAGXrwg7iyDYM0W+ixlwp7rzKxPzfYXitjSKbR+gyQxliWMeQ2mscjsj+FoW3pvF2EP6hi
50+
SYZClXuUwZo4eGDrRIvuE4DHNvTmWY7CeVs7ztmusb1uMjrIiW7VHTi+PIJsWequPpv1X1DLC2RJ
51+
OpwtTSipKiw6Zrdh2RRkz4DkbOa/zbykfZibTPk/8h2gFDrGInceC1LPB+7aPMYf4V9tp4xbwyKg
52+
35DCnAl93EOBS9now/MUYRsY63xJpkTvPLVvNO4x2Se/AQAA//8DACPXtwimAwAA
53+
headers:
54+
CF-RAY:
55+
- 96224d0f5ce2bd3f-ATL
56+
Connection:
57+
- keep-alive
58+
Content-Encoding:
59+
- gzip
60+
Content-Type:
61+
- application/json
62+
Date:
63+
- Sun, 20 Jul 2025 12:00:57 GMT
64+
Server:
65+
- cloudflare
66+
Set-Cookie:
67+
- __cf_bm=cwmqUlXe5pDl.vUChZNIKR7dejmJK3PHR9Qac9D1olw-1753012857-1.0.1.1-Ja9YveD1M0RyHT_LFW8aUZoTgeupKJ7azyzam23AaYnxINFZQzdyI7e3pH41DhrwvKeWAxEuUWFpU.66BB2gJukhaI7m4zvN6Q_LCdAZjvI;
68+
path=/; expires=Sun, 20-Jul-25 12:30:57 GMT; domain=.api.openai.com; HttpOnly;
69+
Secure; SameSite=None
70+
- _cfuvid=lDau0Xl34A4N0ZlyD8AIGKSZg8RAmiOUbJ1.B64mZ6Q-1753012857146-0.0.1.1-604800000;
71+
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
72+
Transfer-Encoding:
73+
- chunked
74+
X-Content-Type-Options:
75+
- nosniff
76+
access-control-expose-headers:
77+
- X-Request-ID
78+
alt-svc:
79+
- h3=":443"; ma=86400
80+
cf-cache-status:
81+
- DYNAMIC
82+
openai-organization:
83+
- traceloop
84+
openai-processing-ms:
85+
- '836'
86+
openai-project:
87+
- proj_tzz1TbPPOXaf6j9tEkVUBIAa
88+
openai-version:
89+
- '2020-10-01'
90+
strict-transport-security:
91+
- max-age=31536000; includeSubDomains; preload
92+
x-envoy-upstream-service-time:
93+
- '842'
94+
x-ratelimit-limit-requests:
95+
- '30000'
96+
x-ratelimit-limit-tokens:
97+
- '150000000'
98+
x-ratelimit-remaining-requests:
99+
- '29999'
100+
x-ratelimit-remaining-tokens:
101+
- '149999985'
102+
x-ratelimit-reset-requests:
103+
- 2ms
104+
x-ratelimit-reset-tokens:
105+
- 0s
106+
x-request-id:
107+
- req_f65c518acc5ffa774fa2dba56dcfa969
108+
status:
109+
code: 200
110+
message: OK
111+
version: 1

0 commit comments

Comments
 (0)