@llmops/core 0.5.0-beta.2 → 0.5.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +177 -2
- package/dist/index.d.cts +71 -3
- package/dist/index.d.mts +71 -3
- package/dist/index.mjs +175 -3
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -92,6 +92,171 @@ let SupportedProviders = /* @__PURE__ */ function(SupportedProviders$1) {
|
|
|
92
92
|
return SupportedProviders$1;
|
|
93
93
|
}({});
|
|
94
94
|
|
|
95
|
+
//#endregion
|
|
96
|
+
//#region src/providers/default-providers.ts
|
|
97
|
+
/**
|
|
98
|
+
* Top providers with simple API key authentication.
|
|
99
|
+
* Providers requiring additional config (Azure, Bedrock, Vertex) are excluded
|
|
100
|
+
* as they need endpoint/region info that can't be auto-detected.
|
|
101
|
+
*/
|
|
102
|
+
const DEFAULT_PROVIDER_MAPPINGS = [
|
|
103
|
+
{
|
|
104
|
+
provider: SupportedProviders.OPENAI,
|
|
105
|
+
slug: "openai",
|
|
106
|
+
envVar: "OPENAI_API_KEY"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
provider: SupportedProviders.ANTHROPIC,
|
|
110
|
+
slug: "anthropic",
|
|
111
|
+
envVar: "ANTHROPIC_API_KEY"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
provider: SupportedProviders.GOOGLE,
|
|
115
|
+
slug: "google",
|
|
116
|
+
envVar: "GOOGLE_API_KEY"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
provider: SupportedProviders.MISTRAL_AI,
|
|
120
|
+
slug: "mistral",
|
|
121
|
+
envVar: "MISTRAL_API_KEY"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
provider: SupportedProviders.GROQ,
|
|
125
|
+
slug: "groq",
|
|
126
|
+
envVar: "GROQ_API_KEY"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
provider: SupportedProviders.COHERE,
|
|
130
|
+
slug: "cohere",
|
|
131
|
+
envVar: "COHERE_API_KEY"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
provider: SupportedProviders.TOGETHER_AI,
|
|
135
|
+
slug: "together",
|
|
136
|
+
envVar: "TOGETHER_API_KEY"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
provider: SupportedProviders.PERPLEXITY_AI,
|
|
140
|
+
slug: "perplexity",
|
|
141
|
+
envVar: "PERPLEXITY_API_KEY"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
provider: SupportedProviders.DEEPSEEK,
|
|
145
|
+
slug: "deepseek",
|
|
146
|
+
envVar: "DEEPSEEK_API_KEY"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
provider: SupportedProviders.FIREWORKS_AI,
|
|
150
|
+
slug: "fireworks",
|
|
151
|
+
envVar: "FIREWORKS_API_KEY"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
provider: SupportedProviders.OPENROUTER,
|
|
155
|
+
slug: "openrouter",
|
|
156
|
+
envVar: "OPENROUTER_API_KEY"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
provider: SupportedProviders.X_AI,
|
|
160
|
+
slug: "xai",
|
|
161
|
+
envVar: "XAI_API_KEY"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
provider: SupportedProviders.CEREBRAS,
|
|
165
|
+
slug: "cerebras",
|
|
166
|
+
envVar: "CEREBRAS_API_KEY"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
provider: SupportedProviders.SAMBANOVA,
|
|
170
|
+
slug: "sambanova",
|
|
171
|
+
envVar: "SAMBANOVA_API_KEY"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
provider: SupportedProviders.HUGGINGFACE,
|
|
175
|
+
slug: "huggingface",
|
|
176
|
+
envVar: "HUGGINGFACE_API_KEY"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
provider: SupportedProviders.REPLICATE,
|
|
180
|
+
slug: "replicate",
|
|
181
|
+
envVar: "REPLICATE_API_TOKEN"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
provider: SupportedProviders.AI21,
|
|
185
|
+
slug: "ai21",
|
|
186
|
+
envVar: "AI21_API_KEY"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
provider: SupportedProviders.DEEPINFRA,
|
|
190
|
+
slug: "deepinfra",
|
|
191
|
+
envVar: "DEEPINFRA_API_KEY"
|
|
192
|
+
}
|
|
193
|
+
];
|
|
194
|
+
/**
|
|
195
|
+
* Get default provider configurations from environment variables.
|
|
196
|
+
*
|
|
197
|
+
* Scans for known API key environment variables and creates
|
|
198
|
+
* InlineProviderConfig entries for each one found.
|
|
199
|
+
*
|
|
200
|
+
* @param env - Environment variables object (defaults to process.env)
|
|
201
|
+
* @returns Array of auto-configured providers
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* // With OPENAI_API_KEY and ANTHROPIC_API_KEY set in environment:
|
|
206
|
+
* const defaults = getDefaultProviders();
|
|
207
|
+
* // Returns:
|
|
208
|
+
* // [
|
|
209
|
+
* // { provider: 'openai', slug: 'openai', apiKey: '...' },
|
|
210
|
+
* // { provider: 'anthropic', slug: 'anthropic', apiKey: '...' }
|
|
211
|
+
* // ]
|
|
212
|
+
* ```
|
|
213
|
+
*/
|
|
214
|
+
function getDefaultProviders(env = process.env) {
|
|
215
|
+
const providers = [];
|
|
216
|
+
for (const mapping of DEFAULT_PROVIDER_MAPPINGS) {
|
|
217
|
+
const apiKey = env[mapping.envVar];
|
|
218
|
+
if (apiKey) providers.push({
|
|
219
|
+
provider: mapping.provider,
|
|
220
|
+
slug: mapping.slug,
|
|
221
|
+
apiKey
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
return providers;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Merge user-provided providers with default providers.
|
|
228
|
+
*
|
|
229
|
+
* User-provided providers take precedence:
|
|
230
|
+
* - If a user specifies a provider with the same slug, the default is ignored
|
|
231
|
+
* - If a user specifies the same provider type with a different slug, both are kept
|
|
232
|
+
*
|
|
233
|
+
* @param userProviders - User-configured providers (may be undefined)
|
|
234
|
+
* @param env - Environment variables object (defaults to process.env)
|
|
235
|
+
* @returns Merged array of providers (user configs + non-conflicting defaults)
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* ```typescript
|
|
239
|
+
* // User overrides openai with custom slug
|
|
240
|
+
* const merged = mergeWithDefaultProviders([
|
|
241
|
+
* { provider: 'openai', slug: 'my-openai', apiKey: 'custom-key' }
|
|
242
|
+
* ]);
|
|
243
|
+
* // Default 'openai' slug is still added if OPENAI_API_KEY is set,
|
|
244
|
+
* // user's 'my-openai' is kept as separate config
|
|
245
|
+
* ```
|
|
246
|
+
*/
|
|
247
|
+
function mergeWithDefaultProviders(userProviders, env = process.env) {
|
|
248
|
+
const defaults = getDefaultProviders(env);
|
|
249
|
+
if (!userProviders || userProviders.length === 0) return defaults;
|
|
250
|
+
const userSlugs = new Set(userProviders.map((p) => p.slug));
|
|
251
|
+
const nonConflictingDefaults = defaults.filter((d) => !userSlugs.has(d.slug));
|
|
252
|
+
return [...userProviders, ...nonConflictingDefaults];
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* List of supported default provider environment variables.
|
|
256
|
+
* Useful for documentation or debugging.
|
|
257
|
+
*/
|
|
258
|
+
const DEFAULT_PROVIDER_ENV_VARS = DEFAULT_PROVIDER_MAPPINGS.map((m) => m.envVar);
|
|
259
|
+
|
|
95
260
|
//#endregion
|
|
96
261
|
//#region src/schemas/openai.ts
|
|
97
262
|
const chatCompletionContentPartTextSchema = require_db.object({
|
|
@@ -451,12 +616,19 @@ const inlineProviderConfigSchema = require_db.object({
|
|
|
451
616
|
* Schema for providers array
|
|
452
617
|
*/
|
|
453
618
|
const providersConfigSchema = require_db.array(inlineProviderConfigSchema).optional();
|
|
454
|
-
|
|
619
|
+
/**
|
|
620
|
+
* Base schema without refinements (used for transform)
|
|
621
|
+
*/
|
|
622
|
+
const llmopsConfigBaseSchema = require_db.object({
|
|
455
623
|
database: require_db.any().optional(),
|
|
456
624
|
basePath: require_db.string().min(1, "Base path is required and cannot be empty").refine((path) => path.startsWith("/"), "Base path must start with a forward slash"),
|
|
457
625
|
schema: require_db.string().optional().default("llmops"),
|
|
458
626
|
providers: providersConfigSchema
|
|
459
|
-
})
|
|
627
|
+
});
|
|
628
|
+
const llmopsConfigSchema = llmopsConfigBaseSchema.transform((config) => ({
|
|
629
|
+
...config,
|
|
630
|
+
providers: mergeWithDefaultProviders(config.providers)
|
|
631
|
+
})).refine((config) => config.database !== void 0 || config.providers && config.providers.length > 0, "Either database or providers must be configured. Set a database connection, configure providers explicitly, or set API key environment variables (e.g., OPENAI_API_KEY).");
|
|
460
632
|
function validateLLMOpsConfig(config) {
|
|
461
633
|
const result = llmopsConfigSchema.safeParse(config);
|
|
462
634
|
if (!result.success) {
|
|
@@ -3756,6 +3928,7 @@ var ManifestRouter = class {
|
|
|
3756
3928
|
|
|
3757
3929
|
//#endregion
|
|
3758
3930
|
exports.CacheService = CacheService;
|
|
3931
|
+
exports.DEFAULT_PROVIDER_ENV_VARS = DEFAULT_PROVIDER_ENV_VARS;
|
|
3759
3932
|
exports.FileCacheBackend = FileCacheBackend;
|
|
3760
3933
|
exports.MS = MS;
|
|
3761
3934
|
exports.ManifestBuilder = ManifestBuilder;
|
|
@@ -3808,12 +3981,14 @@ Object.defineProperty(exports, 'gateway', {
|
|
|
3808
3981
|
exports.generateId = generateId;
|
|
3809
3982
|
exports.getAuthClientOptions = require_db.getAuthClientOptions;
|
|
3810
3983
|
exports.getDefaultPricingProvider = getDefaultPricingProvider;
|
|
3984
|
+
exports.getDefaultProviders = getDefaultProviders;
|
|
3811
3985
|
exports.getMigrations = require_db.getMigrations;
|
|
3812
3986
|
exports.guardrailConfigsSchema = require_db.guardrailConfigsSchema;
|
|
3813
3987
|
exports.llmRequestsSchema = require_db.llmRequestsSchema;
|
|
3814
3988
|
exports.llmopsConfigSchema = llmopsConfigSchema;
|
|
3815
3989
|
exports.logger = require_db.logger;
|
|
3816
3990
|
exports.matchType = require_db.matchType;
|
|
3991
|
+
exports.mergeWithDefaultProviders = mergeWithDefaultProviders;
|
|
3817
3992
|
exports.microDollarsToDollars = microDollarsToDollars;
|
|
3818
3993
|
exports.parsePartialTableData = require_db.parsePartialTableData;
|
|
3819
3994
|
exports.parseTableData = require_db.parseTableData;
|
package/dist/index.d.cts
CHANGED
|
@@ -418,8 +418,58 @@ interface InlineProviderConfig extends Partial<BaseProviderConfig> {
|
|
|
418
418
|
/** Array of inline provider configurations */
|
|
419
419
|
type InlineProvidersConfig = InlineProviderConfig[];
|
|
420
420
|
//#endregion
|
|
421
|
+
//#region src/providers/default-providers.d.ts
|
|
422
|
+
/**
|
|
423
|
+
* Get default provider configurations from environment variables.
|
|
424
|
+
*
|
|
425
|
+
* Scans for known API key environment variables and creates
|
|
426
|
+
* InlineProviderConfig entries for each one found.
|
|
427
|
+
*
|
|
428
|
+
* @param env - Environment variables object (defaults to process.env)
|
|
429
|
+
* @returns Array of auto-configured providers
|
|
430
|
+
*
|
|
431
|
+
* @example
|
|
432
|
+
* ```typescript
|
|
433
|
+
* // With OPENAI_API_KEY and ANTHROPIC_API_KEY set in environment:
|
|
434
|
+
* const defaults = getDefaultProviders();
|
|
435
|
+
* // Returns:
|
|
436
|
+
* // [
|
|
437
|
+
* // { provider: 'openai', slug: 'openai', apiKey: '...' },
|
|
438
|
+
* // { provider: 'anthropic', slug: 'anthropic', apiKey: '...' }
|
|
439
|
+
* // ]
|
|
440
|
+
* ```
|
|
441
|
+
*/
|
|
442
|
+
declare function getDefaultProviders(env?: Record<string, string | undefined>): InlineProviderConfig[];
|
|
443
|
+
/**
|
|
444
|
+
* Merge user-provided providers with default providers.
|
|
445
|
+
*
|
|
446
|
+
* User-provided providers take precedence:
|
|
447
|
+
* - If a user specifies a provider with the same slug, the default is ignored
|
|
448
|
+
* - If a user specifies the same provider type with a different slug, both are kept
|
|
449
|
+
*
|
|
450
|
+
* @param userProviders - User-configured providers (may be undefined)
|
|
451
|
+
* @param env - Environment variables object (defaults to process.env)
|
|
452
|
+
* @returns Merged array of providers (user configs + non-conflicting defaults)
|
|
453
|
+
*
|
|
454
|
+
* @example
|
|
455
|
+
* ```typescript
|
|
456
|
+
* // User overrides openai with custom slug
|
|
457
|
+
* const merged = mergeWithDefaultProviders([
|
|
458
|
+
* { provider: 'openai', slug: 'my-openai', apiKey: 'custom-key' }
|
|
459
|
+
* ]);
|
|
460
|
+
* // Default 'openai' slug is still added if OPENAI_API_KEY is set,
|
|
461
|
+
* // user's 'my-openai' is kept as separate config
|
|
462
|
+
* ```
|
|
463
|
+
*/
|
|
464
|
+
declare function mergeWithDefaultProviders(userProviders: InlineProviderConfig[] | undefined, env?: Record<string, string | undefined>): InlineProviderConfig[];
|
|
465
|
+
/**
|
|
466
|
+
* List of supported default provider environment variables.
|
|
467
|
+
* Useful for documentation or debugging.
|
|
468
|
+
*/
|
|
469
|
+
declare const DEFAULT_PROVIDER_ENV_VARS: string[];
|
|
470
|
+
//#endregion
|
|
421
471
|
//#region src/schemas/config.d.ts
|
|
422
|
-
declare const llmopsConfigSchema: z.ZodObject<{
|
|
472
|
+
declare const llmopsConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
423
473
|
database: z.ZodOptional<z.ZodAny>;
|
|
424
474
|
basePath: z.ZodString;
|
|
425
475
|
schema: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
@@ -431,7 +481,25 @@ declare const llmopsConfigSchema: z.ZodObject<{
|
|
|
431
481
|
requestTimeout: z.ZodOptional<z.ZodNumber>;
|
|
432
482
|
forwardHeaders: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
433
483
|
}, z.core.$loose>>>;
|
|
434
|
-
}, z.core.$strip
|
|
484
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
485
|
+
providers: InlineProviderConfig[];
|
|
486
|
+
basePath: string;
|
|
487
|
+
schema: string;
|
|
488
|
+
database?: any;
|
|
489
|
+
}, {
|
|
490
|
+
basePath: string;
|
|
491
|
+
schema: string;
|
|
492
|
+
database?: any;
|
|
493
|
+
providers?: {
|
|
494
|
+
[x: string]: unknown;
|
|
495
|
+
provider: string;
|
|
496
|
+
slug: string;
|
|
497
|
+
apiKey?: string | undefined;
|
|
498
|
+
customHost?: string | undefined;
|
|
499
|
+
requestTimeout?: number | undefined;
|
|
500
|
+
forwardHeaders?: string[] | undefined;
|
|
501
|
+
}[] | undefined;
|
|
502
|
+
}>>;
|
|
435
503
|
/**
|
|
436
504
|
* Validated LLMOps configuration
|
|
437
505
|
*
|
|
@@ -3848,4 +3916,4 @@ declare class ManifestRouter {
|
|
|
3848
3916
|
routeWithWeights(configIdOrSlug: string, environmentId: string, context?: RoutingContext): RoutingResult | null;
|
|
3849
3917
|
}
|
|
3850
3918
|
//#endregion
|
|
3851
|
-
export { type AnthropicProviderConfig, type AnyProviderConfig, AuthClientDatabaseConfig, AuthClientOptions, type AzureAIProviderConfig, type AzureOpenAIProviderConfig, BaseCacheConfig, type BaseProviderConfig, type BedrockProviderConfig, CacheBackend, CacheBackendType, CacheConfig, CacheEntry, CacheOptions, CacheService, CacheStats, ChatCompletionCreateParamsBase, Config, ConfigVariant, ConfigVariantsDataLayer, ConfigVariantsTable, ConfigsDataLayer, ConfigsTable, type CortexProviderConfig, CostResult, DataLayer, Database, DatabaseConnection, DatabaseOptions, DatabaseType, Dataset, DatasetRecord, DatasetRecordsTable, DatasetVersion, DatasetVersionRecord, DatasetVersionRecordsTable, DatasetVersionsTable, DatasetsDataLayer, DatasetsTable, Environment, EnvironmentSecret, EnvironmentSecretsDataLayer, EnvironmentSecretsTable, EnvironmentsDataLayer, EnvironmentsTable, FileCacheBackend, FileCacheConfig, type FireworksAIProviderConfig, GatewayManifest, type GoogleProviderConfig, GuardrailConfig, GuardrailConfigsDataLayer, GuardrailConfigsTable, GuardrailResult, GuardrailResults, type HuggingFaceProviderConfig, type InlineProviderConfig, type InlineProvidersConfig, Insertable, LLMOpsClient, LLMOpsConfig, type LLMOpsConfigInput, LLMRequest, LLMRequestInsert, LLMRequestsDataLayer, LLMRequestsTable, MS, ManifestBuilder, ManifestConfig, ManifestEnvironment, ManifestGuardrail, ManifestProviderGuardrailOverride, ManifestRouter, ManifestService, ManifestTargetingRule, ManifestVariantVersion, MemoryCacheBackend, MemoryCacheConfig, MigrationOptions, MigrationResult, type MistralAIProviderConfig, ModelPricing, ModelsDevPricingProvider, type OpenAIProviderConfig, type OracleProviderConfig, Playground, PlaygroundColumn, PlaygroundResult, PlaygroundResultsDataLayer, PlaygroundResultsTable, PlaygroundRun, PlaygroundRunsDataLayer, PlaygroundRunsTable, PlaygroundsDataLayer, PlaygroundsTable, Prettify, PricingProvider, ProviderConfig, type ProviderConfigMap, ProviderConfigsDataLayer, ProviderConfigsTable, ProviderGuardrailOverride, ProviderGuardrailOverridesDataLayer, ProviderGuardrailOverridesTable, type ProvidersConfig, RoutingContext, RoutingResult, SCHEMA_METADATA, type SagemakerProviderConfig, Selectable, type StabilityAIProviderConfig, SupportedProviders, TableName, TargetingRule, TargetingRulesDataLayer, TargetingRulesTable, Updateable, UsageData, type ValidatedLLMOpsConfig, Variant, VariantJsonData, VariantVersion, VariantVersionsDataLayer, VariantVersionsTable, VariantsDataLayer, VariantsTable, type VertexAIProviderConfig, type WorkersAIProviderConfig, WorkspaceSettings, WorkspaceSettingsDataLayer, WorkspaceSettingsTable, calculateCost, chatCompletionCreateParamsBaseSchema, configVariantsSchema, configsSchema, createConfigDataLayer, createConfigVariantDataLayer, createDataLayer, createDatabase, createDatabaseFromConnection, createDatasetsDataLayer, createEnvironmentDataLayer, createEnvironmentSecretDataLayer, createGuardrailConfigsDataLayer, createLLMRequestsDataLayer, createNeonDialect, createPlaygroundDataLayer, createPlaygroundResultsDataLayer, createPlaygroundRunsDataLayer, createProviderConfigsDataLayer, createProviderGuardrailOverridesDataLayer, createTargetingRulesDataLayer, createVariantDataLayer, createVariantVersionsDataLayer, createWorkspaceSettingsDataLayer, datasetRecordsSchema, datasetVersionRecordsSchema, datasetVersionsSchema, datasetsSchema, detectDatabaseType, dollarsToMicroDollars, environmentSecretsSchema, environmentsSchema, executeWithSchema, formatCost, gateway, generateId, getAuthClientOptions, getDefaultPricingProvider, getMigrations, guardrailConfigsSchema, llmRequestsSchema, llmopsConfigSchema, logger, matchType, microDollarsToDollars, parsePartialTableData, parseTableData, playgroundColumnSchema, playgroundResultsSchema, playgroundRunsSchema, playgroundsSchema, providerConfigsSchema, providerGuardrailOverridesSchema, runAutoMigrations, schemas, targetingRulesSchema, validateLLMOpsConfig, validatePartialTableData, validateTableData, variantJsonDataSchema, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
|
|
3919
|
+
export { type AnthropicProviderConfig, type AnyProviderConfig, AuthClientDatabaseConfig, AuthClientOptions, type AzureAIProviderConfig, type AzureOpenAIProviderConfig, BaseCacheConfig, type BaseProviderConfig, type BedrockProviderConfig, CacheBackend, CacheBackendType, CacheConfig, CacheEntry, CacheOptions, CacheService, CacheStats, ChatCompletionCreateParamsBase, Config, ConfigVariant, ConfigVariantsDataLayer, ConfigVariantsTable, ConfigsDataLayer, ConfigsTable, type CortexProviderConfig, CostResult, DEFAULT_PROVIDER_ENV_VARS, DataLayer, Database, DatabaseConnection, DatabaseOptions, DatabaseType, Dataset, DatasetRecord, DatasetRecordsTable, DatasetVersion, DatasetVersionRecord, DatasetVersionRecordsTable, DatasetVersionsTable, DatasetsDataLayer, DatasetsTable, Environment, EnvironmentSecret, EnvironmentSecretsDataLayer, EnvironmentSecretsTable, EnvironmentsDataLayer, EnvironmentsTable, FileCacheBackend, FileCacheConfig, type FireworksAIProviderConfig, GatewayManifest, type GoogleProviderConfig, GuardrailConfig, GuardrailConfigsDataLayer, GuardrailConfigsTable, GuardrailResult, GuardrailResults, type HuggingFaceProviderConfig, type InlineProviderConfig, type InlineProvidersConfig, Insertable, LLMOpsClient, LLMOpsConfig, type LLMOpsConfigInput, LLMRequest, LLMRequestInsert, LLMRequestsDataLayer, LLMRequestsTable, MS, ManifestBuilder, ManifestConfig, ManifestEnvironment, ManifestGuardrail, ManifestProviderGuardrailOverride, ManifestRouter, ManifestService, ManifestTargetingRule, ManifestVariantVersion, MemoryCacheBackend, MemoryCacheConfig, MigrationOptions, MigrationResult, type MistralAIProviderConfig, ModelPricing, ModelsDevPricingProvider, type OpenAIProviderConfig, type OracleProviderConfig, Playground, PlaygroundColumn, PlaygroundResult, PlaygroundResultsDataLayer, PlaygroundResultsTable, PlaygroundRun, PlaygroundRunsDataLayer, PlaygroundRunsTable, PlaygroundsDataLayer, PlaygroundsTable, Prettify, PricingProvider, ProviderConfig, type ProviderConfigMap, ProviderConfigsDataLayer, ProviderConfigsTable, ProviderGuardrailOverride, ProviderGuardrailOverridesDataLayer, ProviderGuardrailOverridesTable, type ProvidersConfig, RoutingContext, RoutingResult, SCHEMA_METADATA, type SagemakerProviderConfig, Selectable, type StabilityAIProviderConfig, SupportedProviders, TableName, TargetingRule, TargetingRulesDataLayer, TargetingRulesTable, Updateable, UsageData, type ValidatedLLMOpsConfig, Variant, VariantJsonData, VariantVersion, VariantVersionsDataLayer, VariantVersionsTable, VariantsDataLayer, VariantsTable, type VertexAIProviderConfig, type WorkersAIProviderConfig, WorkspaceSettings, WorkspaceSettingsDataLayer, WorkspaceSettingsTable, calculateCost, chatCompletionCreateParamsBaseSchema, configVariantsSchema, configsSchema, createConfigDataLayer, createConfigVariantDataLayer, createDataLayer, createDatabase, createDatabaseFromConnection, createDatasetsDataLayer, createEnvironmentDataLayer, createEnvironmentSecretDataLayer, createGuardrailConfigsDataLayer, createLLMRequestsDataLayer, createNeonDialect, createPlaygroundDataLayer, createPlaygroundResultsDataLayer, createPlaygroundRunsDataLayer, createProviderConfigsDataLayer, createProviderGuardrailOverridesDataLayer, createTargetingRulesDataLayer, createVariantDataLayer, createVariantVersionsDataLayer, createWorkspaceSettingsDataLayer, datasetRecordsSchema, datasetVersionRecordsSchema, datasetVersionsSchema, datasetsSchema, detectDatabaseType, dollarsToMicroDollars, environmentSecretsSchema, environmentsSchema, executeWithSchema, formatCost, gateway, generateId, getAuthClientOptions, getDefaultPricingProvider, getDefaultProviders, getMigrations, guardrailConfigsSchema, llmRequestsSchema, llmopsConfigSchema, logger, matchType, mergeWithDefaultProviders, microDollarsToDollars, parsePartialTableData, parseTableData, playgroundColumnSchema, playgroundResultsSchema, playgroundRunsSchema, playgroundsSchema, providerConfigsSchema, providerGuardrailOverridesSchema, runAutoMigrations, schemas, targetingRulesSchema, validateLLMOpsConfig, validatePartialTableData, validateTableData, variantJsonDataSchema, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
|
package/dist/index.d.mts
CHANGED
|
@@ -418,8 +418,58 @@ interface InlineProviderConfig extends Partial<BaseProviderConfig> {
|
|
|
418
418
|
/** Array of inline provider configurations */
|
|
419
419
|
type InlineProvidersConfig = InlineProviderConfig[];
|
|
420
420
|
//#endregion
|
|
421
|
+
//#region src/providers/default-providers.d.ts
|
|
422
|
+
/**
|
|
423
|
+
* Get default provider configurations from environment variables.
|
|
424
|
+
*
|
|
425
|
+
* Scans for known API key environment variables and creates
|
|
426
|
+
* InlineProviderConfig entries for each one found.
|
|
427
|
+
*
|
|
428
|
+
* @param env - Environment variables object (defaults to process.env)
|
|
429
|
+
* @returns Array of auto-configured providers
|
|
430
|
+
*
|
|
431
|
+
* @example
|
|
432
|
+
* ```typescript
|
|
433
|
+
* // With OPENAI_API_KEY and ANTHROPIC_API_KEY set in environment:
|
|
434
|
+
* const defaults = getDefaultProviders();
|
|
435
|
+
* // Returns:
|
|
436
|
+
* // [
|
|
437
|
+
* // { provider: 'openai', slug: 'openai', apiKey: '...' },
|
|
438
|
+
* // { provider: 'anthropic', slug: 'anthropic', apiKey: '...' }
|
|
439
|
+
* // ]
|
|
440
|
+
* ```
|
|
441
|
+
*/
|
|
442
|
+
declare function getDefaultProviders(env?: Record<string, string | undefined>): InlineProviderConfig[];
|
|
443
|
+
/**
|
|
444
|
+
* Merge user-provided providers with default providers.
|
|
445
|
+
*
|
|
446
|
+
* User-provided providers take precedence:
|
|
447
|
+
* - If a user specifies a provider with the same slug, the default is ignored
|
|
448
|
+
* - If a user specifies the same provider type with a different slug, both are kept
|
|
449
|
+
*
|
|
450
|
+
* @param userProviders - User-configured providers (may be undefined)
|
|
451
|
+
* @param env - Environment variables object (defaults to process.env)
|
|
452
|
+
* @returns Merged array of providers (user configs + non-conflicting defaults)
|
|
453
|
+
*
|
|
454
|
+
* @example
|
|
455
|
+
* ```typescript
|
|
456
|
+
* // User overrides openai with custom slug
|
|
457
|
+
* const merged = mergeWithDefaultProviders([
|
|
458
|
+
* { provider: 'openai', slug: 'my-openai', apiKey: 'custom-key' }
|
|
459
|
+
* ]);
|
|
460
|
+
* // Default 'openai' slug is still added if OPENAI_API_KEY is set,
|
|
461
|
+
* // user's 'my-openai' is kept as separate config
|
|
462
|
+
* ```
|
|
463
|
+
*/
|
|
464
|
+
declare function mergeWithDefaultProviders(userProviders: InlineProviderConfig[] | undefined, env?: Record<string, string | undefined>): InlineProviderConfig[];
|
|
465
|
+
/**
|
|
466
|
+
* List of supported default provider environment variables.
|
|
467
|
+
* Useful for documentation or debugging.
|
|
468
|
+
*/
|
|
469
|
+
declare const DEFAULT_PROVIDER_ENV_VARS: string[];
|
|
470
|
+
//#endregion
|
|
421
471
|
//#region src/schemas/config.d.ts
|
|
422
|
-
declare const llmopsConfigSchema: z.ZodObject<{
|
|
472
|
+
declare const llmopsConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
423
473
|
database: z.ZodOptional<z.ZodAny>;
|
|
424
474
|
basePath: z.ZodString;
|
|
425
475
|
schema: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
@@ -431,7 +481,25 @@ declare const llmopsConfigSchema: z.ZodObject<{
|
|
|
431
481
|
requestTimeout: z.ZodOptional<z.ZodNumber>;
|
|
432
482
|
forwardHeaders: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
433
483
|
}, z.core.$loose>>>;
|
|
434
|
-
}, z.core.$strip
|
|
484
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
485
|
+
providers: InlineProviderConfig[];
|
|
486
|
+
basePath: string;
|
|
487
|
+
schema: string;
|
|
488
|
+
database?: any;
|
|
489
|
+
}, {
|
|
490
|
+
basePath: string;
|
|
491
|
+
schema: string;
|
|
492
|
+
database?: any;
|
|
493
|
+
providers?: {
|
|
494
|
+
[x: string]: unknown;
|
|
495
|
+
provider: string;
|
|
496
|
+
slug: string;
|
|
497
|
+
apiKey?: string | undefined;
|
|
498
|
+
customHost?: string | undefined;
|
|
499
|
+
requestTimeout?: number | undefined;
|
|
500
|
+
forwardHeaders?: string[] | undefined;
|
|
501
|
+
}[] | undefined;
|
|
502
|
+
}>>;
|
|
435
503
|
/**
|
|
436
504
|
* Validated LLMOps configuration
|
|
437
505
|
*
|
|
@@ -3848,4 +3916,4 @@ declare class ManifestRouter {
|
|
|
3848
3916
|
routeWithWeights(configIdOrSlug: string, environmentId: string, context?: RoutingContext): RoutingResult | null;
|
|
3849
3917
|
}
|
|
3850
3918
|
//#endregion
|
|
3851
|
-
export { type AnthropicProviderConfig, type AnyProviderConfig, AuthClientDatabaseConfig, AuthClientOptions, type AzureAIProviderConfig, type AzureOpenAIProviderConfig, BaseCacheConfig, type BaseProviderConfig, type BedrockProviderConfig, CacheBackend, CacheBackendType, CacheConfig, CacheEntry, CacheOptions, CacheService, CacheStats, ChatCompletionCreateParamsBase, type Config, type ConfigVariant, type ConfigVariantsDataLayer, type ConfigVariantsTable, type ConfigsDataLayer, type ConfigsTable, type CortexProviderConfig, CostResult, type DataLayer, type Database, DatabaseConnection, DatabaseOptions, DatabaseType, type Dataset, type DatasetRecord, DatasetRecordsTable, type DatasetVersion, type DatasetVersionRecord, DatasetVersionRecordsTable, DatasetVersionsTable, type DatasetsDataLayer, DatasetsTable, type Environment, type EnvironmentSecret, type EnvironmentSecretsDataLayer, type EnvironmentSecretsTable, type EnvironmentsDataLayer, type EnvironmentsTable, FileCacheBackend, FileCacheConfig, type FireworksAIProviderConfig, type GatewayManifest, type GoogleProviderConfig, type GuardrailConfig, type GuardrailConfigsDataLayer, GuardrailConfigsTable, type GuardrailResult, type GuardrailResults, type HuggingFaceProviderConfig, type InlineProviderConfig, type InlineProvidersConfig, Insertable, LLMOpsClient, LLMOpsConfig, type LLMOpsConfigInput, type LLMRequest, type LLMRequestInsert, type LLMRequestsDataLayer, LLMRequestsTable, MS, ManifestBuilder, type ManifestConfig, type ManifestEnvironment, type ManifestGuardrail, type ManifestProviderGuardrailOverride, ManifestRouter, ManifestService, type ManifestTargetingRule, type ManifestVariantVersion, MemoryCacheBackend, MemoryCacheConfig, MigrationOptions, MigrationResult, type MistralAIProviderConfig, ModelPricing, ModelsDevPricingProvider, type OpenAIProviderConfig, type OracleProviderConfig, type Playground, type PlaygroundColumn, type PlaygroundResult, type PlaygroundResultsDataLayer, PlaygroundResultsTable, type PlaygroundRun, type PlaygroundRunsDataLayer, PlaygroundRunsTable, type PlaygroundsDataLayer, PlaygroundsTable, Prettify, PricingProvider, type ProviderConfig, type ProviderConfigMap, type ProviderConfigsDataLayer, ProviderConfigsTable, type ProviderGuardrailOverride, type ProviderGuardrailOverridesDataLayer, ProviderGuardrailOverridesTable, type ProvidersConfig, type RoutingContext, type RoutingResult, SCHEMA_METADATA, type SagemakerProviderConfig, Selectable, type StabilityAIProviderConfig, SupportedProviders, type TableName, type TargetingRule, type TargetingRulesDataLayer, type TargetingRulesTable, Updateable, UsageData, type ValidatedLLMOpsConfig, type Variant, VariantJsonData, type VariantVersion, type VariantVersionsDataLayer, VariantVersionsTable, type VariantsDataLayer, type VariantsTable, type VertexAIProviderConfig, type WorkersAIProviderConfig, type WorkspaceSettings, type WorkspaceSettingsDataLayer, WorkspaceSettingsTable, calculateCost, chatCompletionCreateParamsBaseSchema, configVariantsSchema, configsSchema, createConfigDataLayer, createConfigVariantDataLayer, createDataLayer, createDatabase, createDatabaseFromConnection, createDatasetsDataLayer, createEnvironmentDataLayer, createEnvironmentSecretDataLayer, createGuardrailConfigsDataLayer, createLLMRequestsDataLayer, createNeonDialect, createPlaygroundDataLayer, createPlaygroundResultsDataLayer, createPlaygroundRunsDataLayer, createProviderConfigsDataLayer, createProviderGuardrailOverridesDataLayer, createTargetingRulesDataLayer, createVariantDataLayer, createVariantVersionsDataLayer, createWorkspaceSettingsDataLayer, datasetRecordsSchema, datasetVersionRecordsSchema, datasetVersionsSchema, datasetsSchema, detectDatabaseType, dollarsToMicroDollars, environmentSecretsSchema, environmentsSchema, executeWithSchema, formatCost, gateway, generateId, getAuthClientOptions, getDefaultPricingProvider, getMigrations, guardrailConfigsSchema, llmRequestsSchema, llmopsConfigSchema, logger, matchType, microDollarsToDollars, parsePartialTableData, parseTableData, playgroundColumnSchema, playgroundResultsSchema, playgroundRunsSchema, playgroundsSchema, providerConfigsSchema, providerGuardrailOverridesSchema, runAutoMigrations, schemas, targetingRulesSchema, validateLLMOpsConfig, validatePartialTableData, validateTableData, variantJsonDataSchema, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
|
|
3919
|
+
export { type AnthropicProviderConfig, type AnyProviderConfig, AuthClientDatabaseConfig, AuthClientOptions, type AzureAIProviderConfig, type AzureOpenAIProviderConfig, BaseCacheConfig, type BaseProviderConfig, type BedrockProviderConfig, CacheBackend, CacheBackendType, CacheConfig, CacheEntry, CacheOptions, CacheService, CacheStats, ChatCompletionCreateParamsBase, type Config, type ConfigVariant, type ConfigVariantsDataLayer, type ConfigVariantsTable, type ConfigsDataLayer, type ConfigsTable, type CortexProviderConfig, CostResult, DEFAULT_PROVIDER_ENV_VARS, type DataLayer, type Database, DatabaseConnection, DatabaseOptions, DatabaseType, type Dataset, type DatasetRecord, DatasetRecordsTable, type DatasetVersion, type DatasetVersionRecord, DatasetVersionRecordsTable, DatasetVersionsTable, type DatasetsDataLayer, DatasetsTable, type Environment, type EnvironmentSecret, type EnvironmentSecretsDataLayer, type EnvironmentSecretsTable, type EnvironmentsDataLayer, type EnvironmentsTable, FileCacheBackend, FileCacheConfig, type FireworksAIProviderConfig, type GatewayManifest, type GoogleProviderConfig, type GuardrailConfig, type GuardrailConfigsDataLayer, GuardrailConfigsTable, type GuardrailResult, type GuardrailResults, type HuggingFaceProviderConfig, type InlineProviderConfig, type InlineProvidersConfig, Insertable, LLMOpsClient, LLMOpsConfig, type LLMOpsConfigInput, type LLMRequest, type LLMRequestInsert, type LLMRequestsDataLayer, LLMRequestsTable, MS, ManifestBuilder, type ManifestConfig, type ManifestEnvironment, type ManifestGuardrail, type ManifestProviderGuardrailOverride, ManifestRouter, ManifestService, type ManifestTargetingRule, type ManifestVariantVersion, MemoryCacheBackend, MemoryCacheConfig, MigrationOptions, MigrationResult, type MistralAIProviderConfig, ModelPricing, ModelsDevPricingProvider, type OpenAIProviderConfig, type OracleProviderConfig, type Playground, type PlaygroundColumn, type PlaygroundResult, type PlaygroundResultsDataLayer, PlaygroundResultsTable, type PlaygroundRun, type PlaygroundRunsDataLayer, PlaygroundRunsTable, type PlaygroundsDataLayer, PlaygroundsTable, Prettify, PricingProvider, type ProviderConfig, type ProviderConfigMap, type ProviderConfigsDataLayer, ProviderConfigsTable, type ProviderGuardrailOverride, type ProviderGuardrailOverridesDataLayer, ProviderGuardrailOverridesTable, type ProvidersConfig, type RoutingContext, type RoutingResult, SCHEMA_METADATA, type SagemakerProviderConfig, Selectable, type StabilityAIProviderConfig, SupportedProviders, type TableName, type TargetingRule, type TargetingRulesDataLayer, type TargetingRulesTable, Updateable, UsageData, type ValidatedLLMOpsConfig, type Variant, VariantJsonData, type VariantVersion, type VariantVersionsDataLayer, VariantVersionsTable, type VariantsDataLayer, type VariantsTable, type VertexAIProviderConfig, type WorkersAIProviderConfig, type WorkspaceSettings, type WorkspaceSettingsDataLayer, WorkspaceSettingsTable, calculateCost, chatCompletionCreateParamsBaseSchema, configVariantsSchema, configsSchema, createConfigDataLayer, createConfigVariantDataLayer, createDataLayer, createDatabase, createDatabaseFromConnection, createDatasetsDataLayer, createEnvironmentDataLayer, createEnvironmentSecretDataLayer, createGuardrailConfigsDataLayer, createLLMRequestsDataLayer, createNeonDialect, createPlaygroundDataLayer, createPlaygroundResultsDataLayer, createPlaygroundRunsDataLayer, createProviderConfigsDataLayer, createProviderGuardrailOverridesDataLayer, createTargetingRulesDataLayer, createVariantDataLayer, createVariantVersionsDataLayer, createWorkspaceSettingsDataLayer, datasetRecordsSchema, datasetVersionRecordsSchema, datasetVersionsSchema, datasetsSchema, detectDatabaseType, dollarsToMicroDollars, environmentSecretsSchema, environmentsSchema, executeWithSchema, formatCost, gateway, generateId, getAuthClientOptions, getDefaultPricingProvider, getDefaultProviders, getMigrations, guardrailConfigsSchema, llmRequestsSchema, llmopsConfigSchema, logger, matchType, mergeWithDefaultProviders, microDollarsToDollars, parsePartialTableData, parseTableData, playgroundColumnSchema, playgroundResultsSchema, playgroundRunsSchema, playgroundsSchema, providerConfigsSchema, providerGuardrailOverridesSchema, runAutoMigrations, schemas, targetingRulesSchema, validateLLMOpsConfig, validatePartialTableData, validateTableData, variantJsonDataSchema, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
|
package/dist/index.mjs
CHANGED
|
@@ -88,6 +88,171 @@ let SupportedProviders = /* @__PURE__ */ function(SupportedProviders$1) {
|
|
|
88
88
|
return SupportedProviders$1;
|
|
89
89
|
}({});
|
|
90
90
|
|
|
91
|
+
//#endregion
|
|
92
|
+
//#region src/providers/default-providers.ts
|
|
93
|
+
/**
|
|
94
|
+
* Top providers with simple API key authentication.
|
|
95
|
+
* Providers requiring additional config (Azure, Bedrock, Vertex) are excluded
|
|
96
|
+
* as they need endpoint/region info that can't be auto-detected.
|
|
97
|
+
*/
|
|
98
|
+
const DEFAULT_PROVIDER_MAPPINGS = [
|
|
99
|
+
{
|
|
100
|
+
provider: SupportedProviders.OPENAI,
|
|
101
|
+
slug: "openai",
|
|
102
|
+
envVar: "OPENAI_API_KEY"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
provider: SupportedProviders.ANTHROPIC,
|
|
106
|
+
slug: "anthropic",
|
|
107
|
+
envVar: "ANTHROPIC_API_KEY"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
provider: SupportedProviders.GOOGLE,
|
|
111
|
+
slug: "google",
|
|
112
|
+
envVar: "GOOGLE_API_KEY"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
provider: SupportedProviders.MISTRAL_AI,
|
|
116
|
+
slug: "mistral",
|
|
117
|
+
envVar: "MISTRAL_API_KEY"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
provider: SupportedProviders.GROQ,
|
|
121
|
+
slug: "groq",
|
|
122
|
+
envVar: "GROQ_API_KEY"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
provider: SupportedProviders.COHERE,
|
|
126
|
+
slug: "cohere",
|
|
127
|
+
envVar: "COHERE_API_KEY"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
provider: SupportedProviders.TOGETHER_AI,
|
|
131
|
+
slug: "together",
|
|
132
|
+
envVar: "TOGETHER_API_KEY"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
provider: SupportedProviders.PERPLEXITY_AI,
|
|
136
|
+
slug: "perplexity",
|
|
137
|
+
envVar: "PERPLEXITY_API_KEY"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
provider: SupportedProviders.DEEPSEEK,
|
|
141
|
+
slug: "deepseek",
|
|
142
|
+
envVar: "DEEPSEEK_API_KEY"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
provider: SupportedProviders.FIREWORKS_AI,
|
|
146
|
+
slug: "fireworks",
|
|
147
|
+
envVar: "FIREWORKS_API_KEY"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
provider: SupportedProviders.OPENROUTER,
|
|
151
|
+
slug: "openrouter",
|
|
152
|
+
envVar: "OPENROUTER_API_KEY"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
provider: SupportedProviders.X_AI,
|
|
156
|
+
slug: "xai",
|
|
157
|
+
envVar: "XAI_API_KEY"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
provider: SupportedProviders.CEREBRAS,
|
|
161
|
+
slug: "cerebras",
|
|
162
|
+
envVar: "CEREBRAS_API_KEY"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
provider: SupportedProviders.SAMBANOVA,
|
|
166
|
+
slug: "sambanova",
|
|
167
|
+
envVar: "SAMBANOVA_API_KEY"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
provider: SupportedProviders.HUGGINGFACE,
|
|
171
|
+
slug: "huggingface",
|
|
172
|
+
envVar: "HUGGINGFACE_API_KEY"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
provider: SupportedProviders.REPLICATE,
|
|
176
|
+
slug: "replicate",
|
|
177
|
+
envVar: "REPLICATE_API_TOKEN"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
provider: SupportedProviders.AI21,
|
|
181
|
+
slug: "ai21",
|
|
182
|
+
envVar: "AI21_API_KEY"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
provider: SupportedProviders.DEEPINFRA,
|
|
186
|
+
slug: "deepinfra",
|
|
187
|
+
envVar: "DEEPINFRA_API_KEY"
|
|
188
|
+
}
|
|
189
|
+
];
|
|
190
|
+
/**
|
|
191
|
+
* Get default provider configurations from environment variables.
|
|
192
|
+
*
|
|
193
|
+
* Scans for known API key environment variables and creates
|
|
194
|
+
* InlineProviderConfig entries for each one found.
|
|
195
|
+
*
|
|
196
|
+
* @param env - Environment variables object (defaults to process.env)
|
|
197
|
+
* @returns Array of auto-configured providers
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```typescript
|
|
201
|
+
* // With OPENAI_API_KEY and ANTHROPIC_API_KEY set in environment:
|
|
202
|
+
* const defaults = getDefaultProviders();
|
|
203
|
+
* // Returns:
|
|
204
|
+
* // [
|
|
205
|
+
* // { provider: 'openai', slug: 'openai', apiKey: '...' },
|
|
206
|
+
* // { provider: 'anthropic', slug: 'anthropic', apiKey: '...' }
|
|
207
|
+
* // ]
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
function getDefaultProviders(env = process.env) {
|
|
211
|
+
const providers = [];
|
|
212
|
+
for (const mapping of DEFAULT_PROVIDER_MAPPINGS) {
|
|
213
|
+
const apiKey = env[mapping.envVar];
|
|
214
|
+
if (apiKey) providers.push({
|
|
215
|
+
provider: mapping.provider,
|
|
216
|
+
slug: mapping.slug,
|
|
217
|
+
apiKey
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
return providers;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Merge user-provided providers with default providers.
|
|
224
|
+
*
|
|
225
|
+
* User-provided providers take precedence:
|
|
226
|
+
* - If a user specifies a provider with the same slug, the default is ignored
|
|
227
|
+
* - If a user specifies the same provider type with a different slug, both are kept
|
|
228
|
+
*
|
|
229
|
+
* @param userProviders - User-configured providers (may be undefined)
|
|
230
|
+
* @param env - Environment variables object (defaults to process.env)
|
|
231
|
+
* @returns Merged array of providers (user configs + non-conflicting defaults)
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* ```typescript
|
|
235
|
+
* // User overrides openai with custom slug
|
|
236
|
+
* const merged = mergeWithDefaultProviders([
|
|
237
|
+
* { provider: 'openai', slug: 'my-openai', apiKey: 'custom-key' }
|
|
238
|
+
* ]);
|
|
239
|
+
* // Default 'openai' slug is still added if OPENAI_API_KEY is set,
|
|
240
|
+
* // user's 'my-openai' is kept as separate config
|
|
241
|
+
* ```
|
|
242
|
+
*/
|
|
243
|
+
function mergeWithDefaultProviders(userProviders, env = process.env) {
|
|
244
|
+
const defaults = getDefaultProviders(env);
|
|
245
|
+
if (!userProviders || userProviders.length === 0) return defaults;
|
|
246
|
+
const userSlugs = new Set(userProviders.map((p) => p.slug));
|
|
247
|
+
const nonConflictingDefaults = defaults.filter((d) => !userSlugs.has(d.slug));
|
|
248
|
+
return [...userProviders, ...nonConflictingDefaults];
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* List of supported default provider environment variables.
|
|
252
|
+
* Useful for documentation or debugging.
|
|
253
|
+
*/
|
|
254
|
+
const DEFAULT_PROVIDER_ENV_VARS = DEFAULT_PROVIDER_MAPPINGS.map((m) => m.envVar);
|
|
255
|
+
|
|
91
256
|
//#endregion
|
|
92
257
|
//#region src/schemas/openai.ts
|
|
93
258
|
const chatCompletionContentPartTextSchema = object({
|
|
@@ -447,12 +612,19 @@ const inlineProviderConfigSchema = object({
|
|
|
447
612
|
* Schema for providers array
|
|
448
613
|
*/
|
|
449
614
|
const providersConfigSchema = array(inlineProviderConfigSchema).optional();
|
|
450
|
-
|
|
615
|
+
/**
|
|
616
|
+
* Base schema without refinements (used for transform)
|
|
617
|
+
*/
|
|
618
|
+
const llmopsConfigBaseSchema = object({
|
|
451
619
|
database: any().optional(),
|
|
452
620
|
basePath: string().min(1, "Base path is required and cannot be empty").refine((path$1) => path$1.startsWith("/"), "Base path must start with a forward slash"),
|
|
453
621
|
schema: string().optional().default("llmops"),
|
|
454
622
|
providers: providersConfigSchema
|
|
455
|
-
})
|
|
623
|
+
});
|
|
624
|
+
const llmopsConfigSchema = llmopsConfigBaseSchema.transform((config) => ({
|
|
625
|
+
...config,
|
|
626
|
+
providers: mergeWithDefaultProviders(config.providers)
|
|
627
|
+
})).refine((config) => config.database !== void 0 || config.providers && config.providers.length > 0, "Either database or providers must be configured. Set a database connection, configure providers explicitly, or set API key environment variables (e.g., OPENAI_API_KEY).");
|
|
456
628
|
function validateLLMOpsConfig(config) {
|
|
457
629
|
const result = llmopsConfigSchema.safeParse(config);
|
|
458
630
|
if (!result.success) {
|
|
@@ -3751,4 +3923,4 @@ var ManifestRouter = class {
|
|
|
3751
3923
|
};
|
|
3752
3924
|
|
|
3753
3925
|
//#endregion
|
|
3754
|
-
export { CacheService, FileCacheBackend, MS, ManifestBuilder, ManifestRouter, ManifestService, MemoryCacheBackend, ModelsDevPricingProvider, SCHEMA_METADATA, SupportedProviders, calculateCost, chatCompletionCreateParamsBaseSchema, configVariantsSchema, configsSchema, createConfigDataLayer, createConfigVariantDataLayer, createDataLayer, createDatabase, createDatabaseFromConnection, createDatasetsDataLayer, createEnvironmentDataLayer, createEnvironmentSecretDataLayer, createGuardrailConfigsDataLayer, createLLMRequestsDataLayer, createNeonDialect, createPlaygroundDataLayer, createPlaygroundResultsDataLayer, createPlaygroundRunsDataLayer, createProviderConfigsDataLayer, createProviderGuardrailOverridesDataLayer, createTargetingRulesDataLayer, createVariantDataLayer, createVariantVersionsDataLayer, createWorkspaceSettingsDataLayer, datasetRecordsSchema, datasetVersionRecordsSchema, datasetVersionsSchema, datasetsSchema, detectDatabaseType, dollarsToMicroDollars, environmentSecretsSchema, environmentsSchema, executeWithSchema, formatCost, gateway, generateId, getAuthClientOptions, getDefaultPricingProvider, getMigrations, guardrailConfigsSchema, llmRequestsSchema, llmopsConfigSchema, logger, matchType, microDollarsToDollars, parsePartialTableData, parseTableData, playgroundColumnSchema, playgroundResultsSchema, playgroundRunsSchema, playgroundsSchema, providerConfigsSchema, providerGuardrailOverridesSchema, runAutoMigrations, schemas, targetingRulesSchema, validateLLMOpsConfig, validatePartialTableData, validateTableData, variantJsonDataSchema, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
|
|
3926
|
+
export { CacheService, DEFAULT_PROVIDER_ENV_VARS, FileCacheBackend, MS, ManifestBuilder, ManifestRouter, ManifestService, MemoryCacheBackend, ModelsDevPricingProvider, SCHEMA_METADATA, SupportedProviders, calculateCost, chatCompletionCreateParamsBaseSchema, configVariantsSchema, configsSchema, createConfigDataLayer, createConfigVariantDataLayer, createDataLayer, createDatabase, createDatabaseFromConnection, createDatasetsDataLayer, createEnvironmentDataLayer, createEnvironmentSecretDataLayer, createGuardrailConfigsDataLayer, createLLMRequestsDataLayer, createNeonDialect, createPlaygroundDataLayer, createPlaygroundResultsDataLayer, createPlaygroundRunsDataLayer, createProviderConfigsDataLayer, createProviderGuardrailOverridesDataLayer, createTargetingRulesDataLayer, createVariantDataLayer, createVariantVersionsDataLayer, createWorkspaceSettingsDataLayer, datasetRecordsSchema, datasetVersionRecordsSchema, datasetVersionsSchema, datasetsSchema, detectDatabaseType, dollarsToMicroDollars, environmentSecretsSchema, environmentsSchema, executeWithSchema, formatCost, gateway, generateId, getAuthClientOptions, getDefaultPricingProvider, getDefaultProviders, getMigrations, guardrailConfigsSchema, llmRequestsSchema, llmopsConfigSchema, logger, matchType, mergeWithDefaultProviders, microDollarsToDollars, parsePartialTableData, parseTableData, playgroundColumnSchema, playgroundResultsSchema, playgroundRunsSchema, playgroundsSchema, providerConfigsSchema, providerGuardrailOverridesSchema, runAutoMigrations, schemas, targetingRulesSchema, validateLLMOpsConfig, validatePartialTableData, validateTableData, variantJsonDataSchema, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llmops/core",
|
|
3
|
-
"version": "0.5.0-beta.
|
|
3
|
+
"version": "0.5.0-beta.4",
|
|
4
4
|
"description": "Core LLMOps functionality and utilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"kysely": "^0.28.8",
|
|
56
56
|
"kysely-neon": "^2.0.2",
|
|
57
57
|
"pino": "^10.1.0",
|
|
58
|
-
"@llmops/gateway": "^0.5.0-beta.
|
|
58
|
+
"@llmops/gateway": "^0.5.0-beta.4"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@types/json-logic-js": "^2.0.8",
|