mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 09:25:06 +03:00
* try a really long context window to maximize caching
* update examples
* attempt to update packages and useChat
* update endpoints
* update zod
* zod
* update to v5
* message update
* Revert "zod"
This reverts commit ec39bac6b6.
* revert zod
* zod i
* fix complete endpoints
* remove async
* change to content
* type cleanup
* Revert the package bumps to rebuild them.
* Bump zod to 2.25.76 in all packages.
* Bump openai in all packages.
* Bump ai and ai-related packages.
* Remove unneeded files.
* Fix the rest of the migration stuff.
* Prettier fixes.
* testing new gptoss models
* sonnet as pro
* back to 3.7
* revert test
* add policy list tool
* fix
* refactor
* ai sdk 5 fixes
* refactor complete endpoint
* edge function prompt
* remove example
* use limited model for completions
* remove duplicate
* Update bedrock.ts
Co-authored-by: divit <27228526+delgado3d@users.noreply.github.com>
* add default check
* only add prefix if more then one region
* temp use api
* refactor to use openai api
* test
* remove unused import
* Prettier lint
* Fix test
* revert back to bedrock
* Tiny style fix for spacing of code blocks from edit message button
* try generate text normally
* prompt adjust
* add list style to prompt
* prompt adjust
* prompt adjust emphasise display query
* update prompts
* prompt adjust
* remove package
* prompt adjust
---------
Co-authored-by: Jordi Enric <jordi.err@gmail.com>
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
Co-authored-by: divit <27228526+delgado3d@users.noreply.github.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
73 lines
2.4 KiB
TypeScript
73 lines
2.4 KiB
TypeScript
import { openai } from '@ai-sdk/openai'
|
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
import * as bedrockModule from './bedrock'
|
|
import { getModel, ModelErrorMessage } from './model'
|
|
|
|
vi.mock('@ai-sdk/openai', () => ({
|
|
openai: vi.fn(() => 'openai-model'),
|
|
}))
|
|
|
|
vi.mock('./bedrock', async () => ({
|
|
...(await vi.importActual('./bedrock')),
|
|
createRoutedBedrock: vi.fn(() => async (modelId: string) => ({
|
|
model: 'bedrock-model',
|
|
supportsCachePoint: modelId === 'anthropic.claude-3-7-sonnet-20250219-v1:0',
|
|
})),
|
|
checkAwsCredentials: vi.fn(),
|
|
}))
|
|
|
|
describe('getModel', () => {
|
|
const originalEnv = { ...process.env }
|
|
|
|
beforeEach(() => {
|
|
vi.resetAllMocks()
|
|
vi.stubEnv('AWS_BEDROCK_ROLE_ARN', 'test')
|
|
})
|
|
|
|
afterEach(() => {
|
|
process.env = { ...originalEnv }
|
|
})
|
|
|
|
it('should return bedrock model when AWS credentials are available and not throttled', async () => {
|
|
vi.mocked(bedrockModule.checkAwsCredentials).mockResolvedValue(true)
|
|
vi.stubEnv('IS_THROTTLED', 'false')
|
|
|
|
const { model, error, supportsCachePoint } = await getModel()
|
|
|
|
expect(model).toEqual('bedrock-model')
|
|
expect(supportsCachePoint).toBe(true)
|
|
expect(error).toBeUndefined()
|
|
})
|
|
|
|
it('should return bedrock model when AWS credentials are available and throttled', async () => {
|
|
vi.mocked(bedrockModule.checkAwsCredentials).mockResolvedValue(true)
|
|
vi.stubEnv('IS_THROTTLED', 'true')
|
|
|
|
const { model, error, supportsCachePoint } = await getModel()
|
|
|
|
expect(model).toEqual('bedrock-model')
|
|
expect(supportsCachePoint).toBe(false)
|
|
expect(error).toBeUndefined()
|
|
})
|
|
|
|
it('should return OpenAI model when AWS credentials are not available but OPENAI_API_KEY is set', async () => {
|
|
vi.mocked(bedrockModule.checkAwsCredentials).mockResolvedValue(false)
|
|
process.env.OPENAI_API_KEY = 'test-key'
|
|
|
|
const { model, supportsCachePoint } = await getModel()
|
|
|
|
expect(model).toEqual('openai-model')
|
|
expect(openai).toHaveBeenCalledWith('gpt-4.1-2025-04-14')
|
|
expect(supportsCachePoint).toBe(false)
|
|
})
|
|
|
|
it('should return error when neither AWS credentials nor OPENAI_API_KEY is available', async () => {
|
|
vi.mocked(bedrockModule.checkAwsCredentials).mockResolvedValue(false)
|
|
delete process.env.OPENAI_API_KEY
|
|
|
|
const { error } = await getModel('test-key')
|
|
|
|
expect(error).toEqual(new Error(ModelErrorMessage))
|
|
})
|
|
})
|