From 58fdb6f9ef5d92b0c794408f9f9b3bf4a7a0b3ef Mon Sep 17 00:00:00 2001 From: Anton Shpigunov Date: Fri, 31 Jan 2025 23:09:05 +0200 Subject: [PATCH 1/2] support o3-mini --- src/api/providers/__tests__/openai-native.test.ts | 14 ++++++++++++++ src/shared/api.ts | 8 ++++++++ 2 files changed, 22 insertions(+) diff --git a/src/api/providers/__tests__/openai-native.test.ts b/src/api/providers/__tests__/openai-native.test.ts index f1da211..2e9f4f7 100644 --- a/src/api/providers/__tests__/openai-native.test.ts +++ b/src/api/providers/__tests__/openai-native.test.ts @@ -289,6 +289,20 @@ describe("OpenAiNativeHandler", () => { }) }) + it("should complete prompt successfully with o3-mini model", async () => { + handler = new OpenAiNativeHandler({ + apiModelId: "o3-mini", + openAiNativeApiKey: "test-api-key", + }) + + const result = await handler.completePrompt("Test prompt") + expect(result).toBe("Test response") + expect(mockCreate).toHaveBeenCalledWith({ + model: "o3-mini", + messages: [{ role: "user", content: "Test prompt" }], + }) + }) + it("should handle API errors", async () => { mockCreate.mockRejectedValueOnce(new Error("API Error")) await expect(handler.completePrompt("Test prompt")).rejects.toThrow( diff --git a/src/shared/api.ts b/src/shared/api.ts index e5bcda4..7da67fd 100644 --- a/src/shared/api.ts +++ b/src/shared/api.ts @@ -510,6 +510,14 @@ export type OpenAiNativeModelId = keyof typeof openAiNativeModels export const openAiNativeDefaultModelId: OpenAiNativeModelId = "gpt-4o" export const openAiNativeModels = { // don't support tool use yet + "o3-mini": { + maxTokens: 100_000, + contextWindow: 200_000, + supportsImages: false, + supportsPromptCache: false, + inputPrice: 1.1, + outputPrice: 4.4, + }, o1: { maxTokens: 100_000, contextWindow: 200_000, From 7329e945b474cbb58c6e6a4aead33ba62f2394a1 Mon Sep 17 00:00:00 2001 From: Anton Shpigunov Date: Fri, 31 Jan 2025 23:19:17 +0200 Subject: [PATCH 2/2] Add expectation to match actual API response in tests --- src/api/providers/__tests__/openai-native.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/api/providers/__tests__/openai-native.test.ts b/src/api/providers/__tests__/openai-native.test.ts index 2e9f4f7..4488bd3 100644 --- a/src/api/providers/__tests__/openai-native.test.ts +++ b/src/api/providers/__tests__/openai-native.test.ts @@ -300,6 +300,7 @@ describe("OpenAiNativeHandler", () => { expect(mockCreate).toHaveBeenCalledWith({ model: "o3-mini", messages: [{ role: "user", content: "Test prompt" }], + temperature: 0, }) })