Skip to content

Commit 3b86081

Browse files
committed
update to be custom
1 parent 9631654 commit 3b86081

File tree

17 files changed

+171
-103
lines changed

17 files changed

+171
-103
lines changed

bifrost/lib/clients/jawnTypes/private.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19538,8 +19538,7 @@ export interface operations {
1953819538
requestBody: {
1953919539
content: {
1954019540
"application/json": {
19541-
/** Format: double */
19542-
heliconePricingMultiplier: number;
19541+
endpointMultipliers: components["schemas"]["Record_string.number_"];
1954319542
};
1954419543
};
1954519544
};

bifrost/lib/clients/jawnTypes/public.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3305,6 +3305,7 @@ Json: JsonObject;
33053305
ptbEnabled: boolean;
33063306
version?: string;
33073307
unsupportedParameters?: components["schemas"]["StandardParameter"][];
3308+
registryKey: string;
33083309
modelConfig: components["schemas"]["ModelProviderConfig"];
33093310
userConfig: components["schemas"]["UserEndpointConfig"];
33103311
provider: components["schemas"]["ModelProviderName"];

docs/swagger.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9162,6 +9162,9 @@
91629162
},
91639163
"type": "array"
91649164
},
9165+
"registryKey": {
9166+
"type": "string"
9167+
},
91659168
"modelConfig": {
91669169
"$ref": "#/components/schemas/ModelProviderConfig"
91679170
},
@@ -9193,6 +9196,7 @@
91939196
"contextLength",
91949197
"maxCompletionTokens",
91959198
"ptbEnabled",
9199+
"registryKey",
91969200
"modelConfig",
91979201
"userConfig",
91989202
"provider",

