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.
Files changed (137) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/README.md +299 -97
  3. package/client.d.mts +19 -33
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +19 -33
  6. package/client.d.ts.map +1 -1
  7. package/client.js +19 -35
  8. package/client.js.map +1 -1
  9. package/client.mjs +19 -35
  10. package/client.mjs.map +1 -1
  11. package/internal/tslib.js +17 -17
  12. package/internal/utils/env.d.mts.map +1 -1
  13. package/internal/utils/env.d.ts.map +1 -1
  14. package/internal/utils/env.js +4 -2
  15. package/internal/utils/env.js.map +1 -1
  16. package/internal/utils/env.mjs +4 -2
  17. package/internal/utils/env.mjs.map +1 -1
  18. package/package.json +10 -11
  19. package/resources/custom-router.d.mts +145 -0
  20. package/resources/custom-router.d.mts.map +1 -0
  21. package/resources/custom-router.d.ts +145 -0
  22. package/resources/custom-router.d.ts.map +1 -0
  23. package/resources/custom-router.js +83 -0
  24. package/resources/custom-router.js.map +1 -0
  25. package/resources/custom-router.mjs +79 -0
  26. package/resources/custom-router.mjs.map +1 -0
  27. package/resources/index.d.mts +6 -6
  28. package/resources/index.d.mts.map +1 -1
  29. package/resources/index.d.ts +6 -6
  30. package/resources/index.d.ts.map +1 -1
  31. package/resources/index.js +6 -6
  32. package/resources/index.js.map +1 -1
  33. package/resources/index.mjs +3 -3
  34. package/resources/index.mjs.map +1 -1
  35. package/resources/model-router.d.mts +196 -0
  36. package/resources/model-router.d.mts.map +1 -0
  37. package/resources/model-router.d.ts +196 -0
  38. package/resources/model-router.d.ts.map +1 -0
  39. package/resources/model-router.js +70 -0
  40. package/resources/model-router.js.map +1 -0
  41. package/resources/model-router.mjs +66 -0
  42. package/resources/model-router.mjs.map +1 -0
  43. package/resources/models.d.mts +50 -25
  44. package/resources/models.d.mts.map +1 -1
  45. package/resources/models.d.ts +50 -25
  46. package/resources/models.d.ts.map +1 -1
  47. package/resources/models.js +5 -0
  48. package/resources/models.js.map +1 -1
  49. package/resources/models.mjs +5 -0
  50. package/resources/models.mjs.map +1 -1
  51. package/resources/preferences.d.mts +34 -48
  52. package/resources/preferences.d.mts.map +1 -1
  53. package/resources/preferences.d.ts +34 -48
  54. package/resources/preferences.d.ts.map +1 -1
  55. package/resources/preferences.js +14 -36
  56. package/resources/preferences.js.map +1 -1
  57. package/resources/preferences.mjs +14 -36
  58. package/resources/preferences.mjs.map +1 -1
  59. package/resources/prompt-adaptation.d.mts +339 -234
  60. package/resources/prompt-adaptation.d.mts.map +1 -1
  61. package/resources/prompt-adaptation.d.ts +339 -234
  62. package/resources/prompt-adaptation.d.ts.map +1 -1
  63. package/resources/prompt-adaptation.js +30 -53
  64. package/resources/prompt-adaptation.js.map +1 -1
  65. package/resources/prompt-adaptation.mjs +30 -53
  66. package/resources/prompt-adaptation.mjs.map +1 -1
  67. package/resources/report/index.d.mts +3 -0
  68. package/resources/report/index.d.mts.map +1 -0
  69. package/resources/report/index.d.ts +3 -0
  70. package/resources/report/index.d.ts.map +1 -0
  71. package/resources/report/index.js +9 -0
  72. package/resources/report/index.js.map +1 -0
  73. package/resources/report/index.mjs +4 -0
  74. package/resources/report/index.mjs.map +1 -0
  75. package/resources/report/metrics.d.mts +87 -0
  76. package/resources/report/metrics.d.mts.map +1 -0
  77. package/resources/report/metrics.d.ts +87 -0
  78. package/resources/report/metrics.d.ts.map +1 -0
  79. package/resources/report/metrics.js +57 -0
  80. package/resources/report/metrics.js.map +1 -0
  81. package/resources/report/metrics.mjs +53 -0
  82. package/resources/report/metrics.mjs.map +1 -0
  83. package/resources/report/report.d.mts +10 -0
  84. package/resources/report/report.d.mts.map +1 -0
  85. package/resources/report/report.d.ts +10 -0
  86. package/resources/report/report.d.ts.map +1 -0
  87. package/resources/report/report.js +17 -0
  88. package/resources/report/report.js.map +1 -0
  89. package/resources/report/report.mjs +12 -0
  90. package/resources/report/report.mjs.map +1 -0
  91. package/resources/report.d.mts +1 -244
  92. package/resources/report.d.mts.map +1 -1
  93. package/resources/report.d.ts +1 -244
  94. package/resources/report.d.ts.map +1 -1
  95. package/resources/report.js +2 -82
  96. package/resources/report.js.map +1 -1
  97. package/resources/report.mjs +1 -80
  98. package/resources/report.mjs.map +1 -1
  99. package/src/client.ts +65 -116
  100. package/src/internal/utils/env.ts +4 -2
  101. package/src/resources/custom-router.ts +168 -0
  102. package/src/resources/index.ts +23 -34
  103. package/src/resources/model-router.ts +224 -0
  104. package/src/resources/models.ts +55 -32
  105. package/src/resources/preferences.ts +40 -77
  106. package/src/resources/prompt-adaptation.ts +361 -291
  107. package/src/resources/report/index.ts +4 -0
  108. package/src/resources/report/metrics.ts +99 -0
  109. package/src/resources/report/report.ts +19 -0
  110. package/src/resources/report.ts +1 -298
  111. package/src/version.ts +1 -1
  112. package/version.d.mts +1 -1
  113. package/version.d.mts.map +1 -1
  114. package/version.d.ts +1 -1
  115. package/version.d.ts.map +1 -1
  116. package/version.js +1 -1
  117. package/version.js.map +1 -1
  118. package/version.mjs +1 -1
  119. package/version.mjs.map +1 -1
  120. package/resources/admin.d.mts +0 -4
  121. package/resources/admin.d.mts.map +0 -1
  122. package/resources/admin.d.ts +0 -4
  123. package/resources/admin.d.ts.map +0 -1
  124. package/resources/admin.js +0 -9
  125. package/resources/admin.js.map +0 -1
  126. package/resources/admin.mjs +0 -5
  127. package/resources/admin.mjs.map +0 -1
  128. package/resources/routing.d.mts +0 -391
  129. package/resources/routing.d.mts.map +0 -1
  130. package/resources/routing.d.ts +0 -391
  131. package/resources/routing.d.ts.map +0 -1
  132. package/resources/routing.js +0 -163
  133. package/resources/routing.js.map +0 -1
  134. package/resources/routing.mjs +0 -159
  135. package/resources/routing.mjs.map +0 -1
  136. package/src/resources/admin.ts +0 -5
  137. package/src/resources/routing.ts +0 -476
