notdiamond 2.0.0-rc4 → 2.0.0
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/CHANGELOG.md +164 -0
- package/LICENSE +1 -1
- package/README.md +294 -166
- package/client.d.mts +20 -23
- package/client.d.mts.map +1 -1
- package/client.d.ts +20 -23
- package/client.d.ts.map +1 -1
- package/client.js +43 -46
- package/client.js.map +1 -1
- package/client.mjs +41 -44
- package/client.mjs.map +1 -1
- package/core/api-promise.d.mts +2 -2
- package/core/api-promise.d.ts +2 -2
- package/core/error.d.mts +2 -2
- package/core/error.d.ts +2 -2
- package/core/error.js +4 -4
- package/core/error.mjs +2 -2
- package/core/resource.d.mts +3 -3
- package/core/resource.d.ts +3 -3
- package/index.d.mts +3 -3
- package/index.d.ts +3 -3
- package/index.js +4 -4
- package/index.mjs +3 -3
- package/internal/parse.d.mts +2 -2
- package/internal/parse.d.ts +2 -2
- package/internal/shims.js +1 -1
- package/internal/shims.mjs +1 -1
- package/internal/tslib.js +17 -17
- package/internal/uploads.d.mts +4 -4
- package/internal/uploads.d.ts +4 -4
- package/internal/utils/base64.js +2 -2
- package/internal/utils/base64.mjs +3 -3
- package/internal/utils/log.d.mts +3 -3
- package/internal/utils/log.d.ts +3 -3
- package/internal/utils/path.js +1 -1
- package/internal/utils/path.mjs +2 -2
- package/internal/utils/values.js +5 -5
- package/internal/utils/values.mjs +6 -6
- package/package.json +3 -3
- package/resources/{pzn.d.mts → custom-router.d.mts} +16 -96
- package/resources/custom-router.d.mts.map +1 -0
- package/resources/{pzn.d.ts → custom-router.d.ts} +16 -96
- package/resources/custom-router.d.ts.map +1 -0
- package/resources/{pzn.js → custom-router.js} +13 -50
- package/resources/custom-router.js.map +1 -0
- package/resources/{pzn.mjs → custom-router.mjs} +11 -48
- package/resources/custom-router.mjs.map +1 -0
- package/resources/index.d.mts +4 -5
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +4 -5
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +5 -7
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +2 -3
- package/resources/index.mjs.map +1 -1
- package/resources/model-router.d.mts +6 -123
- package/resources/model-router.d.mts.map +1 -1
- package/resources/model-router.d.ts +6 -123
- package/resources/model-router.d.ts.map +1 -1
- package/resources/model-router.js +3 -32
- package/resources/model-router.js.map +1 -1
- package/resources/model-router.mjs +3 -32
- package/resources/model-router.mjs.map +1 -1
- package/resources/preferences.d.mts +4 -23
- package/resources/preferences.d.mts.map +1 -1
- package/resources/preferences.d.ts +4 -23
- package/resources/preferences.d.ts.map +1 -1
- package/resources/preferences.js +3 -25
- package/resources/preferences.js.map +1 -1
- package/resources/preferences.mjs +3 -25
- package/resources/preferences.mjs.map +1 -1
- package/resources/prompt-adaptation.d.mts +684 -0
- package/resources/prompt-adaptation.d.mts.map +1 -0
- package/resources/prompt-adaptation.d.ts +684 -0
- package/resources/prompt-adaptation.d.ts.map +1 -0
- package/resources/prompt-adaptation.js +258 -0
- package/resources/prompt-adaptation.js.map +1 -0
- package/resources/prompt-adaptation.mjs +254 -0
- package/resources/prompt-adaptation.mjs.map +1 -0
- package/src/client.ts +49 -56
- package/src/core/api-promise.ts +4 -4
- package/src/core/error.ts +2 -2
- package/src/core/resource.ts +3 -3
- package/src/index.ts +3 -3
- package/src/internal/parse.ts +2 -2
- package/src/internal/shims.ts +1 -1
- package/src/internal/uploads.ts +5 -5
- package/src/internal/utils/base64.ts +3 -3
- package/src/internal/utils/log.ts +3 -3
- package/src/internal/utils/path.ts +2 -2
- package/src/internal/utils/values.ts +6 -6
- package/src/resources/{pzn.ts → custom-router.ts} +17 -122
- package/src/resources/index.ts +14 -16
- package/src/resources/model-router.ts +5 -139
- package/src/resources/preferences.ts +3 -34
- package/src/resources/prompt-adaptation.ts +777 -0
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.mts.map +1 -1
- package/version.d.ts +1 -1
- package/version.d.ts.map +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/version.mjs +1 -1
- package/version.mjs.map +1 -1
- package/resources/prompt/adapt.d.mts +0 -352
- package/resources/prompt/adapt.d.mts.map +0 -1
- package/resources/prompt/adapt.d.ts +0 -352
- package/resources/prompt/adapt.d.ts.map +0 -1
- package/resources/prompt/adapt.js +0 -154
- package/resources/prompt/adapt.js.map +0 -1
- package/resources/prompt/adapt.mjs +0 -150
- package/resources/prompt/adapt.mjs.map +0 -1
- package/resources/prompt/index.d.mts +0 -3
- package/resources/prompt/index.d.mts.map +0 -1
- package/resources/prompt/index.d.ts +0 -3
- package/resources/prompt/index.d.ts.map +0 -1
- package/resources/prompt/index.js +0 -9
- package/resources/prompt/index.js.map +0 -1
- package/resources/prompt/index.mjs +0 -4
- package/resources/prompt/index.mjs.map +0 -1
- package/resources/prompt/prompt.d.mts +0 -338
- package/resources/prompt/prompt.d.mts.map +0 -1
- package/resources/prompt/prompt.d.ts +0 -338
- package/resources/prompt/prompt.d.ts.map +0 -1
- package/resources/prompt/prompt.js +0 -128
- package/resources/prompt/prompt.js.map +0 -1
- package/resources/prompt/prompt.mjs +0 -123
- package/resources/prompt/prompt.mjs.map +0 -1
- package/resources/prompt.d.mts +0 -2
- package/resources/prompt.d.mts.map +0 -1
- package/resources/prompt.d.ts +0 -2
- package/resources/prompt.d.ts.map +0 -1
- package/resources/prompt.js +0 -6
- package/resources/prompt.js.map +0 -1
- package/resources/prompt.mjs +0 -3
- package/resources/prompt.mjs.map +0 -1
- package/resources/pzn.d.mts.map +0 -1
- package/resources/pzn.d.ts.map +0 -1
- package/resources/pzn.js.map +0 -1
- package/resources/pzn.mjs.map +0 -1
- package/resources/report/index.d.mts +0 -3
- package/resources/report/index.d.mts.map +0 -1
- package/resources/report/index.d.ts +0 -3
- package/resources/report/index.d.ts.map +0 -1
- package/resources/report/index.js +0 -9
- package/resources/report/index.js.map +0 -1
- package/resources/report/index.mjs +0 -4
- package/resources/report/index.mjs.map +0 -1
- package/resources/report/metrics.d.mts +0 -87
- package/resources/report/metrics.d.mts.map +0 -1
- package/resources/report/metrics.d.ts +0 -87
- package/resources/report/metrics.d.ts.map +0 -1
- package/resources/report/metrics.js +0 -57
- package/resources/report/metrics.js.map +0 -1
- package/resources/report/metrics.mjs +0 -53
- package/resources/report/metrics.mjs.map +0 -1
- package/resources/report/report.d.mts +0 -10
- package/resources/report/report.d.mts.map +0 -1
- package/resources/report/report.d.ts +0 -10
- package/resources/report/report.d.ts.map +0 -1
- package/resources/report/report.js +0 -17
- package/resources/report/report.js.map +0 -1
- package/resources/report/report.mjs +0 -12
- package/resources/report/report.mjs.map +0 -1
- package/resources/report.d.mts +0 -2
- package/resources/report.d.mts.map +0 -1
- package/resources/report.d.ts +0 -2
- package/resources/report.d.ts.map +0 -1
- package/resources/report.js +0 -6
- package/resources/report.js.map +0 -1
- package/resources/report.mjs +0 -3
- package/resources/report.mjs.map +0 -1
- package/src/resources/prompt/adapt.ts +0 -402
- package/src/resources/prompt/index.ts +0 -16
- package/src/resources/prompt/prompt.ts +0 -398
- package/src/resources/prompt.ts +0 -3
- package/src/resources/report/index.ts +0 -4
- package/src/resources/report/metrics.ts +0 -99
- package/src/resources/report/report.ts +0 -19
- package/src/resources/report.ts +0 -3
|
@@ -3,55 +3,10 @@
|
|
|
3
3
|
import { APIResource } from '../core/resource';
|
|
4
4
|
import { APIPromise } from '../core/api-promise';
|
|
5
5
|
import { type Uploadable } from '../core/uploads';
|
|
6
|
-
import { buildHeaders } from '../internal/headers';
|
|
7
6
|
import { RequestOptions } from '../internal/request-options';
|
|
8
7
|
import { multipartFormRequestOptions } from '../internal/uploads';
|
|
9
8
|
|
|
10
|
-
export class
|
|
11
|
-
/**
|
|
12
|
-
* Submit a survey response for personalized routing setup.
|
|
13
|
-
*
|
|
14
|
-
* This admin endpoint processes survey responses to set up personalized routing
|
|
15
|
-
* configurations for users based on their use case, LLM preferences, and
|
|
16
|
-
* constraints.
|
|
17
|
-
*
|
|
18
|
-
* **Survey Data:**
|
|
19
|
-
*
|
|
20
|
-
* - User information and use case description
|
|
21
|
-
* - Preferred LLM providers and models
|
|
22
|
-
* - Constraint priorities (quality, cost, latency)
|
|
23
|
-
* - Optional prompts and evaluation datasets
|
|
24
|
-
*
|
|
25
|
-
* **File Uploads:**
|
|
26
|
-
*
|
|
27
|
-
* - `prompt_file`: Optional CSV file with prompts
|
|
28
|
-
* - `dataset_file`: Optional CSV file with evaluation dataset
|
|
29
|
-
*
|
|
30
|
-
* **Note:** This is an admin-only endpoint for internal use.
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* ```ts
|
|
34
|
-
* const response = await client.pzn.submitSurveyResponse({
|
|
35
|
-
* constraint_priorities: 'constraint_priorities',
|
|
36
|
-
* email: 'email',
|
|
37
|
-
* llm_providers: 'llm_providers',
|
|
38
|
-
* use_case_desc: 'use_case_desc',
|
|
39
|
-
* user_id: 'user_id',
|
|
40
|
-
* 'x-token': 'x-token',
|
|
41
|
-
* });
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
submitSurveyResponse(params: PznSubmitSurveyResponseParams, options?: RequestOptions): APIPromise<unknown> {
|
|
45
|
-
const { 'x-token': xToken, ...body } = params;
|
|
46
|
-
return this._client.post(
|
|
47
|
-
'/v2/pzn/surveyResponse',
|
|
48
|
-
multipartFormRequestOptions(
|
|
49
|
-
{ body, ...options, headers: buildHeaders([{ 'x-token': xToken }, options?.headers]) },
|
|
50
|
-
this._client,
|
|
51
|
-
),
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
|
|
9
|
+
export class CustomRouter extends APIResource {
|
|
55
10
|
/**
|
|
56
11
|
* Train a custom router on your evaluation data to optimize routing for your
|
|
57
12
|
* specific use case.
|
|
@@ -111,20 +66,21 @@ export class Pzn extends APIResource {
|
|
|
111
66
|
*
|
|
112
67
|
* @example
|
|
113
68
|
* ```ts
|
|
114
|
-
* const response =
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
69
|
+
* const response =
|
|
70
|
+
* await client.customRouter.trainCustomRouter({
|
|
71
|
+
* dataset_file: fs.createReadStream('path/to/file'),
|
|
72
|
+
* language: 'english',
|
|
73
|
+
* llm_providers:
|
|
74
|
+
* '[{"provider": "openai", "model": "gpt-4o"}, {"provider": "anthropic", "model": "claude-sonnet-4-5-20250929"}]',
|
|
75
|
+
* maximize: true,
|
|
76
|
+
* prompt_column: 'prompt',
|
|
77
|
+
* });
|
|
122
78
|
* ```
|
|
123
79
|
*/
|
|
124
80
|
trainCustomRouter(
|
|
125
|
-
body:
|
|
81
|
+
body: CustomRouterTrainCustomRouterParams,
|
|
126
82
|
options?: RequestOptions,
|
|
127
|
-
): APIPromise<
|
|
83
|
+
): APIPromise<CustomRouterTrainCustomRouterResponse> {
|
|
128
84
|
return this._client.post(
|
|
129
85
|
'/v2/pzn/trainCustomRouter',
|
|
130
86
|
multipartFormRequestOptions({ body, ...options }, this._client),
|
|
@@ -132,8 +88,6 @@ export class Pzn extends APIResource {
|
|
|
132
88
|
}
|
|
133
89
|
}
|
|
134
90
|
|
|
135
|
-
export type PznSubmitSurveyResponseResponse = unknown;
|
|
136
|
-
|
|
137
91
|
/**
|
|
138
92
|
* Response model for POST /v2/pzn/trainCustomRouter endpoint.
|
|
139
93
|
*
|
|
@@ -155,7 +109,7 @@ export type PznSubmitSurveyResponseResponse = unknown;
|
|
|
155
109
|
* - No need to poll status - you can start using it immediately (will use default
|
|
156
110
|
* until ready)
|
|
157
111
|
*/
|
|
158
|
-
export interface
|
|
112
|
+
export interface CustomRouterTrainCustomRouterResponse {
|
|
159
113
|
/**
|
|
160
114
|
* Unique identifier for the custom router. Use this in model_select() calls to
|
|
161
115
|
* enable routing with your custom-trained router
|
|
@@ -163,64 +117,7 @@ export interface PznTrainCustomRouterResponse {
|
|
|
163
117
|
preference_id: string;
|
|
164
118
|
}
|
|
165
119
|
|
|
166
|
-
export interface
|
|
167
|
-
/**
|
|
168
|
-
* Body param: JSON string of constraint priorities object
|
|
169
|
-
*/
|
|
170
|
-
constraint_priorities: string;
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Body param: User email address
|
|
174
|
-
*/
|
|
175
|
-
email: string;
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Body param: JSON string of LLM providers array
|
|
179
|
-
*/
|
|
180
|
-
llm_providers: string;
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Body param: Description of the user's use case
|
|
184
|
-
*/
|
|
185
|
-
use_case_desc: string;
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* Body param: User ID from Supabase
|
|
189
|
-
*/
|
|
190
|
-
user_id: string;
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Header param:
|
|
194
|
-
*/
|
|
195
|
-
'x-token': string;
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Body param: Optional additional preferences text
|
|
199
|
-
*/
|
|
200
|
-
additional_preferences?: string | null;
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Body param: Optional CSV file with evaluation dataset
|
|
204
|
-
*/
|
|
205
|
-
dataset_file?: Uploadable | null;
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* Body param: Optional preference name
|
|
209
|
-
*/
|
|
210
|
-
name?: string | null;
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Body param: Optional CSV file with prompts
|
|
214
|
-
*/
|
|
215
|
-
prompt_file?: Uploadable | null;
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Body param: Optional JSON string of prompts array
|
|
219
|
-
*/
|
|
220
|
-
prompts?: string | null;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
export interface PznTrainCustomRouterParams {
|
|
120
|
+
export interface CustomRouterTrainCustomRouterParams {
|
|
224
121
|
/**
|
|
225
122
|
* CSV file containing evaluation data with prompt column and score/response
|
|
226
123
|
* columns for each model
|
|
@@ -263,11 +160,9 @@ export interface PznTrainCustomRouterParams {
|
|
|
263
160
|
preference_id?: string | null;
|
|
264
161
|
}
|
|
265
162
|
|
|
266
|
-
export declare namespace
|
|
163
|
+
export declare namespace CustomRouter {
|
|
267
164
|
export {
|
|
268
|
-
type
|
|
269
|
-
type
|
|
270
|
-
type PznSubmitSurveyResponseParams as PznSubmitSurveyResponseParams,
|
|
271
|
-
type PznTrainCustomRouterParams as PznTrainCustomRouterParams,
|
|
165
|
+
type CustomRouterTrainCustomRouterResponse as CustomRouterTrainCustomRouterResponse,
|
|
166
|
+
type CustomRouterTrainCustomRouterParams as CustomRouterTrainCustomRouterParams,
|
|
272
167
|
};
|
|
273
168
|
}
|
package/src/resources/index.ts
CHANGED
|
@@ -1,34 +1,32 @@
|
|
|
1
1
|
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
+
export {
|
|
4
|
+
CustomRouter,
|
|
5
|
+
type CustomRouterTrainCustomRouterResponse,
|
|
6
|
+
type CustomRouterTrainCustomRouterParams,
|
|
7
|
+
} from './custom-router';
|
|
3
8
|
export {
|
|
4
9
|
ModelRouter,
|
|
5
|
-
type ModelRouterOpenHandsSelectResponse,
|
|
6
10
|
type ModelRouterSelectModelResponse,
|
|
7
|
-
type ModelRouterOpenHandsSelectParams,
|
|
8
11
|
type ModelRouterSelectModelParams,
|
|
9
12
|
} from './model-router';
|
|
10
13
|
export { Models, type Model, type ModelListResponse, type ModelListParams } from './models';
|
|
11
14
|
export {
|
|
12
15
|
Preferences,
|
|
13
16
|
type PreferenceCreateResponse,
|
|
14
|
-
type PreferenceRetrieveResponse,
|
|
15
17
|
type PreferenceUpdateResponse,
|
|
16
18
|
type PreferenceDeleteResponse,
|
|
17
19
|
type PreferenceCreateParams,
|
|
18
|
-
type PreferenceRetrieveParams,
|
|
19
20
|
type PreferenceUpdateParams,
|
|
20
21
|
} from './preferences';
|
|
21
22
|
export {
|
|
22
|
-
|
|
23
|
+
PromptAdaptation,
|
|
24
|
+
type GoldenRecord,
|
|
23
25
|
type JobStatus,
|
|
24
|
-
type
|
|
25
|
-
type
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
type
|
|
30
|
-
|
|
31
|
-
type PznSubmitSurveyResponseParams,
|
|
32
|
-
type PznTrainCustomRouterParams,
|
|
33
|
-
} from './pzn';
|
|
34
|
-
export { Report } from './report/report';
|
|
26
|
+
type RequestProvider,
|
|
27
|
+
type PromptAdaptationAdaptResponse,
|
|
28
|
+
type PromptAdaptationGetAdaptResultsResponse,
|
|
29
|
+
type PromptAdaptationGetAdaptStatusResponse,
|
|
30
|
+
type PromptAdaptationGetCostResponse,
|
|
31
|
+
type PromptAdaptationAdaptParams,
|
|
32
|
+
} from './prompt-adaptation';
|
|
@@ -1,45 +1,17 @@
|
|
|
1
1
|
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
3
|
import { APIResource } from '../core/resource';
|
|
4
|
-
import * as
|
|
4
|
+
import * as PromptAdaptationAPI from './prompt-adaptation';
|
|
5
5
|
import { APIPromise } from '../core/api-promise';
|
|
6
6
|
import { RequestOptions } from '../internal/request-options';
|
|
7
7
|
|
|
8
8
|
export class ModelRouter extends APIResource {
|
|
9
|
-
/**
|
|
10
|
-
* Openhands Model Select
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* const response = await client.modelRouter.openHandsSelect({
|
|
15
|
-
* llm_providers: [
|
|
16
|
-
* { model: 'gpt-4o', provider: 'openai' },
|
|
17
|
-
* {
|
|
18
|
-
* model: 'claude-sonnet-4-5-20250929',
|
|
19
|
-
* provider: 'anthropic',
|
|
20
|
-
* },
|
|
21
|
-
* { model: 'gemini-1.5-pro', provider: 'google' },
|
|
22
|
-
* ],
|
|
23
|
-
* messages: [
|
|
24
|
-
* {
|
|
25
|
-
* content: 'You are a helpful assistant.',
|
|
26
|
-
* role: 'system',
|
|
27
|
-
* },
|
|
28
|
-
* { content: 'Explain quantum computing', role: 'user' },
|
|
29
|
-
* ],
|
|
30
|
-
* });
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
openHandsSelect(body: ModelRouterOpenHandsSelectParams, options?: RequestOptions): APIPromise<unknown> {
|
|
34
|
-
return this._client.post('/v2/modelRouter/openHandsRouter', { body, ...options });
|
|
35
|
-
}
|
|
36
|
-
|
|
37
9
|
/**
|
|
38
10
|
* Select the optimal LLM to handle your query based on Not Diamond's routing
|
|
39
11
|
* algorithm.
|
|
40
12
|
*
|
|
41
13
|
* This endpoint analyzes your messages and returns the best-suited model from your
|
|
42
|
-
* specified
|
|
14
|
+
* specified models. The router considers factors like query complexity, model
|
|
43
15
|
* capabilities, cost, and latency based on your preferences.
|
|
44
16
|
*
|
|
45
17
|
* **Key Features:**
|
|
@@ -48,14 +20,13 @@ export class ModelRouter extends APIResource {
|
|
|
48
20
|
* - Support for custom routers trained on your evaluation data
|
|
49
21
|
* - Optional cost/latency optimization
|
|
50
22
|
* - Function calling support for compatible models
|
|
51
|
-
* - Privacy-preserving content hashing
|
|
52
23
|
*
|
|
53
24
|
* **Usage:**
|
|
54
25
|
*
|
|
55
26
|
* 1. Pass your messages in OpenAI format (array of objects with 'role' and
|
|
56
27
|
* 'content')
|
|
57
28
|
* 2. Specify which LLM providers you want to route between
|
|
58
|
-
* 3. Optionally provide a preference_id
|
|
29
|
+
* 3. Optionally provide a preference_id to use a custom router that you've trained
|
|
59
30
|
* 4. Receive a recommended model and session_id
|
|
60
31
|
* 5. Use the session_id to submit feedback and improve routing
|
|
61
32
|
*
|
|
@@ -63,7 +34,6 @@ export class ModelRouter extends APIResource {
|
|
|
63
34
|
*
|
|
64
35
|
* - `POST /v2/preferences/userPreferenceCreate` - Create a preference ID for
|
|
65
36
|
* personalized routing
|
|
66
|
-
* - `POST /v2/report/metrics/feedback` - Submit feedback on routing decisions
|
|
67
37
|
* - `POST /v2/pzn/trainCustomRouter` - Train a custom router on your evaluation
|
|
68
38
|
* data
|
|
69
39
|
*
|
|
@@ -76,7 +46,7 @@ export class ModelRouter extends APIResource {
|
|
|
76
46
|
* provider: 'anthropic',
|
|
77
47
|
* model: 'claude-sonnet-4-5-20250929',
|
|
78
48
|
* },
|
|
79
|
-
* { provider: 'google', model: 'gemini-
|
|
49
|
+
* { provider: 'google', model: 'gemini-2.5-flash' },
|
|
80
50
|
* ],
|
|
81
51
|
* messages: [
|
|
82
52
|
* {
|
|
@@ -100,8 +70,6 @@ export class ModelRouter extends APIResource {
|
|
|
100
70
|
}
|
|
101
71
|
}
|
|
102
72
|
|
|
103
|
-
export type ModelRouterOpenHandsSelectResponse = unknown;
|
|
104
|
-
|
|
105
73
|
/**
|
|
106
74
|
* Response from model selection endpoint.
|
|
107
75
|
*/
|
|
@@ -139,112 +107,12 @@ export namespace ModelRouterSelectModelResponse {
|
|
|
139
107
|
}
|
|
140
108
|
}
|
|
141
109
|
|
|
142
|
-
export interface ModelRouterOpenHandsSelectParams {
|
|
143
|
-
/**
|
|
144
|
-
* List of LLM providers to route between. Specify at least one provider in format
|
|
145
|
-
* {provider, model}
|
|
146
|
-
*/
|
|
147
|
-
llm_providers: Array<AdaptAPI.RequestProvider | ModelRouterOpenHandsSelectParams.OpenRouterProvider>;
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Array of message objects in OpenAI format (with 'role' and 'content' keys)
|
|
151
|
-
*/
|
|
152
|
-
messages: Array<{ [key: string]: string | Array<unknown> }> | string;
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Whether to hash message content for privacy
|
|
156
|
-
*/
|
|
157
|
-
hash_content?: boolean;
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Maximum number of models to consider for routing. If not specified, considers
|
|
161
|
-
* all provided models
|
|
162
|
-
*/
|
|
163
|
-
max_model_depth?: number | null;
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Optimization metric for model selection
|
|
167
|
-
*/
|
|
168
|
-
metric?: string;
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Preference ID for personalized routing. Create one via POST
|
|
172
|
-
* /v2/preferences/userPreferenceCreate
|
|
173
|
-
*/
|
|
174
|
-
preference_id?: string | null;
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Previous session ID to link related requests
|
|
178
|
-
*/
|
|
179
|
-
previous_session?: string | null;
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* OpenAI-format function calling tools
|
|
183
|
-
*/
|
|
184
|
-
tools?: Array<{ [key: string]: unknown }> | null;
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Optimization tradeoff strategy. Use 'cost' to prioritize cost savings or
|
|
188
|
-
* 'latency' to prioritize speed
|
|
189
|
-
*/
|
|
190
|
-
tradeoff?: string | null;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
export namespace ModelRouterOpenHandsSelectParams {
|
|
194
|
-
/**
|
|
195
|
-
* Model for specifying an LLM provider using OpenRouter format.
|
|
196
|
-
*
|
|
197
|
-
* Used in model routing requests when you want to specify providers using the
|
|
198
|
-
* OpenRouter naming convention (combined 'provider/model' format). This is an
|
|
199
|
-
* alternative to the standard RequestProvider which uses separate provider and
|
|
200
|
-
* model fields.
|
|
201
|
-
*
|
|
202
|
-
* **When to use:**
|
|
203
|
-
*
|
|
204
|
-
* - When working with OpenRouter-compatible systems
|
|
205
|
-
* - When you prefer the unified 'provider/model' format
|
|
206
|
-
* - For models accessed via OpenRouter proxy
|
|
207
|
-
*/
|
|
208
|
-
export interface OpenRouterProvider {
|
|
209
|
-
/**
|
|
210
|
-
* OpenRouter model identifier in 'provider/model' format (e.g., 'openai/gpt-4o',
|
|
211
|
-
* 'anthropic/claude-sonnet-4-5-20250929')
|
|
212
|
-
*/
|
|
213
|
-
model: string;
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Maximum context length for the model (required for custom models)
|
|
217
|
-
*/
|
|
218
|
-
context_length?: number | null;
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* Input token price per million tokens in USD (required for custom models)
|
|
222
|
-
*/
|
|
223
|
-
input_price?: number | null;
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* Whether this is a custom model not in Not Diamond's supported model list
|
|
227
|
-
*/
|
|
228
|
-
is_custom?: boolean;
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Average latency in seconds (required for custom models)
|
|
232
|
-
*/
|
|
233
|
-
latency?: number | null;
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Output token price per million tokens in USD (required for custom models)
|
|
237
|
-
*/
|
|
238
|
-
output_price?: number | null;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
|
|
242
110
|
export interface ModelRouterSelectModelParams {
|
|
243
111
|
/**
|
|
244
112
|
* Body param: List of LLM providers to route between. Specify at least one
|
|
245
113
|
* provider in format {provider, model}
|
|
246
114
|
*/
|
|
247
|
-
llm_providers: Array<
|
|
115
|
+
llm_providers: Array<PromptAdaptationAPI.RequestProvider | ModelRouterSelectModelParams.OpenRouterProvider>;
|
|
248
116
|
|
|
249
117
|
/**
|
|
250
118
|
* Body param: Array of message objects in OpenAI format (with 'role' and 'content'
|
|
@@ -348,9 +216,7 @@ export namespace ModelRouterSelectModelParams {
|
|
|
348
216
|
|
|
349
217
|
export declare namespace ModelRouter {
|
|
350
218
|
export {
|
|
351
|
-
type ModelRouterOpenHandsSelectResponse as ModelRouterOpenHandsSelectResponse,
|
|
352
219
|
type ModelRouterSelectModelResponse as ModelRouterSelectModelResponse,
|
|
353
|
-
type ModelRouterOpenHandsSelectParams as ModelRouterOpenHandsSelectParams,
|
|
354
220
|
type ModelRouterSelectModelParams as ModelRouterSelectModelParams,
|
|
355
221
|
};
|
|
356
222
|
}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import { APIResource } from '../core/resource';
|
|
4
4
|
import { APIPromise } from '../core/api-promise';
|
|
5
|
-
import { buildHeaders } from '../internal/headers';
|
|
6
5
|
import { RequestOptions } from '../internal/request-options';
|
|
7
6
|
import { path } from '../internal/utils/path';
|
|
8
7
|
|
|
@@ -14,20 +13,17 @@ export class Preferences extends APIResource {
|
|
|
14
13
|
* learning your preferences over time. Once created, you can:
|
|
15
14
|
*
|
|
16
15
|
* 1. Use it in model_select() calls to get personalized routing decisions
|
|
17
|
-
* 2.
|
|
18
|
-
* 3. Train a custom router specific to your use case
|
|
16
|
+
* 2. Train a custom router specific to your use case
|
|
19
17
|
*
|
|
20
18
|
* **Workflow:**
|
|
21
19
|
*
|
|
22
20
|
* 1. Create a preference ID (this endpoint)
|
|
23
21
|
* 2. Use the preference_id in POST /v2/modelRouter/modelSelect requests
|
|
24
|
-
* 3.
|
|
25
|
-
* 4. Optionally train a custom router via POST /v2/pzn/trainCustomRouter
|
|
22
|
+
* 3. Optionally train a custom router via POST /v2/pzn/trainCustomRouter
|
|
26
23
|
*
|
|
27
24
|
* **Benefits:**
|
|
28
25
|
*
|
|
29
|
-
* - Personalized routing
|
|
30
|
-
* - Improved accuracy for your specific use case
|
|
26
|
+
* - Personalized routing for your specific use case
|
|
31
27
|
* - Ability to train custom routers on your evaluation data
|
|
32
28
|
*
|
|
33
29
|
* **Note:** If you don't provide a preference_id in model_select() calls, the
|
|
@@ -42,25 +38,6 @@ export class Preferences extends APIResource {
|
|
|
42
38
|
return this._client.post('/v2/preferences/userPreferenceCreate', { body, ...options });
|
|
43
39
|
}
|
|
44
40
|
|
|
45
|
-
/**
|
|
46
|
-
* Get User Preference
|
|
47
|
-
*
|
|
48
|
-
* @example
|
|
49
|
-
* ```ts
|
|
50
|
-
* const preference = await client.preferences.retrieve(
|
|
51
|
-
* 'user_id',
|
|
52
|
-
* { 'x-token': 'x-token' },
|
|
53
|
-
* );
|
|
54
|
-
* ```
|
|
55
|
-
*/
|
|
56
|
-
retrieve(userID: string, params: PreferenceRetrieveParams, options?: RequestOptions): APIPromise<unknown> {
|
|
57
|
-
const { 'x-token': xToken } = params;
|
|
58
|
-
return this._client.get(path`/v2/preferences/${userID}`, {
|
|
59
|
-
...options,
|
|
60
|
-
headers: buildHeaders([{ 'x-token': xToken }, options?.headers]),
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
|
|
64
41
|
/**
|
|
65
42
|
* Update User Preference
|
|
66
43
|
*
|
|
@@ -111,8 +88,6 @@ export interface PreferenceCreateResponse {
|
|
|
111
88
|
preference_id: string;
|
|
112
89
|
}
|
|
113
90
|
|
|
114
|
-
export type PreferenceRetrieveResponse = unknown;
|
|
115
|
-
|
|
116
91
|
export type PreferenceUpdateResponse = unknown;
|
|
117
92
|
|
|
118
93
|
export type PreferenceDeleteResponse = unknown;
|
|
@@ -126,10 +101,6 @@ export interface PreferenceCreateParams {
|
|
|
126
101
|
name?: string | null;
|
|
127
102
|
}
|
|
128
103
|
|
|
129
|
-
export interface PreferenceRetrieveParams {
|
|
130
|
-
'x-token': string;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
104
|
export interface PreferenceUpdateParams {
|
|
134
105
|
preference_id: string;
|
|
135
106
|
|
|
@@ -139,11 +110,9 @@ export interface PreferenceUpdateParams {
|
|
|
139
110
|
export declare namespace Preferences {
|
|
140
111
|
export {
|
|
141
112
|
type PreferenceCreateResponse as PreferenceCreateResponse,
|
|
142
|
-
type PreferenceRetrieveResponse as PreferenceRetrieveResponse,
|
|
143
113
|
type PreferenceUpdateResponse as PreferenceUpdateResponse,
|
|
144
114
|
type PreferenceDeleteResponse as PreferenceDeleteResponse,
|
|
145
115
|
type PreferenceCreateParams as PreferenceCreateParams,
|
|
146
|
-
type PreferenceRetrieveParams as PreferenceRetrieveParams,
|
|
147
116
|
type PreferenceUpdateParams as PreferenceUpdateParams,
|
|
148
117
|
};
|
|
149
118
|
}
|