Commit 9b3b9ea
committed
Return minimal ChatResponse from chatbot call_openai activity
The activity previously returned `openai.types.responses.Response`
directly. The OpenAI API currently returns
`"prompt_cache_retention": "in_memory"` (underscore), but openai SDK
v2.32.0 declares that field as `Literal["in-memory", "24h"]`. The openai
client parses laxly so the activity succeeds, but Temporal's
`pydantic_data_converter` uses strict `TypeAdapter(Response).validate_json`
on the way into the workflow and rejects the underscore value, failing
every workflow task.
Define minimal `ChatResponse` and `ToolCall` pydantic models in
`activities.py` exposing only the fields the workflow uses (id,
output_text, tool_calls). The activity projects the openai Response
down to this shape so the sample is no longer coupled to SDK drift in
fields it doesn't use.
Update the workflow loop to iterate `response.tool_calls` directly and
the test mocks/helpers to build `ChatResponse` instead of constructing
openai Response objects.1 parent 1b84cf3 commit 9b3b9ea
4 files changed
Lines changed: 42 additions & 61 deletions
File tree
- langsmith_tracing/chatbot
- tests/langsmith_tracing
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
13 | 25 | | |
14 | 26 | | |
15 | 27 | | |
| |||
25 | 37 | | |
26 | 38 | | |
27 | 39 | | |
28 | | - | |
| 40 | + | |
29 | 41 | | |
30 | 42 | | |
31 | 43 | | |
| |||
42 | 54 | | |
43 | 55 | | |
44 | 56 | | |
45 | | - | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
155 | 153 | | |
156 | 154 | | |
157 | 155 | | |
158 | 156 | | |
159 | | - | |
| 157 | + | |
160 | 158 | | |
161 | 159 | | |
162 | 160 | | |
163 | | - | |
| 161 | + | |
164 | 162 | | |
165 | 163 | | |
166 | 164 | | |
167 | 165 | | |
168 | | - | |
| 166 | + | |
169 | 167 | | |
170 | 168 | | |
171 | 169 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | | - | |
| 3 | + | |
6 | 4 | | |
7 | 5 | | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | 4 | | |
9 | 5 | | |
10 | 6 | | |
11 | 7 | | |
12 | 8 | | |
13 | 9 | | |
14 | | - | |
| 10 | + | |
15 | 11 | | |
16 | 12 | | |
17 | 13 | | |
18 | 14 | | |
19 | 15 | | |
20 | 16 | | |
21 | | - | |
22 | | - | |
| 17 | + | |
| 18 | + | |
23 | 19 | | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
31 | 23 | | |
32 | 24 | | |
33 | | - | |
34 | | - | |
35 | 25 | | |
36 | 26 | | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | 27 | | |
41 | 28 | | |
42 | 29 | | |
| |||
45 | 32 | | |
46 | 33 | | |
47 | 34 | | |
48 | | - | |
| 35 | + | |
49 | 36 | | |
50 | 37 | | |
51 | 38 | | |
| |||
86 | 73 | | |
87 | 74 | | |
88 | 75 | | |
89 | | - | |
| 76 | + | |
90 | 77 | | |
91 | 78 | | |
92 | 79 | | |
| |||
0 commit comments