@@ -1,44 +1,33 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- export { Admin } from './admin';
4
- export { Models, type ModelListResponse, type ModelListParams } from './models';
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 PreferenceRetrieveResponse,
8
- type PreferenceCreateUserPreferenceResponse,
9
- type PreferenceDeleteUserPreferenceResponse,
10
- type PreferenceUpdateUserPreferenceResponse,
11
- type PreferenceRetrieveParams,
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 AdaptationRunResults,
24
+ type GoldenRecord,
18
25
  type JobStatus,
19
- type PromptAdaptationAdaptResponse,
20
- type PromptAdaptationGetAdaptRunsResponse,
26
+ type RequestProvider,
27
+ type PromptAdaptationCreateResponse,
28
+ type PromptAdaptationGetAdaptResultsResponse,
21
29
  type PromptAdaptationGetAdaptStatusResponse,
22
- type PromptAdaptationRetrieveCostsResponse,
23
- type PromptAdaptationAdaptParams,
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
+ }
@@ -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 list endpoint.
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 ModelListResponse {
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
- * Response model for a single LLM provider.
61
+ * Maximum context window size in tokens
62
62
  */
63
- export interface DeprecatedModel {
64
- context_length: number;
65
-
66
- input_price: number;
63
+ context_length: number;
67
64
 
68
- model: string;
69
-
70
- output_price: number;
71
-
72
- provider: string;
65
+ /**
66
+ * Price per million input tokens in USD
67
+ */
68
+ input_price: number;
73
69
 
74
- openrouter_model?: string | null;
75
- }
70
+ /**
71
+ * Model identifier (e.g., 'gpt-4', 'claude-3-opus-20240229')
72
+ */
73
+ model: string;
76
74
 
77
75
  /**
78
- * Response model for a single LLM provider.
76
+ * Price per million output tokens in USD
79
77
  */
80
- export interface Model {
81
- context_length: number;
78
+ output_price: number;
82
79
 
83
- input_price: number;
80
+ /**
81
+ * Provider name (e.g., 'openai', 'anthropic', 'google')
82
+ */
83
+ provider: string;
84
84
 
85
- model: string;
85
+ /**
86
+ * OpenRouter model identifier if available, null if not supported via OpenRouter
87
+ */
88
+ openrouter_model?: string | null;
89
+ }
86
90
 
87
- output_price: number;
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
- provider: string;
103
+ /**
104
+ * List of active/supported text generation models with their metadata
105
+ */
106
+ models: Array<Model>;
90
107
 
91
- openrouter_model?: string | null;
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 { type ModelListResponse as ModelListResponse, type ModelListParams as ModelListParams };
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 response =
62
- * await client.preferences.createUserPreference();
37
+ * const preference = await client.preferences.create();
63
38
  * ```
64
39
  */
65
- createUserPreference(
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
- * Delete User Preference
45
+ * Update User Preference
74
46
  *
75
47
  * @example
76
48
  * ```ts
77
- * const response =
78
- * await client.preferences.deleteUserPreference(
79
- * 'preference_id',
80
- * );
49
+ * const preference = await client.preferences.update({
50
+ * preference_id: 'preference_id',
51
+ * });
81
52
  * ```
82
53
  */
83
- deleteUserPreference(preferenceID: string, options?: RequestOptions): APIPromise<unknown> {
84
- return this._client.delete(path`/v2/preferences/userPreferenceDelete/${preferenceID}`, options);
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
- * Update User Preference
59
+ * Delete User Preference
89
60
  *
90
61
  * @example
91
62
  * ```ts
92
- * const response =
93
- * await client.preferences.updateUserPreference({
94
- * preference_id: 'preference_id',
95
- * });
63
+ * const preference = await client.preferences.delete(
64
+ * 'preference_id',
65
+ * );
96
66
  * ```
97
67
  */
98
- updateUserPreference(
99
- body: PreferenceUpdateUserPreferenceParams,
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 from preference creation endpoint.
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 PreferenceCreateUserPreferenceResponse {
86
+ export interface PreferenceCreateResponse {
112
87
  /**
113
- * The newly created preference ID. Use this in model_select() calls for
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 PreferenceDeleteUserPreferenceResponse = unknown;
94
+ export type PreferenceUpdateResponse = unknown;
120
95
 
121
- export type PreferenceUpdateUserPreferenceResponse = unknown;
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 PreferenceCreateUserPreferenceParams {
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 PreferenceUpdateUserPreferenceParams {
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 PreferenceRetrieveResponse as PreferenceRetrieveResponse,
151
- type PreferenceCreateUserPreferenceResponse as PreferenceCreateUserPreferenceResponse,
152
- type PreferenceDeleteUserPreferenceResponse as PreferenceDeleteUserPreferenceResponse,
153
- type PreferenceUpdateUserPreferenceResponse as PreferenceUpdateUserPreferenceResponse,
154
- type PreferenceRetrieveParams as PreferenceRetrieveParams,
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
  }