Skip to content

Commit 21a7977

Browse files
Muhammad-Bin-AliMuhammad Ali
andauthored
feat(codemode): make model configurable instead of hardcoded gpt-4.1 (#849)
* feat(codemode): make model configurable instead of hardcoded gpt-4.1 * Add Changeset * Make the model parameter optional --------- Co-authored-by: Muhammad Ali <muhammadali@cloudflare.com>
1 parent 069c584 commit 21a7977

File tree

5 files changed

+14
-3
lines changed

5 files changed

+14
-3
lines changed

.changeset/bright-trains-glow.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@cloudflare/codemode": patch
3+
---
4+
5+
Allow configurable model in `experimental_codemode` instead of hardcoded `gpt-4.1`

docs/codemode.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ export { CodeModeProxy } from "@cloudflare/codemode/ai";
109109

110110
// Use codemode wrapper
111111
const { prompt, tools: wrappedTools } = await codemode({
112+
model: openai("gpt-4o"), // optional, defaults to openai("gpt-4.1")
112113
prompt: "You are a helpful assistant...",
113114
tools,
114115
globalOutbound: env.globalOutbound,

examples/codemode/src/server.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ export class Codemode extends Agent<Env, State> {
132132
this.tools = allTools;
133133

134134
const { prompt, tools: wrappedTools } = await codemode({
135+
model,
135136
prompt: `You are a helpful assistant that can do various tasks...
136137
137138
${getSchedulePrompt({ date: new Date() })}

packages/codemode/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ const tools = {
8787

8888
// Configure Code Mode
8989
const { prompt, tools: wrappedTools } = await codemode({
90+
model: openai("gpt-4o"), // optional, defaults to openai("gpt-4.1")
9091
prompt: "You are a helpful assistant...",
9192
tools,
9293
globalOutbound: env.globalOutbound,
@@ -156,6 +157,7 @@ export class CodeModeAgent extends Agent<Env> {
156157
};
157158

158159
const { prompt, tools: wrappedTools } = await codemode({
160+
model: openai("gpt-4o"), // optional, defaults to openai("gpt-4.1")
159161
prompt: "You are a helpful assistant...",
160162
tools: allTools,
161163
globalOutbound: env.globalOutbound,
@@ -293,6 +295,7 @@ Wraps your tools with Code Mode, converting them into a single code-generating t
293295
- `globalOutbound: Fetcher` - Service binding for network access control
294296
- `loader: WorkerLoader` - Worker Loader binding for code execution
295297
- `proxy: Fetcher<CodeModeProxy>` - Proxy binding for tool execution
298+
- `model?: LanguageModel` - The language model to use for code generation (optional, defaults to `openai("gpt-4.1")`)
296299

297300
**Returns:**
298301

packages/codemode/src/ai.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { generateObject, tool, type ToolSet } from "ai";
2-
import { openai } from "@ai-sdk/openai";
1+
import { generateObject, tool, type ToolSet, type LanguageModel } from "ai";
32
import { z } from "zod";
43
import { compile as compileJsonSchemaToTs } from "json-schema-to-typescript";
54
import {
@@ -9,6 +8,7 @@ import {
98
} from "zod-to-ts";
109
import { getAgentByName } from "agents";
1110
import { env, WorkerEntrypoint } from "cloudflare:workers";
11+
import { openai } from "@ai-sdk/openai";
1212

1313
function toCamelCase(str: string) {
1414
return str
@@ -41,6 +41,7 @@ export async function experimental_codemode(options: {
4141
globalOutbound: Fetcher;
4242
loader: WorkerLoader;
4343
proxy: Fetcher<CodeModeProxy>;
44+
model?: LanguageModel;
4445
}): Promise<{
4546
prompt: string;
4647
tools: ToolSet;
@@ -67,7 +68,7 @@ export async function experimental_codemode(options: {
6768
execute: async ({ functionDescription }) => {
6869
try {
6970
const response = await generateObject({
70-
model: openai("gpt-4.1"),
71+
model: options.model ? options.model : openai("gpt-4.1"),
7172
schema: z.object({
7273
code: z.string()
7374
}),

0 commit comments

Comments
 (0)