packages/cost/models/build-indexes.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import type {
1010
function mergeConfigs(
1111
modelProviderConfig: ModelProviderConfig,
1212
endpointConfig: EndpointConfig,
13-
deploymentId: string
13+
deploymentId: string,
14+
registryKey: string
1415
): Endpoint {
1516
const userConfig: UserEndpointConfig = {
1617
region: deploymentId,
@@ -22,6 +23,7 @@ function mergeConfigs(
2223
};
2324

2425
return {
26+
registryKey,
2527
author: modelProviderConfig.author,
2628
modelConfig: modelProviderConfig,
2729
userConfig: userConfig,
@@ -142,7 +144,7 @@ export function buildIndexes(
142144
config.endpointConfigs
143145
)) {
144146
const endpointKey = `${configKey}:${deploymentId}` as EndpointId;
145-
const endpoint = mergeConfigs(config, deploymentConfig, deploymentId);
147+
const endpoint = mergeConfigs(config, deploymentConfig, deploymentId, configKey);
146148
endpointIdToEndpoint.set(endpointKey, endpoint);
147149

148150
// Add to ALL endpoints index (regardless of PTB status)

packages/cost/models/registry.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,10 @@ function buildEndpoint(
140140
return err(modelIdResult.error);
141141
}
142142

143+
const registryKey = `${modelIdResult.data}:${endpointConfig.provider}`;
144+
143145
return ok({
146+
registryKey,
144147
modelConfig: endpointConfig,
145148
userConfig: userEndpointConfig,
146149
provider: endpointConfig.provider,

packages/cost/models/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ export interface RequestParams {
214214
}
215215

216216
export interface Endpoint extends BaseConfig {
217+
registryKey: string;
217218
modelConfig: ModelProviderConfig;
218219
userConfig: UserEndpointConfig;
219220
provider: ModelProviderName;

valhalla/jawn/src/controllers/private/adminController.ts

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1352,23 +1352,33 @@ export class AdminController extends Controller {
13521352
public async updateOrgPricingConfig(
13531353
@Request() request: JawnAuthenticatedRequest,
13541354
@Path() orgId: string,
1355-
@Body() body: { heliconePricingMultiplier: number }
1355+
@Body() body: { endpointMultipliers: Record<string, number> }
13561356
): Promise<Result<null, string>> {
13571357
await authCheckThrow(request.authParams.userId);
13581358

1359-
const { heliconePricingMultiplier } = body;
1359+
const { endpointMultipliers } = body;
13601360

1361-
if (
1362-
heliconePricingMultiplier < 0 ||
1363-
heliconePricingMultiplier > 2 ||
1364-
isNaN(heliconePricingMultiplier)
1365-
) {
1366-
return err("Pricing multiplier must be between 0 and 2");
1361+
// Validate each multiplier
1362+
for (const [endpoint, multiplier] of Object.entries(endpointMultipliers)) {
1363+
if (multiplier < 0 || multiplier > 2 || isNaN(multiplier)) {
1364+
return err(`Invalid multiplier for ${endpoint}: must be between 0 and 2`);
1365+
}
1366+
1367+
// Validate endpoint key format (should contain colon)
1368+
if (!endpoint.includes(':')) {
1369+
return err(`Invalid endpoint key format: ${endpoint}`);
1370+
}
13671371
}
13681372

13691373
const { error } = await dbExecute(
1370-
`UPDATE organization SET pricing_config = jsonb_set(COALESCE(pricing_config, '{}'), '{heliconePricingMultiplier}', $1::text::jsonb) WHERE id = $2`,
1371-
[heliconePricingMultiplier.toString(), orgId]
1374+
`UPDATE organization
1375+
SET pricing_config = jsonb_set(
1376+
COALESCE(pricing_config, '{}'),
1377+
'{endpointMultipliers}',
1378+
$1::jsonb
1379+
)
1380+
WHERE id = $2`,
1381+
[JSON.stringify(endpointMultipliers), orgId]
13721382
);
13731383

13741384
if (error) {

valhalla/jawn/src/tsoa-build/private/routes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20631,7 +20631,7 @@ export function RegisterRoutes(app: Router) {
2063120631
const argsAdminController_updateOrgPricingConfig: Record<string, TsoaRoute.ParameterSchema> = {
2063220632
request: {"in":"request","name":"request","required":true,"dataType":"object"},
2063320633
orgId: {"in":"path","name":"orgId","required":true,"dataType":"string"},
20634-
body: {"in":"body","name":"body","required":true,"dataType":"nestedObjectLiteral","nestedProperties":{"heliconePricingMultiplier":{"dataType":"double","required":true}}},
20634+
body: {"in":"body","name":"body","required":true,"dataType":"nestedObjectLiteral","nestedProperties":{"endpointMultipliers":{"ref":"Record_string.number_","required":true}}},
2063520635
};
2063620636
app.post('/v1/admin/org/:orgId/pricing-config',
2063720637
authenticateMiddleware([{"api_key":[]}]),

valhalla/jawn/src/tsoa-build/private/swagger.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56940,13 +56940,12 @@
5694056940
"application/json": {
5694156941
"schema": {
5694256942
"properties": {
56943-
"heliconePricingMultiplier": {
56944-
"type": "number",
56945-
"format": "double"
56943+
"endpointMultipliers": {
56944+
"$ref": "#/components/schemas/Record_string.number_"
5694656945
}
5694756946
},
5694856947
"required": [
56949-
"heliconePricingMultiplier"
56948+
"endpointMultipliers"
5695056949
],
5695156950
"type": "object"
5695256951
}

valhalla/jawn/src/tsoa-build/public/routes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2929,6 +2929,7 @@ const models: TsoaRoute.Models = {
29292929
"ptbEnabled": {"dataType":"boolean","required":true},
29302930
"version": {"dataType":"string"},
29312931
"unsupportedParameters": {"dataType":"array","array":{"dataType":"refAlias","ref":"StandardParameter"}},
2932+
"registryKey": {"dataType":"string","required":true},
29322933
"modelConfig": {"ref":"ModelProviderConfig","required":true},
29332934
"userConfig": {"ref":"UserEndpointConfig","required":true},
29342935
"provider": {"ref":"ModelProviderName","required":true},

0 commit comments

Comments
 (0)