Skip to content

Commit d49329a

Browse files
hcygnawcygnaw
andauthored
🐛 fix: fix message roles for specific Azure OpenAI models (#6222)
* 🐛 fix: update message roles for specific Azure OpenAI models * 🐛 fix: refine role assignment logic for specific Azure OpenAI models * Create an auto-deploy file * Delete .github/workflows/lobechatazure-AutoDeployTrigger-bdbe175d-28d2-43a7-a2db-f0a2225af446.yml --------- Co-authored-by: yichuan <[email protected]>
1 parent 5d59f0d commit d49329a

File tree

1 file changed

+20
-1
lines changed
  • src/libs/agent-runtime/azureOpenai

1 file changed

+20
-1
lines changed

src/libs/agent-runtime/azureOpenai/index.ts

+20-1
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,28 @@ export class LobeAzureOpenAI implements LobeRuntimeAI {
3333
const { messages, model, ...params } = payload;
3434
// o1 series models on Azure OpenAI does not support streaming currently
3535
const enableStreaming = model.includes('o1') ? false : (params.stream ?? true);
36+
37+
// Convert 'system' role to 'user' or 'developer' based on the model
38+
const systemToUserModels = new Set([
39+
'o1-preview',
40+
'o1-preview-2024-09-12',
41+
'o1-mini',
42+
'o1-mini-2024-09-12',
43+
]);
44+
45+
const updatedMessages = messages.map((message) => ({
46+
...message,
47+
role:
48+
(model.includes('o1') || model.includes('o3')) && message.role === 'system'
49+
? [...systemToUserModels].some((sub) => model.includes(sub))
50+
? 'user'
51+
: 'developer'
52+
: message.role,
53+
}));
54+
3655
try {
3756
const response = await this.client.chat.completions.create({
38-
messages: messages as OpenAI.ChatCompletionMessageParam[],
57+
messages: updatedMessages as OpenAI.ChatCompletionMessageParam[],
3958
model,
4059
...params,
4160
max_completion_tokens: null,

0 commit comments

Comments
 (0)