mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-24 22:15:18 +00:00
Major additions: - Complete Next.js studio application with 1600+ components - Docker support (Dockerfile.combined, docker-compose.yml) - GCP deployment documentation and benchmarks - SQL benchmark scripts for performance testing - Sentry integration for monitoring - Comprehensive test suite and mocks Studio features: - Dashboard and admin interfaces - Data visualization components - Authentication and user management - API integration with RuVector backend - Static data and public assets 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
74 lines
2.1 KiB
TypeScript
74 lines
2.1 KiB
TypeScript
export type ProviderName = 'bedrock' | 'openai' | 'anthropic'
|
|
|
|
export type BedrockModel = 'anthropic.claude-3-7-sonnet-20250219-v1:0' | 'openai.gpt-oss-120b-1:0'
|
|
|
|
export type OpenAIModel = 'gpt-5' | 'gpt-5-mini'
|
|
|
|
export type AnthropicModel = 'claude-sonnet-4-20250514' | 'claude-3-5-haiku-20241022'
|
|
|
|
export type Model = BedrockModel | OpenAIModel | AnthropicModel
|
|
|
|
export type ProviderModelConfig = {
|
|
/** Optional providerOptions to attach to the system message for this model */
|
|
promptProviderOptions?: Record<string, any>
|
|
/** The default model for this provider (used when limited or no preferred specified) */
|
|
default: boolean
|
|
}
|
|
|
|
export type ProviderRegistry = {
|
|
bedrock: {
|
|
models: Record<BedrockModel, ProviderModelConfig>
|
|
providerOptions?: Record<string, any>
|
|
}
|
|
openai: {
|
|
models: Record<OpenAIModel, ProviderModelConfig>
|
|
providerOptions?: Record<string, any>
|
|
}
|
|
anthropic: {
|
|
models: Record<AnthropicModel, ProviderModelConfig>
|
|
providerOptions?: Record<string, any>
|
|
}
|
|
}
|
|
|
|
export const PROVIDERS: ProviderRegistry = {
|
|
bedrock: {
|
|
models: {
|
|
'anthropic.claude-3-7-sonnet-20250219-v1:0': {
|
|
promptProviderOptions: {
|
|
bedrock: {
|
|
// Always cache the system prompt (must not contain dynamic content)
|
|
cachePoint: { type: 'default' },
|
|
},
|
|
},
|
|
default: false,
|
|
},
|
|
'openai.gpt-oss-120b-1:0': {
|
|
default: true,
|
|
},
|
|
},
|
|
},
|
|
openai: {
|
|
models: {
|
|
'gpt-5': { default: false },
|
|
'gpt-5-mini': { default: true },
|
|
},
|
|
providerOptions: {
|
|
openai: {
|
|
reasoningEffort: 'minimal',
|
|
},
|
|
},
|
|
},
|
|
anthropic: {
|
|
models: {
|
|
'claude-sonnet-4-20250514': { default: false },
|
|
'claude-3-5-haiku-20241022': { default: true },
|
|
},
|
|
},
|
|
}
|
|
|
|
export function getDefaultModelForProvider(provider: ProviderName): Model | undefined {
|
|
const models = PROVIDERS[provider]?.models as Record<Model, ProviderModelConfig>
|
|
if (!models) return undefined
|
|
|
|
return Object.keys(models).find((id) => models[id as Model]?.default) as Model | undefined
|
|
}
|