notdiamond 2.0.0-rc5 → 2.1.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 +170 -0
- package/LICENSE +1 -1
- package/README.md +276 -148
- package/client.d.mts +16 -19
- package/client.d.mts.map +1 -1
- package/client.d.ts +16 -19
- package/client.d.ts.map +1 -1
- package/client.js +11 -14
- package/client.js.map +1 -1
- package/client.mjs +11 -14
- package/client.mjs.map +1 -1
- package/internal/tslib.js +17 -17
- 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 +687 -0
- package/resources/prompt-adaptation.d.mts.map +1 -0
- package/resources/prompt-adaptation.d.ts +687 -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 +37 -44
- 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 +780 -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
package/src/client.ts
CHANGED
|
@@ -17,10 +17,13 @@ import * as Errors from './core/error';
|
|
|
17
17
|
import * as Uploads from './core/uploads';
|
|
18
18
|
import * as API from './resources/index';
|
|
19
19
|
import { APIPromise } from './core/api-promise';
|
|
20
|
+
import {
|
|
21
|
+
CustomRouter,
|
|
22
|
+
CustomRouterTrainCustomRouterParams,
|
|
23
|
+
CustomRouterTrainCustomRouterResponse,
|
|
24
|
+
} from './resources/custom-router';
|
|
20
25
|
import {
|
|
21
26
|
ModelRouter,
|
|
22
|
-
ModelRouterOpenHandsSelectParams,
|
|
23
|
-
ModelRouterOpenHandsSelectResponse,
|
|
24
27
|
ModelRouterSelectModelParams,
|
|
25
28
|
ModelRouterSelectModelResponse,
|
|
26
29
|
} from './resources/model-router';
|
|
@@ -29,26 +32,21 @@ import {
|
|
|
29
32
|
PreferenceCreateParams,
|
|
30
33
|
PreferenceCreateResponse,
|
|
31
34
|
PreferenceDeleteResponse,
|
|
32
|
-
PreferenceRetrieveParams,
|
|
33
|
-
PreferenceRetrieveResponse,
|
|
34
35
|
PreferenceUpdateParams,
|
|
35
36
|
PreferenceUpdateResponse,
|
|
36
37
|
Preferences,
|
|
37
38
|
} from './resources/preferences';
|
|
38
39
|
import {
|
|
39
|
-
|
|
40
|
-
PznSubmitSurveyResponseParams,
|
|
41
|
-
PznSubmitSurveyResponseResponse,
|
|
42
|
-
PznTrainCustomRouterParams,
|
|
43
|
-
PznTrainCustomRouterResponse,
|
|
44
|
-
} from './resources/pzn';
|
|
45
|
-
import {
|
|
40
|
+
GoldenRecord,
|
|
46
41
|
JobStatus,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
PromptAdaptation,
|
|
43
|
+
PromptAdaptationAdaptParams,
|
|
44
|
+
PromptAdaptationAdaptResponse,
|
|
45
|
+
PromptAdaptationGetAdaptResultsResponse,
|
|
46
|
+
PromptAdaptationGetAdaptStatusResponse,
|
|
47
|
+
PromptAdaptationGetCostResponse,
|
|
48
|
+
RequestProvider,
|
|
49
|
+
} from './resources/prompt-adaptation';
|
|
52
50
|
import { type Fetch } from './internal/builtin-types';
|
|
53
51
|
import { HeadersLike, NullableHeaders, buildHeaders } from './internal/headers';
|
|
54
52
|
import { FinalRequestOptions, RequestOptions } from './internal/request-options';
|
|
@@ -71,7 +69,7 @@ export interface ClientOptions {
|
|
|
71
69
|
/**
|
|
72
70
|
* Override the default base URL for the API, e.g., "https://api.example.com/v2/"
|
|
73
71
|
*
|
|
74
|
-
* Defaults to process.env['
|
|
72
|
+
* Defaults to process.env['NOTDIAMOND_BASE_URL'].
|
|
75
73
|
*/
|
|
76
74
|
baseURL?: string | null | undefined;
|
|
77
75
|
|
|
@@ -125,7 +123,7 @@ export interface ClientOptions {
|
|
|
125
123
|
/**
|
|
126
124
|
* Set the log level.
|
|
127
125
|
*
|
|
128
|
-
* Defaults to process.env['
|
|
126
|
+
* Defaults to process.env['NOTDIAMOND_LOG'] or 'warn' if it isn't set.
|
|
129
127
|
*/
|
|
130
128
|
logLevel?: LogLevel | undefined;
|
|
131
129
|
|
|
@@ -138,7 +136,7 @@ export interface ClientOptions {
|
|
|
138
136
|
}
|
|
139
137
|
|
|
140
138
|
/**
|
|
141
|
-
* API Client for interfacing with the
|
|
139
|
+
* API Client for interfacing with the Notdiamond API.
|
|
142
140
|
*/
|
|
143
141
|
export class NotDiamond {
|
|
144
142
|
apiKey: string;
|
|
@@ -146,7 +144,7 @@ export class NotDiamond {
|
|
|
146
144
|
baseURL: string;
|
|
147
145
|
maxRetries: number;
|
|
148
146
|
timeout: number;
|
|
149
|
-
logger: Logger
|
|
147
|
+
logger: Logger;
|
|
150
148
|
logLevel: LogLevel | undefined;
|
|
151
149
|
fetchOptions: MergedRequestInit | undefined;
|
|
152
150
|
|
|
@@ -156,10 +154,10 @@ export class NotDiamond {
|
|
|
156
154
|
private _options: ClientOptions;
|
|
157
155
|
|
|
158
156
|
/**
|
|
159
|
-
* API Client for interfacing with the
|
|
157
|
+
* API Client for interfacing with the Notdiamond API.
|
|
160
158
|
*
|
|
161
159
|
* @param {string | undefined} [opts.apiKey=process.env['NOT_DIAMOND_API_KEY'] ?? undefined]
|
|
162
|
-
* @param {string} [opts.baseURL=process.env['
|
|
160
|
+
* @param {string} [opts.baseURL=process.env['NOTDIAMOND_BASE_URL'] ?? https://api.notdiamond.ai] - Override the default base URL for the API.
|
|
163
161
|
* @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.
|
|
164
162
|
* @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.
|
|
165
163
|
* @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.
|
|
@@ -168,7 +166,7 @@ export class NotDiamond {
|
|
|
168
166
|
* @param {Record<string, string | undefined>} opts.defaultQuery - Default query parameters to include with every request to the API.
|
|
169
167
|
*/
|
|
170
168
|
constructor({
|
|
171
|
-
baseURL = readEnv('
|
|
169
|
+
baseURL = readEnv('NOTDIAMOND_BASE_URL'),
|
|
172
170
|
apiKey = readEnv('NOT_DIAMOND_API_KEY'),
|
|
173
171
|
...opts
|
|
174
172
|
}: ClientOptions = {}) {
|
|
@@ -192,7 +190,7 @@ export class NotDiamond {
|
|
|
192
190
|
this.logLevel = defaultLogLevel;
|
|
193
191
|
this.logLevel =
|
|
194
192
|
parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ??
|
|
195
|
-
parseLogLevel(readEnv('
|
|
193
|
+
parseLogLevel(readEnv('NOTDIAMOND_LOG'), "process.env['NOTDIAMOND_LOG']", this) ??
|
|
196
194
|
defaultLogLevel;
|
|
197
195
|
this.fetchOptions = options.fetchOptions;
|
|
198
196
|
this.maxRetries = options.maxRetries ?? 2;
|
|
@@ -731,18 +729,16 @@ export class NotDiamond {
|
|
|
731
729
|
static toFile = Uploads.toFile;
|
|
732
730
|
|
|
733
731
|
modelRouter: API.ModelRouter = new API.ModelRouter(this);
|
|
734
|
-
report: API.Report = new API.Report(this);
|
|
735
732
|
preferences: API.Preferences = new API.Preferences(this);
|
|
736
|
-
|
|
737
|
-
|
|
733
|
+
promptAdaptation: API.PromptAdaptation = new API.PromptAdaptation(this);
|
|
734
|
+
customRouter: API.CustomRouter = new API.CustomRouter(this);
|
|
738
735
|
models: API.Models = new API.Models(this);
|
|
739
736
|
}
|
|
740
737
|
|
|
741
738
|
NotDiamond.ModelRouter = ModelRouter;
|
|
742
|
-
NotDiamond.Report = Report;
|
|
743
739
|
NotDiamond.Preferences = Preferences;
|
|
744
|
-
NotDiamond.
|
|
745
|
-
NotDiamond.
|
|
740
|
+
NotDiamond.PromptAdaptation = PromptAdaptation;
|
|
741
|
+
NotDiamond.CustomRouter = CustomRouter;
|
|
746
742
|
NotDiamond.Models = Models;
|
|
747
743
|
|
|
748
744
|
export declare namespace NotDiamond {
|
|
@@ -750,38 +746,35 @@ export declare namespace NotDiamond {
|
|
|
750
746
|
|
|
751
747
|
export {
|
|
752
748
|
ModelRouter as ModelRouter,
|
|
753
|
-
type ModelRouterOpenHandsSelectResponse as ModelRouterOpenHandsSelectResponse,
|
|
754
749
|
type ModelRouterSelectModelResponse as ModelRouterSelectModelResponse,
|
|
755
|
-
type ModelRouterOpenHandsSelectParams as ModelRouterOpenHandsSelectParams,
|
|
756
750
|
type ModelRouterSelectModelParams as ModelRouterSelectModelParams,
|
|
757
751
|
};
|
|
758
752
|
|
|
759
|
-
export { Report as Report };
|
|
760
|
-
|
|
761
753
|
export {
|
|
762
754
|
Preferences as Preferences,
|
|
763
755
|
type PreferenceCreateResponse as PreferenceCreateResponse,
|
|
764
|
-
type PreferenceRetrieveResponse as PreferenceRetrieveResponse,
|
|
765
756
|
type PreferenceUpdateResponse as PreferenceUpdateResponse,
|
|
766
757
|
type PreferenceDeleteResponse as PreferenceDeleteResponse,
|
|
767
758
|
type PreferenceCreateParams as PreferenceCreateParams,
|
|
768
|
-
type PreferenceRetrieveParams as PreferenceRetrieveParams,
|
|
769
759
|
type PreferenceUpdateParams as PreferenceUpdateParams,
|
|
770
760
|
};
|
|
771
761
|
|
|
772
762
|
export {
|
|
773
|
-
|
|
763
|
+
PromptAdaptation as PromptAdaptation,
|
|
764
|
+
type GoldenRecord as GoldenRecord,
|
|
774
765
|
type JobStatus as JobStatus,
|
|
775
|
-
type
|
|
776
|
-
type
|
|
766
|
+
type RequestProvider as RequestProvider,
|
|
767
|
+
type PromptAdaptationAdaptResponse as PromptAdaptationAdaptResponse,
|
|
768
|
+
type PromptAdaptationGetAdaptResultsResponse as PromptAdaptationGetAdaptResultsResponse,
|
|
769
|
+
type PromptAdaptationGetAdaptStatusResponse as PromptAdaptationGetAdaptStatusResponse,
|
|
770
|
+
type PromptAdaptationGetCostResponse as PromptAdaptationGetCostResponse,
|
|
771
|
+
type PromptAdaptationAdaptParams as PromptAdaptationAdaptParams,
|
|
777
772
|
};
|
|
778
773
|
|
|
779
774
|
export {
|
|
780
|
-
|
|
781
|
-
type
|
|
782
|
-
type
|
|
783
|
-
type PznSubmitSurveyResponseParams as PznSubmitSurveyResponseParams,
|
|
784
|
-
type PznTrainCustomRouterParams as PznTrainCustomRouterParams,
|
|
775
|
+
CustomRouter as CustomRouter,
|
|
776
|
+
type CustomRouterTrainCustomRouterResponse as CustomRouterTrainCustomRouterResponse,
|
|
777
|
+
type CustomRouterTrainCustomRouterParams as CustomRouterTrainCustomRouterParams,
|
|
785
778
|
};
|
|
786
779
|
|
|
787
780
|
export {
|
|
@@ -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
|
}
|