notdiamond 2.0.0-rc1 → 2.0.0-rc10
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 +89 -0
- package/README.md +299 -97
- package/client.d.mts +19 -33
- package/client.d.mts.map +1 -1
- package/client.d.ts +19 -33
- package/client.d.ts.map +1 -1
- package/client.js +19 -35
- package/client.js.map +1 -1
- package/client.mjs +19 -35
- package/client.mjs.map +1 -1
- package/internal/tslib.js +17 -17
- package/internal/utils/env.d.mts.map +1 -1
- package/internal/utils/env.d.ts.map +1 -1
- package/internal/utils/env.js +4 -2
- package/internal/utils/env.js.map +1 -1
- package/internal/utils/env.mjs +4 -2
- package/internal/utils/env.mjs.map +1 -1
- package/package.json +10 -11
- package/resources/custom-router.d.mts +145 -0
- package/resources/custom-router.d.mts.map +1 -0
- package/resources/custom-router.d.ts +145 -0
- package/resources/custom-router.d.ts.map +1 -0
- package/resources/custom-router.js +83 -0
- package/resources/custom-router.js.map +1 -0
- package/resources/custom-router.mjs +79 -0
- package/resources/custom-router.mjs.map +1 -0
- package/resources/index.d.mts +6 -6
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +6 -6
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +6 -6
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +3 -3
- package/resources/index.mjs.map +1 -1
- package/resources/model-router.d.mts +196 -0
- package/resources/model-router.d.mts.map +1 -0
- package/resources/model-router.d.ts +196 -0
- package/resources/model-router.d.ts.map +1 -0
- package/resources/model-router.js +70 -0
- package/resources/model-router.js.map +1 -0
- package/resources/model-router.mjs +66 -0
- package/resources/model-router.mjs.map +1 -0
- package/resources/models.d.mts +50 -25
- package/resources/models.d.mts.map +1 -1
- package/resources/models.d.ts +50 -25
- package/resources/models.d.ts.map +1 -1
- package/resources/models.js +5 -0
- package/resources/models.js.map +1 -1
- package/resources/models.mjs +5 -0
- package/resources/models.mjs.map +1 -1
- package/resources/preferences.d.mts +34 -48
- package/resources/preferences.d.mts.map +1 -1
- package/resources/preferences.d.ts +34 -48
- package/resources/preferences.d.ts.map +1 -1
- package/resources/preferences.js +14 -36
- package/resources/preferences.js.map +1 -1
- package/resources/preferences.mjs +14 -36
- package/resources/preferences.mjs.map +1 -1
- package/resources/prompt-adaptation.d.mts +339 -234
- package/resources/prompt-adaptation.d.mts.map +1 -1
- package/resources/prompt-adaptation.d.ts +339 -234
- package/resources/prompt-adaptation.d.ts.map +1 -1
- package/resources/prompt-adaptation.js +30 -53
- package/resources/prompt-adaptation.js.map +1 -1
- package/resources/prompt-adaptation.mjs +30 -53
- package/resources/prompt-adaptation.mjs.map +1 -1
- package/resources/report/index.d.mts +3 -0
- package/resources/report/index.d.mts.map +1 -0
- package/resources/report/index.d.ts +3 -0
- package/resources/report/index.d.ts.map +1 -0
- package/resources/report/index.js +9 -0
- package/resources/report/index.js.map +1 -0
- package/resources/report/index.mjs +4 -0
- package/resources/report/index.mjs.map +1 -0
- package/resources/report/metrics.d.mts +87 -0
- package/resources/report/metrics.d.mts.map +1 -0
- package/resources/report/metrics.d.ts +87 -0
- package/resources/report/metrics.d.ts.map +1 -0
- package/resources/report/metrics.js +57 -0
- package/resources/report/metrics.js.map +1 -0
- package/resources/report/metrics.mjs +53 -0
- package/resources/report/metrics.mjs.map +1 -0
- package/resources/report/report.d.mts +10 -0
- package/resources/report/report.d.mts.map +1 -0
- package/resources/report/report.d.ts +10 -0
- package/resources/report/report.d.ts.map +1 -0
- package/resources/report/report.js +17 -0
- package/resources/report/report.js.map +1 -0
- package/resources/report/report.mjs +12 -0
- package/resources/report/report.mjs.map +1 -0
- package/resources/report.d.mts +1 -244
- package/resources/report.d.mts.map +1 -1
- package/resources/report.d.ts +1 -244
- package/resources/report.d.ts.map +1 -1
- package/resources/report.js +2 -82
- package/resources/report.js.map +1 -1
- package/resources/report.mjs +1 -80
- package/resources/report.mjs.map +1 -1
- package/src/client.ts +65 -116
- package/src/internal/utils/env.ts +4 -2
- package/src/resources/custom-router.ts +168 -0
- package/src/resources/index.ts +23 -34
- package/src/resources/model-router.ts +224 -0
- package/src/resources/models.ts +55 -32
- package/src/resources/preferences.ts +40 -77
- package/src/resources/prompt-adaptation.ts +361 -291
- package/src/resources/report/index.ts +4 -0
- package/src/resources/report/metrics.ts +99 -0
- package/src/resources/report/report.ts +19 -0
- package/src/resources/report.ts +1 -298
- 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/admin.d.mts +0 -4
- package/resources/admin.d.mts.map +0 -1
- package/resources/admin.d.ts +0 -4
- package/resources/admin.d.ts.map +0 -1
- package/resources/admin.js +0 -9
- package/resources/admin.js.map +0 -1
- package/resources/admin.mjs +0 -5
- package/resources/admin.mjs.map +0 -1
- package/resources/routing.d.mts +0 -391
- package/resources/routing.d.mts.map +0 -1
- package/resources/routing.d.ts +0 -391
- package/resources/routing.d.ts.map +0 -1
- package/resources/routing.js +0 -163
- package/resources/routing.js.map +0 -1
- package/resources/routing.mjs +0 -159
- package/resources/routing.mjs.map +0 -1
- package/src/resources/admin.ts +0 -5
- package/src/resources/routing.ts +0 -476
package/src/resources/index.ts
CHANGED
|
@@ -1,44 +1,33 @@
|
|
|
1
1
|
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
-
export {
|
|
4
|
-
|
|
3
|
+
export {
|
|
4
|
+
CustomRouter,
|
|
5
|
+
type CustomRouterTrainCustomRouterResponse,
|
|
6
|
+
type CustomRouterTrainCustomRouterParams,
|
|
7
|
+
} from './custom-router';
|
|
8
|
+
export {
|
|
9
|
+
ModelRouter,
|
|
10
|
+
type ModelRouterSelectModelResponse,
|
|
11
|
+
type ModelRouterSelectModelParams,
|
|
12
|
+
} from './model-router';
|
|
13
|
+
export { Models, type Model, type ModelListResponse, type ModelListParams } from './models';
|
|
5
14
|
export {
|
|
6
15
|
Preferences,
|
|
7
|
-
type
|
|
8
|
-
type
|
|
9
|
-
type
|
|
10
|
-
type
|
|
11
|
-
type
|
|
12
|
-
type PreferenceCreateUserPreferenceParams,
|
|
13
|
-
type PreferenceUpdateUserPreferenceParams,
|
|
16
|
+
type PreferenceCreateResponse,
|
|
17
|
+
type PreferenceUpdateResponse,
|
|
18
|
+
type PreferenceDeleteResponse,
|
|
19
|
+
type PreferenceCreateParams,
|
|
20
|
+
type PreferenceUpdateParams,
|
|
14
21
|
} from './preferences';
|
|
15
22
|
export {
|
|
16
23
|
PromptAdaptation,
|
|
17
|
-
type
|
|
24
|
+
type GoldenRecord,
|
|
18
25
|
type JobStatus,
|
|
19
|
-
type
|
|
20
|
-
type
|
|
26
|
+
type RequestProvider,
|
|
27
|
+
type PromptAdaptationCreateResponse,
|
|
28
|
+
type PromptAdaptationGetAdaptResultsResponse,
|
|
21
29
|
type PromptAdaptationGetAdaptStatusResponse,
|
|
22
|
-
type
|
|
23
|
-
type
|
|
24
|
-
type PromptAdaptationGetAdaptRunResultsParams,
|
|
25
|
-
type PromptAdaptationGetAdaptRunsParams,
|
|
30
|
+
type PromptAdaptationGetCostsResponse,
|
|
31
|
+
type PromptAdaptationCreateParams,
|
|
26
32
|
} from './prompt-adaptation';
|
|
27
|
-
export {
|
|
28
|
-
Report,
|
|
29
|
-
type ReportEvaluateHallucinationResponse,
|
|
30
|
-
type ReportLatencyResponse,
|
|
31
|
-
type ReportSubmitFeedbackResponse,
|
|
32
|
-
type ReportEvaluateHallucinationParams,
|
|
33
|
-
type ReportLatencyParams,
|
|
34
|
-
type ReportSubmitFeedbackParams,
|
|
35
|
-
} from './report';
|
|
36
|
-
export {
|
|
37
|
-
Routing,
|
|
38
|
-
type RoutingCreateSurveyResponseResponse,
|
|
39
|
-
type RoutingSelectModelResponse,
|
|
40
|
-
type RoutingTrainCustomRouterResponse,
|
|
41
|
-
type RoutingCreateSurveyResponseParams,
|
|
42
|
-
type RoutingSelectModelParams,
|
|
43
|
-
type RoutingTrainCustomRouterParams,
|
|
44
|
-
} from './routing';
|
|
33
|
+
export { Report } from './report/report';
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../core/resource';
|
|
4
|
+
import * as PromptAdaptationAPI from './prompt-adaptation';
|
|
5
|
+
import { APIPromise } from '../core/api-promise';
|
|
6
|
+
import { RequestOptions } from '../internal/request-options';
|
|
7
|
+
|
|
8
|
+
export class ModelRouter extends APIResource {
|
|
9
|
+
/**
|
|
10
|
+
* Select the optimal LLM to handle your query based on Not Diamond's routing
|
|
11
|
+
* algorithm.
|
|
12
|
+
*
|
|
13
|
+
* This endpoint analyzes your messages and returns the best-suited model from your
|
|
14
|
+
* specified providers. The router considers factors like query complexity, model
|
|
15
|
+
* capabilities, cost, and latency based on your preferences.
|
|
16
|
+
*
|
|
17
|
+
* **Key Features:**
|
|
18
|
+
*
|
|
19
|
+
* - Intelligent routing across multiple LLM providers
|
|
20
|
+
* - Support for custom routers trained on your evaluation data
|
|
21
|
+
* - Optional cost/latency optimization
|
|
22
|
+
* - Function calling support for compatible models
|
|
23
|
+
* - Privacy-preserving content hashing
|
|
24
|
+
*
|
|
25
|
+
* **Usage:**
|
|
26
|
+
*
|
|
27
|
+
* 1. Pass your messages in OpenAI format (array of objects with 'role' and
|
|
28
|
+
* 'content')
|
|
29
|
+
* 2. Specify which LLM providers you want to route between
|
|
30
|
+
* 3. Optionally provide a preference_id for personalized routing
|
|
31
|
+
* 4. Receive a recommended model and session_id
|
|
32
|
+
* 5. Use the session_id to submit feedback and improve routing
|
|
33
|
+
*
|
|
34
|
+
* **Related Endpoints:**
|
|
35
|
+
*
|
|
36
|
+
* - `POST /v2/preferences/userPreferenceCreate` - Create a preference ID for
|
|
37
|
+
* personalized routing
|
|
38
|
+
* - `POST /v2/report/metrics/feedback` - Submit feedback on routing decisions
|
|
39
|
+
* - `POST /v2/pzn/trainCustomRouter` - Train a custom router on your evaluation
|
|
40
|
+
* data
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* const response = await client.modelRouter.selectModel({
|
|
45
|
+
* llm_providers: [
|
|
46
|
+
* { provider: 'openai', model: 'gpt-4o' },
|
|
47
|
+
* {
|
|
48
|
+
* provider: 'anthropic',
|
|
49
|
+
* model: 'claude-sonnet-4-5-20250929',
|
|
50
|
+
* },
|
|
51
|
+
* { provider: 'google', model: 'gemini-2.5-flash' },
|
|
52
|
+
* ],
|
|
53
|
+
* messages: [
|
|
54
|
+
* {
|
|
55
|
+
* role: 'system',
|
|
56
|
+
* content: 'You are a helpful assistant.',
|
|
57
|
+
* },
|
|
58
|
+
* {
|
|
59
|
+
* role: 'user',
|
|
60
|
+
* content: 'Explain quantum computing in simple terms',
|
|
61
|
+
* },
|
|
62
|
+
* ],
|
|
63
|
+
* });
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
selectModel(
|
|
67
|
+
params: ModelRouterSelectModelParams,
|
|
68
|
+
options?: RequestOptions,
|
|
69
|
+
): APIPromise<ModelRouterSelectModelResponse> {
|
|
70
|
+
const { type, ...body } = params;
|
|
71
|
+
return this._client.post('/v2/modelRouter/modelSelect', { query: { type }, body, ...options });
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Response from model selection endpoint.
|
|
77
|
+
*/
|
|
78
|
+
export interface ModelRouterSelectModelResponse {
|
|
79
|
+
/**
|
|
80
|
+
* List containing the selected provider
|
|
81
|
+
*/
|
|
82
|
+
providers: Array<ModelRouterSelectModelResponse.Provider>;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Unique session ID for this routing decision
|
|
86
|
+
*/
|
|
87
|
+
session_id: string;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export namespace ModelRouterSelectModelResponse {
|
|
91
|
+
/**
|
|
92
|
+
* Selected LLM provider information from model selection endpoints.
|
|
93
|
+
*
|
|
94
|
+
* Part of ModelSelectResponse. Contains the provider and model that Not Diamond's
|
|
95
|
+
* routing algorithm selected as optimal for your query. Use these values to make
|
|
96
|
+
* your LLM API call to the recommended model.
|
|
97
|
+
*/
|
|
98
|
+
export interface Provider {
|
|
99
|
+
/**
|
|
100
|
+
* Model identifier for the selected model (e.g., 'gpt-4o',
|
|
101
|
+
* 'claude-3-opus-20240229')
|
|
102
|
+
*/
|
|
103
|
+
model: string;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Provider name for the selected model (e.g., 'openai', 'anthropic', 'google')
|
|
107
|
+
*/
|
|
108
|
+
provider: string;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export interface ModelRouterSelectModelParams {
|
|
113
|
+
/**
|
|
114
|
+
* Body param: List of LLM providers to route between. Specify at least one
|
|
115
|
+
* provider in format {provider, model}
|
|
116
|
+
*/
|
|
117
|
+
llm_providers: Array<PromptAdaptationAPI.RequestProvider | ModelRouterSelectModelParams.OpenRouterProvider>;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Body param: Array of message objects in OpenAI format (with 'role' and 'content'
|
|
121
|
+
* keys)
|
|
122
|
+
*/
|
|
123
|
+
messages: Array<{ [key: string]: string | Array<unknown> }> | string;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Query param: Optional format type. Use 'openrouter' to accept and return
|
|
127
|
+
* OpenRouter-format model identifiers
|
|
128
|
+
*/
|
|
129
|
+
type?: string | null;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Body param: Whether to hash message content for privacy
|
|
133
|
+
*/
|
|
134
|
+
hash_content?: boolean;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Body param: Maximum number of models to consider for routing. If not specified,
|
|
138
|
+
* considers all provided models
|
|
139
|
+
*/
|
|
140
|
+
max_model_depth?: number | null;
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Body param: Optimization metric for model selection
|
|
144
|
+
*/
|
|
145
|
+
metric?: string;
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Body param: Preference ID for personalized routing. Create one via POST
|
|
149
|
+
* /v2/preferences/userPreferenceCreate
|
|
150
|
+
*/
|
|
151
|
+
preference_id?: string | null;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Body param: Previous session ID to link related requests
|
|
155
|
+
*/
|
|
156
|
+
previous_session?: string | null;
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Body param: OpenAI-format function calling tools
|
|
160
|
+
*/
|
|
161
|
+
tools?: Array<{ [key: string]: unknown }> | null;
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Body param: Optimization tradeoff strategy. Use 'cost' to prioritize cost
|
|
165
|
+
* savings or 'latency' to prioritize speed
|
|
166
|
+
*/
|
|
167
|
+
tradeoff?: string | null;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export namespace ModelRouterSelectModelParams {
|
|
171
|
+
/**
|
|
172
|
+
* Model for specifying an LLM provider using OpenRouter format.
|
|
173
|
+
*
|
|
174
|
+
* Used in model routing requests when you want to specify providers using the
|
|
175
|
+
* OpenRouter naming convention (combined 'provider/model' format). This is an
|
|
176
|
+
* alternative to the standard RequestProvider which uses separate provider and
|
|
177
|
+
* model fields.
|
|
178
|
+
*
|
|
179
|
+
* **When to use:**
|
|
180
|
+
*
|
|
181
|
+
* - When working with OpenRouter-compatible systems
|
|
182
|
+
* - When you prefer the unified 'provider/model' format
|
|
183
|
+
* - For models accessed via OpenRouter proxy
|
|
184
|
+
*/
|
|
185
|
+
export interface OpenRouterProvider {
|
|
186
|
+
/**
|
|
187
|
+
* OpenRouter model identifier in 'provider/model' format (e.g., 'openai/gpt-4o',
|
|
188
|
+
* 'anthropic/claude-sonnet-4-5-20250929')
|
|
189
|
+
*/
|
|
190
|
+
model: string;
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Maximum context length for the model (required for custom models)
|
|
194
|
+
*/
|
|
195
|
+
context_length?: number | null;
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Input token price per million tokens in USD (required for custom models)
|
|
199
|
+
*/
|
|
200
|
+
input_price?: number | null;
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Whether this is a custom model not in Not Diamond's supported model list
|
|
204
|
+
*/
|
|
205
|
+
is_custom?: boolean;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Average latency in seconds (required for custom models)
|
|
209
|
+
*/
|
|
210
|
+
latency?: number | null;
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Output token price per million tokens in USD (required for custom models)
|
|
214
|
+
*/
|
|
215
|
+
output_price?: number | null;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
export declare namespace ModelRouter {
|
|
220
|
+
export {
|
|
221
|
+
type ModelRouterSelectModelResponse as ModelRouterSelectModelResponse,
|
|
222
|
+
type ModelRouterSelectModelParams as ModelRouterSelectModelParams,
|
|
223
|
+
};
|
|
224
|
+
}
|
package/src/resources/models.ts
CHANGED
|
@@ -36,6 +36,11 @@ export class Models extends APIResource {
|
|
|
36
36
|
* **Caching:**
|
|
37
37
|
*
|
|
38
38
|
* - Response is cacheable for 1 hour (model list rarely changes)
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* const models = await client.models.list();
|
|
43
|
+
* ```
|
|
39
44
|
*/
|
|
40
45
|
list(
|
|
41
46
|
query: ModelListParams | null | undefined = {},
|
|
@@ -46,50 +51,64 @@ export class Models extends APIResource {
|
|
|
46
51
|
}
|
|
47
52
|
|
|
48
53
|
/**
|
|
49
|
-
* Response for models
|
|
54
|
+
* Response model for a single LLM model from GET /v2/models endpoint.
|
|
55
|
+
*
|
|
56
|
+
* Contains metadata about a supported text generation model including pricing,
|
|
57
|
+
* context limits, and availability information.
|
|
50
58
|
*/
|
|
51
|
-
export interface
|
|
52
|
-
deprecated_models: Array<ModelListResponse.DeprecatedModel>;
|
|
53
|
-
|
|
54
|
-
models: Array<ModelListResponse.Model>;
|
|
55
|
-
|
|
56
|
-
total: number;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export namespace ModelListResponse {
|
|
59
|
+
export interface Model {
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
61
|
+
* Maximum context window size in tokens
|
|
62
62
|
*/
|
|
63
|
-
|
|
64
|
-
context_length: number;
|
|
65
|
-
|
|
66
|
-
input_price: number;
|
|
63
|
+
context_length: number;
|
|
67
64
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
provider: string;
|
|
65
|
+
/**
|
|
66
|
+
* Price per million input tokens in USD
|
|
67
|
+
*/
|
|
68
|
+
input_price: number;
|
|
73
69
|
|
|
74
|
-
|
|
75
|
-
|
|
70
|
+
/**
|
|
71
|
+
* Model identifier (e.g., 'gpt-4', 'claude-3-opus-20240229')
|
|
72
|
+
*/
|
|
73
|
+
model: string;
|
|
76
74
|
|
|
77
75
|
/**
|
|
78
|
-
*
|
|
76
|
+
* Price per million output tokens in USD
|
|
79
77
|
*/
|
|
80
|
-
|
|
81
|
-
context_length: number;
|
|
78
|
+
output_price: number;
|
|
82
79
|
|
|
83
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Provider name (e.g., 'openai', 'anthropic', 'google')
|
|
82
|
+
*/
|
|
83
|
+
provider: string;
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
/**
|
|
86
|
+
* OpenRouter model identifier if available, null if not supported via OpenRouter
|
|
87
|
+
*/
|
|
88
|
+
openrouter_model?: string | null;
|
|
89
|
+
}
|
|
86
90
|
|
|
87
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Response model for GET /v2/models endpoint.
|
|
93
|
+
*
|
|
94
|
+
* Returns a list of all supported text generation models with their metadata,
|
|
95
|
+
* separated into active and deprecated models.
|
|
96
|
+
*/
|
|
97
|
+
export interface ModelListResponse {
|
|
98
|
+
/**
|
|
99
|
+
* List of deprecated models that are no longer recommended but may still work
|
|
100
|
+
*/
|
|
101
|
+
deprecated_models: Array<Model>;
|
|
88
102
|
|
|
89
|
-
|
|
103
|
+
/**
|
|
104
|
+
* List of active/supported text generation models with their metadata
|
|
105
|
+
*/
|
|
106
|
+
models: Array<Model>;
|
|
90
107
|
|
|
91
|
-
|
|
92
|
-
|
|
108
|
+
/**
|
|
109
|
+
* Total count of active models in the response
|
|
110
|
+
*/
|
|
111
|
+
total: number;
|
|
93
112
|
}
|
|
94
113
|
|
|
95
114
|
export interface ModelListParams {
|
|
@@ -106,5 +125,9 @@ export interface ModelListParams {
|
|
|
106
125
|
}
|
|
107
126
|
|
|
108
127
|
export declare namespace Models {
|
|
109
|
-
export {
|
|
128
|
+
export {
|
|
129
|
+
type Model as Model,
|
|
130
|
+
type ModelListResponse as ModelListResponse,
|
|
131
|
+
type ModelListParams as ModelListParams,
|
|
132
|
+
};
|
|
110
133
|
}
|
|
@@ -2,34 +2,10 @@
|
|
|
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
|
|
|
9
8
|
export class Preferences extends APIResource {
|
|
10
|
-
/**
|
|
11
|
-
* Get User Preference By Id
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```ts
|
|
15
|
-
* const preference = await client.preferences.retrieve(
|
|
16
|
-
* 'preference_id',
|
|
17
|
-
* { user_id: 'user_id', 'x-token': 'x-token' },
|
|
18
|
-
* );
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
retrieve(
|
|
22
|
-
preferenceID: string,
|
|
23
|
-
params: PreferenceRetrieveParams,
|
|
24
|
-
options?: RequestOptions,
|
|
25
|
-
): APIPromise<unknown> {
|
|
26
|
-
const { user_id, 'x-token': xToken } = params;
|
|
27
|
-
return this._client.get(path`/v2/preferences/${user_id}/${preferenceID}`, {
|
|
28
|
-
...options,
|
|
29
|
-
headers: buildHeaders([{ 'x-token': xToken }, options?.headers]),
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
|
|
33
9
|
/**
|
|
34
10
|
* Create a new preference ID for personalized LLM routing.
|
|
35
11
|
*
|
|
@@ -58,88 +34,77 @@ export class Preferences extends APIResource {
|
|
|
58
34
|
*
|
|
59
35
|
* @example
|
|
60
36
|
* ```ts
|
|
61
|
-
* const
|
|
62
|
-
* await client.preferences.createUserPreference();
|
|
37
|
+
* const preference = await client.preferences.create();
|
|
63
38
|
* ```
|
|
64
39
|
*/
|
|
65
|
-
|
|
66
|
-
body: PreferenceCreateUserPreferenceParams,
|
|
67
|
-
options?: RequestOptions,
|
|
68
|
-
): APIPromise<PreferenceCreateUserPreferenceResponse> {
|
|
40
|
+
create(body: PreferenceCreateParams, options?: RequestOptions): APIPromise<PreferenceCreateResponse> {
|
|
69
41
|
return this._client.post('/v2/preferences/userPreferenceCreate', { body, ...options });
|
|
70
42
|
}
|
|
71
43
|
|
|
72
44
|
/**
|
|
73
|
-
*
|
|
45
|
+
* Update User Preference
|
|
74
46
|
*
|
|
75
47
|
* @example
|
|
76
48
|
* ```ts
|
|
77
|
-
* const
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
* );
|
|
49
|
+
* const preference = await client.preferences.update({
|
|
50
|
+
* preference_id: 'preference_id',
|
|
51
|
+
* });
|
|
81
52
|
* ```
|
|
82
53
|
*/
|
|
83
|
-
|
|
84
|
-
return this._client.
|
|
54
|
+
update(body: PreferenceUpdateParams, options?: RequestOptions): APIPromise<unknown> {
|
|
55
|
+
return this._client.put('/v2/preferences/userPreferenceUpdate', { body, ...options });
|
|
85
56
|
}
|
|
86
57
|
|
|
87
58
|
/**
|
|
88
|
-
*
|
|
59
|
+
* Delete User Preference
|
|
89
60
|
*
|
|
90
61
|
* @example
|
|
91
62
|
* ```ts
|
|
92
|
-
* const
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
* });
|
|
63
|
+
* const preference = await client.preferences.delete(
|
|
64
|
+
* 'preference_id',
|
|
65
|
+
* );
|
|
96
66
|
* ```
|
|
97
67
|
*/
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
options?: RequestOptions,
|
|
101
|
-
): APIPromise<unknown> {
|
|
102
|
-
return this._client.put('/v2/preferences/userPreferenceUpdate', { body, ...options });
|
|
68
|
+
delete(preferenceID: string, options?: RequestOptions): APIPromise<unknown> {
|
|
69
|
+
return this._client.delete(path`/v2/preferences/userPreferenceDelete/${preferenceID}`, options);
|
|
103
70
|
}
|
|
104
71
|
}
|
|
105
72
|
|
|
106
|
-
export type PreferenceRetrieveResponse = unknown;
|
|
107
|
-
|
|
108
73
|
/**
|
|
109
|
-
* Response
|
|
74
|
+
* Response model for POST /v2/preferences/userPreferenceCreate endpoint.
|
|
75
|
+
*
|
|
76
|
+
* Returns the newly created preference ID which can be used to enable personalized
|
|
77
|
+
* LLM routing. Store this ID and include it in subsequent model_select() calls to
|
|
78
|
+
* activate personalized routing based on your feedback and usage patterns.
|
|
79
|
+
*
|
|
80
|
+
* **Next steps after creation:**
|
|
81
|
+
*
|
|
82
|
+
* 1. Use the preference_id in POST /v2/modelRouter/modelSelect requests
|
|
83
|
+
* 2. Submit feedback on routing decisions to improve accuracy
|
|
84
|
+
* 3. Optionally train a custom router using your evaluation data
|
|
110
85
|
*/
|
|
111
|
-
export interface
|
|
86
|
+
export interface PreferenceCreateResponse {
|
|
112
87
|
/**
|
|
113
|
-
*
|
|
114
|
-
* personalized routing
|
|
88
|
+
* Unique identifier for the newly created preference. Use this in the
|
|
89
|
+
* 'preference_id' parameter of model_select() calls to enable personalized routing
|
|
115
90
|
*/
|
|
116
91
|
preference_id: string;
|
|
117
92
|
}
|
|
118
93
|
|
|
119
|
-
export type
|
|
94
|
+
export type PreferenceUpdateResponse = unknown;
|
|
120
95
|
|
|
121
|
-
export type
|
|
122
|
-
|
|
123
|
-
export interface PreferenceRetrieveParams {
|
|
124
|
-
/**
|
|
125
|
-
* Path param:
|
|
126
|
-
*/
|
|
127
|
-
user_id: string;
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Header param:
|
|
131
|
-
*/
|
|
132
|
-
'x-token': string;
|
|
133
|
-
}
|
|
96
|
+
export type PreferenceDeleteResponse = unknown;
|
|
134
97
|
|
|
135
|
-
export interface
|
|
98
|
+
export interface PreferenceCreateParams {
|
|
136
99
|
/**
|
|
137
|
-
* Optional name for the preference
|
|
100
|
+
* Optional name for the preference. If not provided, an auto-generated timestamp
|
|
101
|
+
* will be used. Use descriptive names like 'Production API' or 'Customer Support
|
|
102
|
+
* Bot' for easy identification
|
|
138
103
|
*/
|
|
139
104
|
name?: string | null;
|
|
140
105
|
}
|
|
141
106
|
|
|
142
|
-
export interface
|
|
107
|
+
export interface PreferenceUpdateParams {
|
|
143
108
|
preference_id: string;
|
|
144
109
|
|
|
145
110
|
name?: string | null;
|
|
@@ -147,12 +112,10 @@ export interface PreferenceUpdateUserPreferenceParams {
|
|
|
147
112
|
|
|
148
113
|
export declare namespace Preferences {
|
|
149
114
|
export {
|
|
150
|
-
type
|
|
151
|
-
type
|
|
152
|
-
type
|
|
153
|
-
type
|
|
154
|
-
type
|
|
155
|
-
type PreferenceCreateUserPreferenceParams as PreferenceCreateUserPreferenceParams,
|
|
156
|
-
type PreferenceUpdateUserPreferenceParams as PreferenceUpdateUserPreferenceParams,
|
|
115
|
+
type PreferenceCreateResponse as PreferenceCreateResponse,
|
|
116
|
+
type PreferenceUpdateResponse as PreferenceUpdateResponse,
|
|
117
|
+
type PreferenceDeleteResponse as PreferenceDeleteResponse,
|
|
118
|
+
type PreferenceCreateParams as PreferenceCreateParams,
|
|
119
|
+
type PreferenceUpdateParams as PreferenceUpdateParams,
|
|
157
120
|
};
|
|
158
121
|
}
|