fix(groq): pass through reasoning effort (#42166)
Co-authored-by: Aiden Cline <rekram1-node@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
beeabe2e4b
commit
6fea419feb
@@ -1075,6 +1075,7 @@
|
||||
"@silvia-odwyer/photon-node@0.3.4": "patches/@silvia-odwyer%2Fphoton-node@0.3.4.patch",
|
||||
"@npmcli/agent@4.0.2": "patches/@npmcli%2Fagent@4.0.2.patch",
|
||||
"solid-js@1.9.10": "patches/solid-js@1.9.10.patch",
|
||||
"@ai-sdk/groq@3.0.31": "patches/@ai-sdk%2Fgroq@3.0.31.patch",
|
||||
"@ai-sdk/google@3.0.73": "patches/@ai-sdk%2Fgoogle@3.0.73.patch",
|
||||
"pacote@21.5.0": "patches/pacote@21.5.0.patch",
|
||||
"@dnd-kit/dom@0.5.0": "patches/@dnd-kit%2Fdom@0.5.0.patch",
|
||||
|
||||
+2
-1
@@ -159,6 +159,7 @@
|
||||
"@modelcontextprotocol/sdk@1.29.0": "patches/@modelcontextprotocol%2Fsdk@1.29.0.patch",
|
||||
"effect@4.0.0-beta.83": "patches/effect@4.0.0-beta.83.patch",
|
||||
"@tanstack/virtual-core@3.17.3": "patches/@tanstack%2Fvirtual-core@3.17.3.patch",
|
||||
"@ai-sdk/openai-compatible@2.0.41": "patches/@ai-sdk%2Fopenai-compatible@2.0.41.patch"
|
||||
"@ai-sdk/openai-compatible@2.0.41": "patches/@ai-sdk%2Fopenai-compatible@2.0.41.patch",
|
||||
"@ai-sdk/groq@3.0.31": "patches/@ai-sdk%2Fgroq@3.0.31.patch"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import { createGroq } from "@ai-sdk/groq"
|
||||
import { expect, test } from "bun:test"
|
||||
|
||||
test("Groq passes through unknown reasoning effort", async () => {
|
||||
let body: Record<string, unknown> | undefined
|
||||
const mockFetch = Object.assign(
|
||||
async (_input: Parameters<typeof fetch>[0], init?: RequestInit) => {
|
||||
body = JSON.parse(String(init?.body))
|
||||
return Response.json({
|
||||
id: "response-1",
|
||||
created: 0,
|
||||
model: "openai/gpt-oss-120b",
|
||||
object: "chat.completion",
|
||||
choices: [{ index: 0, message: { role: "assistant", content: "Hello" }, finish_reason: "stop" }],
|
||||
usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 },
|
||||
})
|
||||
},
|
||||
{ preconnect: fetch.preconnect },
|
||||
)
|
||||
const model = createGroq({ apiKey: "test", fetch: mockFetch })("openai/gpt-oss-120b")
|
||||
|
||||
await model.doGenerate({
|
||||
prompt: [{ role: "user", content: [{ type: "text", text: "Hello" }] }],
|
||||
providerOptions: { groq: { reasoningEffort: "custom" } },
|
||||
})
|
||||
|
||||
expect(body?.reasoning_effort).toBe("custom")
|
||||
})
|
||||
@@ -0,0 +1,79 @@
|
||||
diff --git a/dist/index.d.mts b/dist/index.d.mts
|
||||
index 8b23996dcce6c1ad5b17ef59f92196fb97312d79..80be2e52a347042b89da8e502834afd92120877a 100644
|
||||
--- a/dist/index.d.mts
|
||||
+++ b/dist/index.d.mts
|
||||
@@ -10,13 +10,7 @@ declare const groqLanguageModelOptions: z.ZodObject<{
|
||||
raw: "raw";
|
||||
hidden: "hidden";
|
||||
}>>;
|
||||
- reasoningEffort: z.ZodOptional<z.ZodEnum<{
|
||||
- none: "none";
|
||||
- default: "default";
|
||||
- low: "low";
|
||||
- medium: "medium";
|
||||
- high: "high";
|
||||
- }>>;
|
||||
+ reasoningEffort: z.ZodOptional<z.ZodString>;
|
||||
parallelToolCalls: z.ZodOptional<z.ZodBoolean>;
|
||||
user: z.ZodOptional<z.ZodString>;
|
||||
structuredOutputs: z.ZodOptional<z.ZodBoolean>;
|
||||
diff --git a/dist/index.d.ts b/dist/index.d.ts
|
||||
index 8b23996dcce6c1ad5b17ef59f92196fb97312d79..80be2e52a347042b89da8e502834afd92120877a 100644
|
||||
--- a/dist/index.d.ts
|
||||
+++ b/dist/index.d.ts
|
||||
@@ -10,13 +10,7 @@ declare const groqLanguageModelOptions: z.ZodObject<{
|
||||
raw: "raw";
|
||||
hidden: "hidden";
|
||||
}>>;
|
||||
- reasoningEffort: z.ZodOptional<z.ZodEnum<{
|
||||
- none: "none";
|
||||
- default: "default";
|
||||
- low: "low";
|
||||
- medium: "medium";
|
||||
- high: "high";
|
||||
- }>>;
|
||||
+ reasoningEffort: z.ZodOptional<z.ZodString>;
|
||||
parallelToolCalls: z.ZodOptional<z.ZodBoolean>;
|
||||
user: z.ZodOptional<z.ZodString>;
|
||||
structuredOutputs: z.ZodOptional<z.ZodBoolean>;
|
||||
diff --git a/dist/index.js b/dist/index.js
|
||||
index 45a104f2e0775761858eac2a82ced64bceba1f5e..f60ac36f4a064d527e8f8881b1d6c58ff69286a3 100644
|
||||
--- a/dist/index.js
|
||||
+++ b/dist/index.js
|
||||
@@ -214,7 +214,7 @@ var groqLanguageModelOptions = import_v4.z.object({
|
||||
* Specifies the reasoning effort level for model inference.
|
||||
* @see https://console.groq.com/docs/reasoning#reasoning-effort
|
||||
*/
|
||||
- reasoningEffort: import_v4.z.enum(["none", "default", "low", "medium", "high"]).optional(),
|
||||
+ reasoningEffort: import_v4.z.string().optional(),
|
||||
/**
|
||||
* Whether to enable parallel function calling during tool use. Default to true.
|
||||
*/
|
||||
diff --git a/dist/index.mjs b/dist/index.mjs
|
||||
index c644c32235d8fa88c51c0fc6958feb1da4877c96..2c2f81869673eb4633e843d93ff5376abf1e67d0 100644
|
||||
--- a/dist/index.mjs
|
||||
+++ b/dist/index.mjs
|
||||
@@ -203,7 +203,7 @@ var groqLanguageModelOptions = z.object({
|
||||
* Specifies the reasoning effort level for model inference.
|
||||
* @see https://console.groq.com/docs/reasoning#reasoning-effort
|
||||
*/
|
||||
- reasoningEffort: z.enum(["none", "default", "low", "medium", "high"]).optional(),
|
||||
+ reasoningEffort: z.string().optional(),
|
||||
/**
|
||||
* Whether to enable parallel function calling during tool use. Default to true.
|
||||
*/
|
||||
diff --git a/src/groq-chat-options.ts b/src/groq-chat-options.ts
|
||||
index 3812cdf53308709f166f05c58c5d46a5d8189c8b..af520c5459bd752b3cce03c3b4afbeed31157d90 100644
|
||||
--- a/src/groq-chat-options.ts
|
||||
+++ b/src/groq-chat-options.ts
|
||||
@@ -33,9 +33,7 @@ export const groqLanguageModelOptions = z.object({
|
||||
* Specifies the reasoning effort level for model inference.
|
||||
* @see https://console.groq.com/docs/reasoning#reasoning-effort
|
||||
*/
|
||||
- reasoningEffort: z
|
||||
- .enum(['none', 'default', 'low', 'medium', 'high'])
|
||||
- .optional(),
|
||||
+ reasoningEffort: z.string().optional(),
|
||||
|
||||
/**
|
||||
* Whether to enable parallel function calling during tool use. Default to true.
|
||||
Reference in New Issue
Block a user