ruby_llm-providers-groq 2.0.0.pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/.flayignore +1 -0
  3. data/.github/workflows/ci.yml +30 -0
  4. data/.github/workflows/gitleaks.yml +22 -0
  5. data/.github/workflows/release.yml +36 -0
  6. data/.overcommit.yml +31 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +29 -0
  9. data/Archspec.rb +14 -0
  10. data/LICENSE +21 -0
  11. data/README.md +57 -0
  12. data/lib/ruby_llm/providers/groq.rb +70 -0
  13. data/models.json +218 -0
  14. data/spec/fixtures/vcr_cassettes/rubyllm_chat_groq_openai_gpt_oss_120b_can_handle_a_multi_turn_conversation.yml +153 -0
  15. data/spec/fixtures/vcr_cassettes/rubyllm_chat_groq_openai_gpt_oss_120b_can_have_a_basic_conversation.yml +75 -0
  16. data/spec/fixtures/vcr_cassettes/rubyllm_chat_groq_openai_gpt_oss_120b_can_use_tools.yml +153 -0
  17. data/spec/fixtures/vcr_cassettes/rubyllm_chat_groq_openai_gpt_oss_120b_returns_structured_output.yml +80 -0
  18. data/spec/fixtures/vcr_cassettes/rubyllm_chat_groq_openai_gpt_oss_120b_returns_the_raw_response.yml +79 -0
  19. data/spec/fixtures/vcr_cassettes/rubyllm_chat_groq_openai_gpt_oss_120b_supports_streaming_responses.yml +252 -0
  20. data/spec/fixtures/vcr_cassettes/rubyllm_chat_groq_qwen_qwen3_8_27b_can_handle_a_multi_turn_conversation.yml +160 -0
  21. data/spec/fixtures/vcr_cassettes/rubyllm_chat_groq_qwen_qwen3_8_27b_can_have_a_basic_conversation.yml +77 -0
  22. data/spec/fixtures/vcr_cassettes/rubyllm_chat_groq_qwen_qwen3_8_27b_can_use_tools.yml +152 -0
  23. data/spec/fixtures/vcr_cassettes/rubyllm_chat_groq_qwen_qwen3_8_27b_returns_structured_output.yml +77 -0
  24. data/spec/fixtures/vcr_cassettes/rubyllm_chat_groq_qwen_qwen3_8_27b_returns_the_raw_response.yml +77 -0
  25. data/spec/fixtures/vcr_cassettes/rubyllm_chat_groq_qwen_qwen3_8_27b_supports_streaming_responses.yml +126 -0
  26. data/spec/ruby_llm/chat_schema_spec.rb +30 -0
  27. data/spec/ruby_llm/chat_spec.rb +35 -0
  28. data/spec/ruby_llm/chat_streaming_spec.rb +22 -0
  29. data/spec/ruby_llm/chat_tools_spec.rb +31 -0
  30. data/spec/ruby_llm/embedding_spec.rb +49 -0
  31. data/spec/ruby_llm/image_spec.rb +23 -0
  32. data/spec/ruby_llm/models_spec.rb +11 -0
  33. data/spec/ruby_llm/moderation_spec.rb +22 -0
  34. data/spec/ruby_llm/providers/groq_spec.rb +32 -0
  35. data/spec/ruby_llm/rerank_spec.rb +23 -0
  36. data/spec/ruby_llm/speech_spec.rb +25 -0
  37. data/spec/ruby_llm/video_spec.rb +27 -0
  38. data/spec/spec_helper.rb +26 -0
  39. data/spec/support/models.rb +22 -0
  40. data/spec/support/rubyllm_configuration.rb +14 -0
  41. data/spec/support/vcr_configuration.rb +16 -0
  42. metadata +105 -0
