Skip to content

Commit dd80c8d

Browse files
committed
feat: enhance system prompt handling for interleaved thinking with thinking budget integration
1 parent 5175245 commit dd80c8d

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

src/routes/messages/non-stream-translation.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,11 @@ function translateAnthropicMessagesToOpenAI(
8989
modelId: string,
9090
thinkingBudget: number | undefined,
9191
): Array<Message> {
92-
const systemMessages = handleSystemPrompt(payload.system, modelId)
92+
const systemMessages = handleSystemPrompt(
93+
payload.system,
94+
modelId,
95+
thinkingBudget,
96+
)
9397
const otherMessages = payload.messages.flatMap((message) =>
9498
message.role === "user" ?
9599
handleUserMessage(message)
@@ -98,7 +102,8 @@ function translateAnthropicMessagesToOpenAI(
98102
if (modelId.startsWith("claude") && thinkingBudget) {
99103
const thinkingMessage = {
100104
role: "user",
101-
content: "Please strictly follow Interleaved thinking",
105+
content:
106+
"<system-reminder>Please strictly follow Interleaved thinking</system-reminder>",
102107
} as Message
103108
return [...systemMessages, thinkingMessage, ...otherMessages]
104109
}
@@ -108,19 +113,21 @@ function translateAnthropicMessagesToOpenAI(
108113
function handleSystemPrompt(
109114
system: string | Array<AnthropicTextBlock> | undefined,
110115
modelId: string,
116+
thinkingBudget: number | undefined,
111117
): Array<Message> {
112118
if (!system) {
113119
return []
114120
}
115121

116-
let extraPrompt = `
117-
## Interleaved thinking
118-
- Interleaved thinking is enabled
119-
- You MUST think after receiving tool results before deciding the next action or final answer.
120-
`
121-
if (!modelId.startsWith("claude")) {
122-
extraPrompt = ""
122+
let extraPrompt = ""
123+
if (modelId.startsWith("claude") && thinkingBudget) {
124+
extraPrompt = `
125+
## Interleaved thinking
126+
- Interleaved thinking is enabled
127+
- You MUST think after receiving tool results before deciding the next action or final answer.
128+
`
123129
}
130+
124131
if (typeof system === "string") {
125132
return [{ role: "system", content: system + extraPrompt }]
126133
} else {

0 commit comments

Comments
 (0)