Skip to content

Commit a18e992

Browse files
daniel-lxscte
authored andcommitted
fix(openai): remove convertToSimpleMessages to fix tool calling for OpenAI-compatible providers (#10575)
1 parent 0c4ff3d commit a18e992

File tree

23 files changed

+1
-236
lines changed

23 files changed

+1
-236
lines changed

packages/types/src/provider-settings.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,6 @@ const vertexSchema = apiModelIdProviderModelSchema.extend({
242242
const openAiSchema = baseProviderSettingsSchema.extend({
243243
openAiBaseUrl: z.string().optional(),
244244
openAiApiKey: z.string().optional(),
245-
openAiLegacyFormat: z.boolean().optional(),
246245
openAiR1FormatEnabled: z.boolean().optional(),
247246
openAiModelId: z.string().optional(),
248247
openAiCustomModelInfo: modelInfoSchema.nullish(),

src/api/providers/openai.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import { XmlMatcher } from "../../utils/xml-matcher"
1717

1818
import { convertToOpenAiMessages } from "../transform/openai-format"
1919
import { convertToR1Format } from "../transform/r1-format"
20-
import { convertToSimpleMessages } from "../transform/simple-format"
2120
import { ApiStream, ApiStreamUsageChunk } from "../transform/stream"
2221
import { getModelParams } from "../transform/model-params"
2322

@@ -90,10 +89,8 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
9089
const modelUrl = this.options.openAiBaseUrl ?? ""
9190
const modelId = this.options.openAiModelId ?? ""
9291
const enabledR1Format = this.options.openAiR1FormatEnabled ?? false
93-
const enabledLegacyFormat = this.options.openAiLegacyFormat ?? false
9492
const isAzureAiInference = this._isAzureAiInference(modelUrl)
9593
const deepseekReasoner = modelId.includes("deepseek-reasoner") || enabledR1Format
96-
const ark = modelUrl.includes(".volces.com")
9794

9895
if (modelId.includes("o1") || modelId.includes("o3") || modelId.includes("o4")) {
9996
yield* this.handleO3FamilyMessage(modelId, systemPrompt, messages, metadata)
@@ -110,8 +107,6 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
110107

111108
if (deepseekReasoner) {
112109
convertedMessages = convertToR1Format([{ role: "user", content: systemPrompt }, ...messages])
113-
} else if (ark || enabledLegacyFormat) {
114-
convertedMessages = [systemMessage, ...convertToSimpleMessages(messages)]
115110
} else {
116111
if (modelInfo.supportsPromptCache) {
117112
systemMessage = {
@@ -233,9 +228,7 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
233228
model: modelId,
234229
messages: deepseekReasoner
235230
? convertToR1Format([{ role: "user", content: systemPrompt }, ...messages])
236-
: enabledLegacyFormat
237-
? [systemMessage, ...convertToSimpleMessages(messages)]
238-
: [systemMessage, ...convertToOpenAiMessages(messages)],
231+
: [systemMessage, ...convertToOpenAiMessages(messages)],
239232
...(metadata?.tools && { tools: this.convertToolsForOpenAI(metadata.tools) }),
240233
...(metadata?.tool_choice && { tool_choice: metadata.tool_choice }),
241234
...(metadata?.toolProtocol === "native" && {

src/api/transform/__tests__/simple-format.spec.ts

Lines changed: 0 additions & 140 deletions
This file was deleted.

src/api/transform/simple-format.ts

Lines changed: 0 additions & 58 deletions
This file was deleted.

webview-ui/src/components/settings/providers/OpenAICompatible.tsx

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ export const OpenAICompatible = ({
4040
const { t } = useAppTranslation()
4141

4242
const [azureApiVersionSelected, setAzureApiVersionSelected] = useState(!!apiConfiguration?.azureApiVersion)
43-
const [openAiLegacyFormatSelected, setOpenAiLegacyFormatSelected] = useState(!!apiConfiguration?.openAiLegacyFormat)
4443

4544
const [openAiModels, setOpenAiModels] = useState<Record<string, ModelInfo> | null>(null)
4645

@@ -154,16 +153,6 @@ export const OpenAICompatible = ({
154153
onChange={handleInputChange("openAiR1FormatEnabled", noTransform)}
155154
openAiR1FormatEnabled={apiConfiguration?.openAiR1FormatEnabled ?? false}
156155
/>
157-
<div>
158-
<Checkbox
159-
checked={openAiLegacyFormatSelected}
160-
onChange={(checked: boolean) => {
161-
setOpenAiLegacyFormatSelected(checked)
162-
setApiConfigurationField("openAiLegacyFormat", checked)
163-
}}>
164-
{t("settings:providers.useLegacyFormat")}
165-
</Checkbox>
166-
</div>
167156
<Checkbox
168157
checked={apiConfiguration?.openAiStreamingEnabled ?? true}
169158
onChange={handleInputChange("openAiStreamingEnabled", noTransform)}>

webview-ui/src/i18n/locales/ca/settings.json

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

webview-ui/src/i18n/locales/de/settings.json

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

webview-ui/src/i18n/locales/en/settings.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,6 @@
287287
"useCustomBaseUrl": "Use custom base URL",
288288
"useReasoning": "Enable reasoning",
289289
"useHostHeader": "Use custom Host header",
290-
"useLegacyFormat": "Use legacy OpenAI API format",
291290
"customHeaders": "Custom Headers",
292291
"headerName": "Header name",
293292
"headerValue": "Header value",

webview-ui/src/i18n/locales/es/settings.json

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

webview-ui/src/i18n/locales/fr/settings.json

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)