@@ -0,0 +1,252 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.groq.com/openai/v1/responses
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"model":"openai/gpt-oss-120b","input":[{"role":"user","content":"Count
9
+ from 1 to 3"}],"stream":true,"store":false}'
10
+ headers:
11
+ User-Agent:
12
+ - Faraday v2.14.4
13
+ Authorization:
14
+ - Bearer <AUTH_TOKEN>
15
+ Content-Type:
16
+ - application/json
17
+ Accept-Encoding:
18
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
19
+ Accept:
20
+ - "*/*"
21
+ response:
22
+ status:
23
+ code: 200
24
+ message: OK
25
+ headers:
26
+ Date:
27
+ - Wed, 07 Oct 2026 16:48:54 GMT
28
+ Content-Type:
29
+ - text/event-stream
30
+ Transfer-Encoding:
31
+ - chunked
32
+ Connection:
33
+ - keep-alive
34
+ Cache-Control:
35
+ - no-cache
36
+ Server:
37
+ - cloudflare
38
+ Vary:
39
+ - Origin
40
+ X-Groq-Region:
41
+ - dls
42
+ X-Ratelimit-Limit-Requests:
43
+ - '1000'
44
+ X-Ratelimit-Limit-Tokens:
45
+ - '8000'
46
+ X-Ratelimit-Remaining-Requests:
47
+ - '995'
48
+ X-Ratelimit-Remaining-Tokens:
49
+ - '7513'
50
+ X-Ratelimit-Reset-Requests:
51
+ - 7m12s
52
+ X-Ratelimit-Reset-Tokens:
53
+ - 3.652s
54
+ X-Request-Id:
55
+ - req_01m4bm96asen89fyc5qtw33vmv
56
+ Via:
57
+ - 1.1 google
58
+ Alt-Svc:
59
+ - h3=":443"; ma=86400
60
+ Cf-Cache-Status:
61
+ - DYNAMIC
62
+ Set-Cookie:
63
+ - __cf_bm=ARzth19q8eUYazO4RmcC4Z9uM5RGJTc.X1j.jWfvdjc-1791391734.005354-1.0.1.1-g_xCU1iSww9BQHGQiu3_7Rt62EQjvjSPiyttKlgHSrf1_C7_zirHbBNSlst.beDjos50qSC2XNasvXrVIUgYqrrYNMHwiwfq7iNZEV7Z8XFtycjPkEH8pqXe69WEk6aI;
64
+ HttpOnly; SameSite=None; Secure; Path=/; Domain=groq.com; Expires=Wed, 07
65
+ Oct 2026 17:18:54 GMT
66
+ Strict-Transport-Security:
67
+ - max-age=15552000
68
+ Cf-Ray:
69
+ - a46e6561893f33ca-HEL
70
+ body:
71
+ encoding: UTF-8
72
+ string: |+
73
+ event: response.created
74
+ data: {"type":"response.created","sequence_number":0,"response":{"id":"resp_01m4bm96efe1h8tzc9sszqpch6","object":"response","status":"in_progress","created_at":1791391734,"output":[],"previous_response_id":null,"model":"openai/gpt-oss-120b","reasoning":{"effort":"medium"},"max_output_tokens":null,"text":{"format":{"type":"text"}},"tools":[],"tool_choice":"auto","truncation":"disabled","metadata":{},"groq":null,"temperature":1,"top_p":1,"user":null,"service_tier":"default","background":false,"error":null,"incomplete_details":null,"parallel_tool_calls":true,"store":false,"top_logprobs":null,"max_tool_calls":null}}
75
+
76
+ event: response.in_progress
77
+ data: {"type":"response.in_progress","sequence_number":1,"response":{"id":"resp_01m4bm96efe1h8tzc9sszqpch6","object":"response","status":"in_progress","created_at":1791391734,"output":[],"previous_response_id":null,"model":"openai/gpt-oss-120b","reasoning":{"effort":"medium"},"max_output_tokens":null,"text":{"format":{"type":"text"}},"tools":[],"tool_choice":"auto","truncation":"disabled","metadata":{},"groq":null,"temperature":1,"top_p":1,"user":null,"service_tier":"default","background":false,"error":null,"incomplete_details":null,"parallel_tool_calls":true,"store":false,"top_logprobs":null,"max_tool_calls":null}}
78
+
79
+ event: response.output_item.added
80
+ data: {"type":"response.output_item.added","sequence_number":2,"output_index":0,"item":{"type":"reasoning","id":"resp_01m4bm96efe1hvz0f4na9pk129","summary":[]}}
81
+
82
+ event: response.content_part.added
83
+ data: {"type":"response.content_part.added","sequence_number":3,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"part":{"type":"reasoning_text","text":"","annotations":[],"logprobs":null}}
84
+
85
+ event: response.reasoning_text.delta
86
+ data: {"type":"response.reasoning_text.delta","sequence_number":4,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"The"}
87
+
88
+ event: response.reasoning_text.delta
89
+ data: {"type":"response.reasoning_text.delta","sequence_number":5,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" user"}
90
+
91
+ event: response.reasoning_text.delta
92
+ data: {"type":"response.reasoning_text.delta","sequence_number":6,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" says"}
93
+
94
+ event: response.reasoning_text.delta
95
+ data: {"type":"response.reasoning_text.delta","sequence_number":7,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":":"}
96
+
97
+ event: response.reasoning_text.delta
98
+ data: {"type":"response.reasoning_text.delta","sequence_number":8,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" \""}
99
+
100
+ event: response.reasoning_text.delta
101
+ data: {"type":"response.reasoning_text.delta","sequence_number":9,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"Count"}
102
+
103
+ event: response.reasoning_text.delta
104
+ data: {"type":"response.reasoning_text.delta","sequence_number":10,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" from"}
105
+
106
+ event: response.reasoning_text.delta
107
+ data: {"type":"response.reasoning_text.delta","sequence_number":11,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" "}
108
+
109
+ event: response.reasoning_text.delta
110
+ data: {"type":"response.reasoning_text.delta","sequence_number":12,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"1"}
111
+
112
+ event: response.reasoning_text.delta
113
+ data: {"type":"response.reasoning_text.delta","sequence_number":13,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" to"}
114
+
115
+ event: response.reasoning_text.delta
116
+ data: {"type":"response.reasoning_text.delta","sequence_number":14,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" "}
117
+
118
+ event: response.reasoning_text.delta
119
+ data: {"type":"response.reasoning_text.delta","sequence_number":15,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"3"}
120
+
121
+ event: response.reasoning_text.delta
122
+ data: {"type":"response.reasoning_text.delta","sequence_number":16,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"\"."}
123
+
124
+ event: response.reasoning_text.delta
125
+ data: {"type":"response.reasoning_text.delta","sequence_number":17,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" That's"}
126
+
127
+ event: response.reasoning_text.delta
128
+ data: {"type":"response.reasoning_text.delta","sequence_number":18,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" a"}
129
+
130
+ event: response.reasoning_text.delta
131
+ data: {"type":"response.reasoning_text.delta","sequence_number":19,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" simple"}
132
+
133
+ event: response.reasoning_text.delta
134
+ data: {"type":"response.reasoning_text.delta","sequence_number":20,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" request"}
135
+
136
+ event: response.reasoning_text.delta
137
+ data: {"type":"response.reasoning_text.delta","sequence_number":21,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"."}
138
+
139
+ event: response.reasoning_text.delta
140
+ data: {"type":"response.reasoning_text.delta","sequence_number":22,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" Just"}
141
+
142
+ event: response.reasoning_text.delta
143
+ data: {"type":"response.reasoning_text.delta","sequence_number":23,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" output"}
144
+
145
+ event: response.reasoning_text.delta
146
+ data: {"type":"response.reasoning_text.delta","sequence_number":24,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" \""}
147
+
148
+ event: response.reasoning_text.delta
149
+ data: {"type":"response.reasoning_text.delta","sequence_number":25,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"1"}
150
+
151
+ event: response.reasoning_text.delta
152
+ data: {"type":"response.reasoning_text.delta","sequence_number":26,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":","}
153
+
154
+ event: response.reasoning_text.delta
155
+ data: {"type":"response.reasoning_text.delta","sequence_number":27,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" "}
156
+
157
+ event: response.reasoning_text.delta
158
+ data: {"type":"response.reasoning_text.delta","sequence_number":28,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"2"}
159
+
160
+ event: response.reasoning_text.delta
161
+ data: {"type":"response.reasoning_text.delta","sequence_number":29,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":","}
162
+
163
+ event: response.reasoning_text.delta
164
+ data: {"type":"response.reasoning_text.delta","sequence_number":30,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" "}
165
+
166
+ event: response.reasoning_text.delta
167
+ data: {"type":"response.reasoning_text.delta","sequence_number":31,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"3"}
168
+
169
+ event: response.reasoning_text.delta
170
+ data: {"type":"response.reasoning_text.delta","sequence_number":32,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"\""}
171
+
172
+ event: response.reasoning_text.delta
173
+ data: {"type":"response.reasoning_text.delta","sequence_number":33,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" or"}
174
+
175
+ event: response.reasoning_text.delta
176
+ data: {"type":"response.reasoning_text.delta","sequence_number":34,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" each"}
177
+
178
+ event: response.reasoning_text.delta
179
+ data: {"type":"response.reasoning_text.delta","sequence_number":35,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" on"}
180
+
181
+ event: response.reasoning_text.delta
182
+ data: {"type":"response.reasoning_text.delta","sequence_number":36,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" new"}
183
+
184
+ event: response.reasoning_text.delta
185
+ data: {"type":"response.reasoning_text.delta","sequence_number":37,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" line"}
186
+
187
+ event: response.reasoning_text.delta
188
+ data: {"type":"response.reasoning_text.delta","sequence_number":38,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"."}
189
+
190
+ event: response.reasoning_text.delta
191
+ data: {"type":"response.reasoning_text.delta","sequence_number":39,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" No"}
192
+
193
+ event: response.reasoning_text.delta
194
+ data: {"type":"response.reasoning_text.delta","sequence_number":40,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" issues"}
195
+
196
+ event: response.reasoning_text.delta
197
+ data: {"type":"response.reasoning_text.delta","sequence_number":41,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"."}
198
+
199
+ event: response.reasoning_text.delta
200
+ data: {"type":"response.reasoning_text.delta","sequence_number":42,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" Provide"}
201
+
202
+ event: response.reasoning_text.delta
203
+ data: {"type":"response.reasoning_text.delta","sequence_number":43,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":" answer"}
204
+
205
+ event: response.reasoning_text.delta
206
+ data: {"type":"response.reasoning_text.delta","sequence_number":44,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"delta":"."}
207
+
208
+ event: response.output_item.added
209
+ data: {"type":"response.output_item.added","sequence_number":45,"output_index":1,"item":{"type":"message","id":"msg_01m4bm96htezyry9mx20er835b","role":"assistant","content":[]}}
210
+
211
+ event: response.content_part.added
212
+ data: {"type":"response.content_part.added","sequence_number":46,"item_id":"msg_01m4bm96htezyry9mx20er835b","output_index":1,"content_index":0,"part":{"type":"output_text","text":"","annotations":[],"logprobs":null}}
213
+
214
+ event: response.output_text.delta
215
+ data: {"type":"response.output_text.delta","sequence_number":47,"item_id":"msg_01m4bm96htezyry9mx20er835b","output_index":1,"content_index":0,"delta":"1","logprobs":[]}
216
+
217
+ event: response.output_text.delta
218
+ data: {"type":"response.output_text.delta","sequence_number":48,"item_id":"msg_01m4bm96htezyry9mx20er835b","output_index":1,"content_index":0,"delta":" \n","logprobs":[]}
219
+
220
+ event: response.output_text.delta
221
+ data: {"type":"response.output_text.delta","sequence_number":49,"item_id":"msg_01m4bm96htezyry9mx20er835b","output_index":1,"content_index":0,"delta":"2","logprobs":[]}
222
+
223
+ event: response.output_text.delta
224
+ data: {"type":"response.output_text.delta","sequence_number":50,"item_id":"msg_01m4bm96htezyry9mx20er835b","output_index":1,"content_index":0,"delta":" \n","logprobs":[]}
225
+
226
+ event: response.output_text.delta
227
+ data: {"type":"response.output_text.delta","sequence_number":51,"item_id":"msg_01m4bm96htezyry9mx20er835b","output_index":1,"content_index":0,"delta":"3","logprobs":[]}
228
+
229
+ event: response.reasoning_text.done
230
+ data: {"type":"response.reasoning_text.done","sequence_number":52,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"text":"The user says: \"Count from 1 to 3\". That's a simple request. Just output \"1, 2, 3\" or each on new line. No issues. Provide answer."}
231
+
232
+ event: response.content_part.done
233
+ data: {"type":"response.content_part.done","sequence_number":53,"item_id":"resp_01m4bm96efe1hvz0f4na9pk129","output_index":0,"content_index":0,"part":{"type":"reasoning_text","text":"The user says: \"Count from 1 to 3\". That's a simple request. Just output \"1, 2, 3\" or each on new line. No issues. Provide answer.","annotations":[],"logprobs":null}}
234
+
235
+ event: response.output_item.done
236
+ data: {"type":"response.output_item.done","sequence_number":54,"output_index":0,"item":{"type":"reasoning","id":"resp_01m4bm96efe1hvz0f4na9pk129","content":[{"type":"reasoning_text","text":"The user says: \"Count from 1 to 3\". That's a simple request. Just output \"1, 2, 3\" or each on new line. No issues. Provide answer."}],"summary":[]}}
237
+
238
+ event: response.output_text.done
239
+ data: {"type":"response.output_text.done","sequence_number":55,"item_id":"msg_01m4bm96htezyry9mx20er835b","output_index":1,"content_index":0,"text":"1 \n2 \n3","logprobs":[]}
240
+
241
+ event: response.content_part.done
242
+ data: {"type":"response.content_part.done","sequence_number":56,"item_id":"msg_01m4bm96htezyry9mx20er835b","output_index":1,"content_index":0,"part":{"type":"output_text","text":"1 \n2 \n3","annotations":[],"logprobs":null}}
243
+
244
+ event: response.output_item.done
245
+ data: {"type":"response.output_item.done","sequence_number":57,"output_index":1,"item":{"type":"message","id":"msg_01m4bm96htezyry9mx20er835b","status":"completed","role":"assistant","content":[{"type":"output_text","text":"1 \n2 \n3","annotations":[],"logprobs":[]}]}}
246
+
247
+ event: response.completed
248
+ data: {"type":"response.completed","sequence_number":58,"response":{"id":"resp_01m4bm96efe1h8tzc9sszqpch6","object":"response","status":"completed","created_at":1791391734,"output":[{"type":"reasoning","id":"resp_01m4bm96efe1hvz0f4na9pk129","content":[{"type":"reasoning_text","text":"The user says: \"Count from 1 to 3\". That's a simple request. Just output \"1, 2, 3\" or each on new line. No issues. Provide answer."}],"summary":[]},{"type":"message","id":"msg_01m4bm96htezyry9mx20er835b","status":"completed","role":"assistant","content":[{"type":"output_text","text":"1 \n2 \n3","annotations":[],"logprobs":[]}]}],"previous_response_id":null,"model":"openai/gpt-oss-120b","reasoning":{"effort":"medium"},"max_output_tokens":null,"text":{"format":{"type":"text"}},"tools":[],"tool_choice":"auto","truncation":"disabled","metadata":{},"groq":null,"temperature":1,"top_p":1,"user":null,"service_tier":"default","background":false,"error":null,"incomplete_details":null,"usage":{"input_tokens":78,"input_tokens_details":{"cached_tokens":0},"output_tokens":56,"output_tokens_details":{"reasoning_tokens":42},"total_tokens":134},"parallel_tool_calls":true,"store":false,"top_logprobs":null,"max_tool_calls":null}}
249
+
250
+ recorded_at: Wed, 07 Oct 2026 16:48:54 GMT
251
+ recorded_with: VCR 6.4.0
252
+ ...
@@ -0,0 +1,160 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.groq.com/openai/v1/responses
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"model":"qwen/qwen3.8-27b","input":[{"role":"user","content":"Who
9
+ created the programming language Ruby?"}],"stream":false,"store":false}'
10
+ headers:
11
+ User-Agent:
12
+ - Faraday v2.14.4
13
+ Authorization:
14
+ - Bearer <AUTH_TOKEN>
15
+ Content-Type:
16
+ - application/json
17
+ Accept-Encoding:
18
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
19
+ Accept:
20
+ - "*/*"
21
+ response:
22
+ status:
23
+ code: 200
24
+ message: OK
25
+ headers:
26
+ Date:
27
+ - Wed, 07 Oct 2026 16:48:55 GMT
28
+ Content-Type:
29
+ - application/json
30
+ Transfer-Encoding:
31
+ - chunked
32
+ Connection:
33
+ - keep-alive
34
+ Cache-Control:
35
+ - private, max-age=0, no-store, no-cache, must-revalidate
36
+ Server:
37
+ - cloudflare
38
+ Vary:
39
+ - Origin
40
+ X-Groq-Region:
41
+ - dls
42
+ X-Ratelimit-Limit-Requests:
43
+ - '1000'
44
+ X-Ratelimit-Limit-Tokens:
45
+ - '8000'
46
+ X-Ratelimit-Remaining-Requests:
47
+ - '997'
48
+ X-Ratelimit-Remaining-Tokens:
49
+ - '7254'
50
+ X-Ratelimit-Reset-Requests:
51
+ - 4m19.2s
52
+ X-Ratelimit-Reset-Tokens:
53
+ - 43.62s
54
+ X-Request-Id:
55
+ - req_01m4bm97mcerbbmcj4v969c3je
56
+ Via:
57
+ - 1.1 google
58
+ Alt-Svc:
59
+ - h3=":443"; ma=86400
60
+ Cf-Cache-Status:
61
+ - DYNAMIC
62
+ Set-Cookie:
63
+ - __cf_bm=kfX4wKdzdMJ4gmb9lwuyD_b_.wTYVx1pV6pVkVvx860-1791391735.3365374-1.0.1.1-ryr8kFZEIymrhni8C5oNixLraLW8zdtoalmyZag1l.KmEC9op792cPjy633e_qj0w5XTrlGw3bqDP3_VOCCDu039KzPh5_GoAqKrbxKbNtSvzfwxbstcIjhl8R5djROm;
64
+ HttpOnly; SameSite=None; Secure; Path=/; Domain=groq.com; Expires=Wed, 07
65
+ Oct 2026 17:18:55 GMT
66
+ Strict-Transport-Security:
67
+ - max-age=15552000
68
+ Cf-Ray:
69
+ - a46e6569d801ca98-HEL
70
+ body:
71
+ encoding: ASCII-8BIT
72
+ string: '{"id":"resp_01m4bm97s7ezj9ny7j6fyxcxdv","object":"response","status":"completed","created_at":1791391735,"output":[{"type":"reasoning","id":"resp_01m4bm97s7ezjs2gtw1qx4q8bk","status":"completed","summary":[]},{"type":"message","id":"msg_01m4bm97s7ezkb5xf61k7dpx66","status":"completed","role":"assistant","content":[{"type":"output_text","text":"Ruby
73
+ was created by **Yukihiro Matsumoto**, who is widely known in the programming
74
+ community as **\"Matz.\"\n\nHe first released Ruby in 1995 in Japan, with
75
+ the goal of creating a language that was fun, easy to use, and focused on
76
+ the programmer''s happiness (\"hobon\").","annotations":[],"logprobs":null}]}],"previous_response_id":null,"model":"qwen/qwen3.8-27b","reasoning":{"effort":"none"},"max_output_tokens":null,"text":{"format":{"type":"text"}},"tools":[],"tool_choice":"auto","truncation":"disabled","metadata":{},"groq":null,"temperature":1,"top_p":1,"user":null,"service_tier":"default","background":false,"error":null,"incomplete_details":null,"usage":{"input_tokens":19,"input_tokens_details":{"cached_tokens":0},"output_tokens":67,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":86},"parallel_tool_calls":true,"store":false,"top_logprobs":null,"max_tool_calls":null}
77
+
78
+ '
79
+ recorded_at: Wed, 07 Oct 2026 16:48:55 GMT
80
+ - request:
81
+ method: post
82
+ uri: https://api.groq.com/openai/v1/responses
83
+ body:
84
+ encoding: UTF-8
85
+ string: '{"model":"qwen/qwen3.8-27b","input":[{"role":"user","content":"Who
86
+ created the programming language Ruby?"},{"role":"assistant","content":[{"type":"input_text","text":"Ruby
87
+ was created by **Yukihiro Matsumoto**, who is widely known in the programming
88
+ community as **\"Matz.\"\n\nHe first released Ruby in 1995 in Japan, with
89
+ the goal of creating a language that was fun, easy to use, and focused on
90
+ the programmer''s happiness (\"hobon\")."}]},{"role":"user","content":"What
91
+ year was Ruby first released?"}],"stream":false,"store":false}'
92
+ headers:
93
+ User-Agent:
94
+ - Faraday v2.14.4
95
+ Authorization:
96
+ - Bearer <AUTH_TOKEN>
97
+ Content-Type:
98
+ - application/json
99
+ Accept-Encoding:
100
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
101
+ Accept:
102
+ - "*/*"
103
+ response:
104
+ status:
105
+ code: 200
106
+ message: OK
107
+ headers:
108
+ Date:
109
+ - Wed, 07 Oct 2026 16:48:56 GMT
110
+ Content-Type:
111
+ - application/json
112
+ Transfer-Encoding:
113
+ - chunked
114
+ Connection:
115
+ - keep-alive
116
+ Cache-Control:
117
+ - private, max-age=0, no-store, no-cache, must-revalidate
118
+ Server:
119
+ - cloudflare
120
+ Vary:
121
+ - Origin
122
+ X-Groq-Region:
123
+ - dls
124
+ X-Ratelimit-Limit-Requests:
125
+ - '1000'
126
+ X-Ratelimit-Limit-Tokens:
127
+ - '8000'
128
+ X-Ratelimit-Remaining-Requests:
129
+ - '996'
130
+ X-Ratelimit-Remaining-Tokens:
131
+ - '7236'
132
+ X-Ratelimit-Reset-Requests:
133
+ - 5m45.6s
134
+ X-Ratelimit-Reset-Tokens:
135
+ - 39.48s
136
+ X-Request-Id:
137
+ - req_01m4bm982ve9ta0hegs3qd4g4n
138
+ Via:
139
+ - 1.1 google
140
+ Alt-Svc:
141
+ - h3=":443"; ma=86400
142
+ Cf-Cache-Status:
143
+ - DYNAMIC
144
+ Set-Cookie:
145
+ - __cf_bm=ln.fpAquwhKc9GJR2CykILEAuwKzy4rQpjDb79unHp4-1791391735.8001502-1.0.1.1-wBgR2Cn3IJMoyB.ROKudO7zZmQ.kVTOx14Qqz4fsO1RnObIn2gOv41OjXrCEWuNlTTLLoJI9izJlypjUM02KYsQS.8zO4ERH7R731kvQICGNjD7rgGr6enIM7IP0.MrS;
146
+ HttpOnly; SameSite=None; Secure; Path=/; Domain=groq.com; Expires=Wed, 07
147
+ Oct 2026 17:18:56 GMT
148
+ Strict-Transport-Security:
149
+ - max-age=15552000
150
+ Cf-Ray:
151
+ - a46e656cb866c55b-HEL
152
+ body:
153
+ encoding: ASCII-8BIT
154
+ string: '{"id":"resp_01m4bm986te8db3bc6edavhz9r","object":"response","status":"completed","created_at":1791391736,"output":[{"type":"reasoning","id":"resp_01m4bm986te8drz94k8v50fa3h","status":"completed","summary":[]},{"type":"message","id":"msg_01m4bm986te8e81mbg7v1d3wdw","status":"completed","role":"assistant","content":[{"type":"output_text","text":"Ruby
155
+ was first released in **1995**.\n\nSpecifically, Yukihiro Matsumoto released
156
+ the first public version of Ruby in **March 1995**.","annotations":[],"logprobs":null}]}],"previous_response_id":null,"model":"qwen/qwen3.8-27b","reasoning":{"effort":"none"},"max_output_tokens":null,"text":{"format":{"type":"text"}},"tools":[],"tool_choice":"auto","truncation":"disabled","metadata":{},"groq":null,"temperature":1,"top_p":1,"user":null,"service_tier":"default","background":false,"error":null,"incomplete_details":null,"usage":{"input_tokens":106,"input_tokens_details":{"cached_tokens":0},"output_tokens":38,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":144},"parallel_tool_calls":true,"store":false,"top_logprobs":null,"max_tool_calls":null}
157
+
158
+ '
159
+ recorded_at: Wed, 07 Oct 2026 16:48:56 GMT
160
+ recorded_with: VCR 6.4.0
@@ -0,0 +1,77 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.groq.com/openai/v1/responses
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"model":"qwen/qwen3.8-27b","input":[{"role":"user","content":"What''s
9
+ 2 + 2?"}],"stream":false,"store":false}'
10
+ headers:
11
+ User-Agent:
12
+ - Faraday v2.14.4
13
+ Authorization:
14
+ - Bearer <AUTH_TOKEN>
15
+ Content-Type:
16
+ - application/json
17
+ Accept-Encoding:
18
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
19
+ Accept:
20
+ - "*/*"
21
+ response:
22
+ status:
23
+ code: 200
24
+ message: OK
25
+ headers:
26
+ Date:
27
+ - Wed, 07 Oct 2026 18:13:49 GMT
28
+ Content-Type:
29
+ - application/json
30
+ Transfer-Encoding:
31
+ - chunked
32
+ Connection:
33
+ - keep-alive
34
+ Cache-Control:
35
+ - private, max-age=0, no-store, no-cache, must-revalidate
36
+ Server:
37
+ - cloudflare
38
+ Vary:
39
+ - Origin
40
+ X-Groq-Region:
41
+ - dls
42
+ X-Ratelimit-Limit-Requests:
43
+ - '1000'
44
+ X-Ratelimit-Limit-Tokens:
45
+ - '8000'
46
+ X-Ratelimit-Remaining-Requests:
47
+ - '999'
48
+ X-Ratelimit-Remaining-Tokens:
49
+ - '7267'
50
+ X-Ratelimit-Reset-Requests:
51
+ - 1m26.4s
52
+ X-Ratelimit-Reset-Tokens:
53
+ - 5.497s
54
+ X-Request-Id:
55
+ - req_01m4bs4pbheewrzxvdbfefd3dd
56
+ Via:
57
+ - 1.1 google
58
+ Alt-Svc:
59
+ - h3=":443"; ma=86400
60
+ Cf-Cache-Status:
61
+ - DYNAMIC
62
+ Set-Cookie:
63
+ - __cf_bm=6VwNzqbgGnnwoik463vul.l0DmeekxoZX26hKRNFpeU-1791396829.467365-1.0.1.1-oQFTQBmgZrxNsFf5BES05N2SBNZT4ufiwd0c5bHFlFATqgCNFPk0VIFc17gm9eHQ15Qy3EqciRwjwg3jobZZo8Ux33_QXP4nOlXZVZ8NlRrcTtUiMkSx970gMcNfcxPT;
64
+ HttpOnly; SameSite=None; Secure; Path=/; Domain=groq.com; Expires=Wed, 07
65
+ Oct 2026 18:43:49 GMT
66
+ Strict-Transport-Security:
67
+ - max-age=15552000
68
+ Cf-Ray:
69
+ - a46ee1c82cc5d800-HEL
70
+ body:
71
+ encoding: ASCII-8BIT
72
+ string: '{"id":"resp_01m4bs4pd2ekar23w5etaks05r","object":"response","status":"completed","created_at":1791396829,"output":[{"type":"reasoning","id":"resp_01m4bs4pd2ekb8zgmq5rabvvg7","status":"completed","summary":[]},{"type":"message","id":"msg_01m4bs4pd2ekbvenkr3dmeebn5","status":"completed","role":"assistant","content":[{"type":"output_text","text":"2
73
+ + 2 is **4**.","annotations":[],"logprobs":null}]}],"previous_response_id":null,"model":"qwen/qwen3.8-27b","reasoning":{"effort":"none"},"max_output_tokens":null,"text":{"format":{"type":"text"}},"tools":[],"tool_choice":"auto","truncation":"disabled","metadata":{},"groq":null,"temperature":1,"top_p":1,"user":null,"service_tier":"default","background":false,"error":null,"incomplete_details":null,"usage":{"input_tokens":20,"input_tokens_details":{"cached_tokens":0},"output_tokens":9,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":29},"parallel_tool_calls":true,"store":false,"top_logprobs":null,"max_tool_calls":null}
74
+
75
+ '
76
+ recorded_at: Wed, 07 Oct 2026 18:13:49 GMT
77
+ recorded_with: VCR 6.4.0