notdiamond 2.0.0-rc1 → 2.0.0-rc4

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 (167) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +19 -21
  3. package/client.d.mts +21 -35
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +21 -35
  6. package/client.d.ts.map +1 -1
  7. package/client.js +23 -39
  8. package/client.js.map +1 -1
  9. package/client.mjs +23 -39
  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/index.d.mts +6 -6
  20. package/resources/index.d.mts.map +1 -1
  21. package/resources/index.d.ts +6 -6
  22. package/resources/index.d.ts.map +1 -1
  23. package/resources/index.js +8 -8
  24. package/resources/index.js.map +1 -1
  25. package/resources/index.mjs +4 -4
  26. package/resources/index.mjs.map +1 -1
  27. package/resources/model-router.d.mts +311 -0
  28. package/resources/model-router.d.mts.map +1 -0
  29. package/resources/model-router.d.ts +311 -0
  30. package/resources/model-router.d.ts.map +1 -0
  31. package/resources/model-router.js +97 -0
  32. package/resources/model-router.js.map +1 -0
  33. package/resources/model-router.mjs +93 -0
  34. package/resources/model-router.mjs.map +1 -0
  35. package/resources/models.d.mts +50 -25
  36. package/resources/models.d.mts.map +1 -1
  37. package/resources/models.d.ts +50 -25
  38. package/resources/models.d.ts.map +1 -1
  39. package/resources/models.js +5 -0
  40. package/resources/models.js.map +1 -1
  41. package/resources/models.mjs +5 -0
  42. package/resources/models.mjs.map +1 -1
  43. package/resources/preferences.d.mts +49 -47
  44. package/resources/preferences.d.mts.map +1 -1
  45. package/resources/preferences.d.ts +49 -47
  46. package/resources/preferences.d.ts.map +1 -1
  47. package/resources/preferences.js +30 -33
  48. package/resources/preferences.js.map +1 -1
  49. package/resources/preferences.mjs +30 -33
  50. package/resources/preferences.mjs.map +1 -1
  51. package/resources/prompt/adapt.d.mts +352 -0
  52. package/resources/prompt/adapt.d.mts.map +1 -0
  53. package/resources/prompt/adapt.d.ts +352 -0
  54. package/resources/prompt/adapt.d.ts.map +1 -0
  55. package/resources/prompt/adapt.js +154 -0
  56. package/resources/prompt/adapt.js.map +1 -0
  57. package/resources/prompt/adapt.mjs +150 -0
  58. package/resources/prompt/adapt.mjs.map +1 -0
  59. package/resources/prompt/index.d.mts +3 -0
  60. package/resources/prompt/index.d.mts.map +1 -0
  61. package/resources/prompt/index.d.ts +3 -0
  62. package/resources/prompt/index.d.ts.map +1 -0
  63. package/resources/prompt/index.js +9 -0
  64. package/resources/prompt/index.js.map +1 -0
  65. package/resources/prompt/index.mjs +4 -0
  66. package/resources/prompt/index.mjs.map +1 -0
  67. package/resources/prompt/prompt.d.mts +338 -0
  68. package/resources/prompt/prompt.d.mts.map +1 -0
  69. package/resources/prompt/prompt.d.ts +338 -0
  70. package/resources/prompt/prompt.d.ts.map +1 -0
  71. package/resources/prompt/prompt.js +128 -0
  72. package/resources/prompt/prompt.js.map +1 -0
  73. package/resources/prompt/prompt.mjs +123 -0
  74. package/resources/prompt/prompt.mjs.map +1 -0
  75. package/resources/prompt.d.mts +2 -0
  76. package/resources/prompt.d.mts.map +1 -0
  77. package/resources/prompt.d.ts +2 -0
  78. package/resources/prompt.d.ts.map +1 -0
  79. package/resources/prompt.js +6 -0
  80. package/resources/prompt.js.map +1 -0
  81. package/resources/prompt.mjs +3 -0
  82. package/resources/prompt.mjs.map +1 -0
  83. package/resources/pzn.d.mts +225 -0
  84. package/resources/pzn.d.mts.map +1 -0
  85. package/resources/pzn.d.ts +225 -0
  86. package/resources/pzn.d.ts.map +1 -0
  87. package/resources/{routing.js → pzn.js} +28 -71
  88. package/resources/pzn.js.map +1 -0
  89. package/resources/{routing.mjs → pzn.mjs} +26 -69
  90. package/resources/pzn.mjs.map +1 -0
  91. package/resources/report/index.d.mts +3 -0
  92. package/resources/report/index.d.mts.map +1 -0
  93. package/resources/report/index.d.ts +3 -0
  94. package/resources/report/index.d.ts.map +1 -0
  95. package/resources/report/index.js +9 -0
  96. package/resources/report/index.js.map +1 -0
  97. package/resources/report/index.mjs +4 -0
  98. package/resources/report/index.mjs.map +1 -0
  99. package/resources/report/metrics.d.mts +87 -0
  100. package/resources/report/metrics.d.mts.map +1 -0
  101. package/resources/report/metrics.d.ts +87 -0
  102. package/resources/report/metrics.d.ts.map +1 -0
  103. package/resources/report/metrics.js +57 -0
  104. package/resources/report/metrics.js.map +1 -0
  105. package/resources/report/metrics.mjs +53 -0
  106. package/resources/report/metrics.mjs.map +1 -0
  107. package/resources/report/report.d.mts +10 -0
  108. package/resources/report/report.d.mts.map +1 -0
  109. package/resources/report/report.d.ts +10 -0
  110. package/resources/report/report.d.ts.map +1 -0
  111. package/resources/report/report.js +17 -0
  112. package/resources/report/report.js.map +1 -0
  113. package/resources/report/report.mjs +12 -0
  114. package/resources/report/report.mjs.map +1 -0
  115. package/resources/report.d.mts +1 -244
  116. package/resources/report.d.mts.map +1 -1
  117. package/resources/report.d.ts +1 -244
  118. package/resources/report.d.ts.map +1 -1
  119. package/resources/report.js +2 -82
  120. package/resources/report.js.map +1 -1
  121. package/resources/report.mjs +1 -80
  122. package/resources/report.mjs.map +1 -1
  123. package/src/client.ts +71 -120
  124. package/src/internal/utils/env.ts +4 -2
  125. package/src/resources/index.ts +24 -34
  126. package/src/resources/model-router.ts +356 -0
  127. package/src/resources/models.ts +55 -32
  128. package/src/resources/preferences.ts +61 -70
  129. package/src/resources/prompt/adapt.ts +402 -0
  130. package/src/resources/prompt/index.ts +16 -0
  131. package/src/resources/prompt/prompt.ts +398 -0
  132. package/src/resources/prompt.ts +3 -0
  133. package/src/resources/pzn.ts +273 -0
  134. package/src/resources/report/index.ts +4 -0
  135. package/src/resources/report/metrics.ts +99 -0
  136. package/src/resources/report/report.ts +19 -0
  137. package/src/resources/report.ts +1 -298
  138. package/src/version.ts +1 -1
  139. package/version.d.mts +1 -1
  140. package/version.d.ts +1 -1
  141. package/version.js +1 -1
  142. package/version.mjs +1 -1
  143. package/resources/admin.d.mts +0 -4
  144. package/resources/admin.d.mts.map +0 -1
  145. package/resources/admin.d.ts +0 -4
  146. package/resources/admin.d.ts.map +0 -1
  147. package/resources/admin.js +0 -9
  148. package/resources/admin.js.map +0 -1
  149. package/resources/admin.mjs +0 -5
  150. package/resources/admin.mjs.map +0 -1
  151. package/resources/prompt-adaptation.d.mts +0 -574
  152. package/resources/prompt-adaptation.d.mts.map +0 -1
  153. package/resources/prompt-adaptation.d.ts +0 -574
  154. package/resources/prompt-adaptation.d.ts.map +0 -1
  155. package/resources/prompt-adaptation.js +0 -289
  156. package/resources/prompt-adaptation.js.map +0 -1
  157. package/resources/prompt-adaptation.mjs +0 -285
  158. package/resources/prompt-adaptation.mjs.map +0 -1
  159. package/resources/routing.d.mts +0 -391
  160. package/resources/routing.d.mts.map +0 -1
  161. package/resources/routing.d.ts +0 -391
  162. package/resources/routing.d.ts.map +0 -1
  163. package/resources/routing.js.map +0 -1
  164. package/resources/routing.mjs.map +0 -1
  165. package/src/resources/admin.ts +0 -5
  166. package/src/resources/prompt-adaptation.ts +0 -700
  167. package/src/resources/routing.ts +0 -476
@@ -1,391 +0,0 @@
1
- import { APIResource } from "../core/resource.mjs";
2
- import { APIPromise } from "../core/api-promise.mjs";
3
- import { type Uploadable } from "../core/uploads.mjs";
4
- import { RequestOptions } from "../internal/request-options.mjs";
5
- export declare class Routing extends APIResource {
6
- /**
7
- * Survey Response
8
- *
9
- * @example
10
- * ```ts
11
- * const response = await client.routing.createSurveyResponse({
12
- * constraint_priorities: 'constraint_priorities',
13
- * email: 'email',
14
- * llm_providers: 'llm_providers',
15
- * use_case_desc: 'use_case_desc',
16
- * user_id: 'user_id',
17
- * 'x-token': 'x-token',
18
- * });
19
- * ```
20
- */
21
- createSurveyResponse(params: RoutingCreateSurveyResponseParams, options?: RequestOptions): APIPromise<unknown>;
22
- /**
23
- * Select the optimal LLM to handle your query based on Not Diamond's routing
24
- * algorithm.
25
- *
26
- * This endpoint analyzes your messages and returns the best-suited model from your
27
- * specified providers. The router considers factors like query complexity, model
28
- * capabilities, cost, and latency based on your preferences.
29
- *
30
- * **Key Features:**
31
- *
32
- * - Intelligent routing across multiple LLM providers
33
- * - Support for custom routers trained on your evaluation data
34
- * - Optional cost/latency optimization
35
- * - Function calling support for compatible models
36
- * - Privacy-preserving content hashing
37
- *
38
- * **Usage:**
39
- *
40
- * 1. Pass your messages in OpenAI format (array of objects with 'role' and
41
- * 'content')
42
- * 2. Specify which LLM providers you want to route between
43
- * 3. Optionally provide a preference_id for personalized routing
44
- * 4. Receive a recommended model and session_id
45
- * 5. Use the session_id to submit feedback and improve routing
46
- *
47
- * **Related Endpoints:**
48
- *
49
- * - `POST /v2/preferences/userPreferenceCreate` - Create a preference ID for
50
- * personalized routing
51
- * - `POST /v2/report/metrics/feedback` - Submit feedback on routing decisions
52
- * - `POST /v2/pzn/trainCustomRouter` - Train a custom router on your evaluation
53
- * data
54
- *
55
- * @example
56
- * ```ts
57
- * const response = await client.routing.selectModel({
58
- * llm_providers: [
59
- * { provider: 'openai', model: 'gpt-4o' },
60
- * {
61
- * provider: 'anthropic',
62
- * model: 'claude-3-5-sonnet-20241022',
63
- * },
64
- * { provider: 'google', model: 'gemini-1.5-pro' },
65
- * ],
66
- * messages: [
67
- * {
68
- * role: 'system',
69
- * content: 'You are a helpful assistant.',
70
- * },
71
- * {
72
- * role: 'user',
73
- * content: 'Explain quantum computing in simple terms',
74
- * },
75
- * ],
76
- * });
77
- * ```
78
- */
79
- selectModel(params: RoutingSelectModelParams, options?: RequestOptions): APIPromise<RoutingSelectModelResponse>;
80
- /**
81
- * Train a custom router on your evaluation data to optimize routing for your
82
- * specific use case.
83
- *
84
- * This endpoint allows you to train a domain-specific router that learns which
85
- * models perform best for different types of queries in your application. The
86
- * router analyzes your evaluation dataset, clusters similar queries, and learns
87
- * model performance patterns.
88
- *
89
- * **Training Process:**
90
- *
91
- * 1. Upload a CSV file with your evaluation data
92
- * 2. Specify which models to route between
93
- * 3. Define the evaluation metric (score column)
94
- * 4. The system trains asynchronously and returns a preference_id
95
- * 5. Use the preference_id in model_select() calls once training completes
96
- *
97
- * **Dataset Requirements:**
98
- *
99
- * - Format: CSV file
100
- * - Minimum samples: 25 (more is better for accuracy)
101
- * - Required columns:
102
- * - Prompt column (specified in prompt_column parameter)
103
- * - For each model: `{provider}/{model}/score` and `{provider}/{model}/response`
104
- *
105
- * **Example CSV structure:**
106
- *
107
- * ```
108
- * prompt,openai/gpt-4o/score,openai/gpt-4o/response,anthropic/claude-3-5-sonnet-20241022/score,anthropic/claude-3-5-sonnet-20241022/response
109
- * "Explain quantum computing",0.95,"Quantum computing uses...",0.87,"Quantum computers leverage..."
110
- * "Write a Python function",0.82,"def my_function()...",0.91,"Here's a Python function..."
111
- * ```
112
- *
113
- * **Model Selection:**
114
- *
115
- * - Specify standard models: `{"provider": "openai", "model": "gpt-4o"}`
116
- * - Or custom models with pricing:
117
- * `{"provider": "custom", "model": "my-model", "is_custom": true, "input_price": 10.0, "output_price": 30.0, "context_length": 8192, "latency": 1.5}`
118
- *
119
- * **Training Time:**
120
- *
121
- * - Training is asynchronous and typically takes 5-15 minutes
122
- * - Larger datasets or more models take longer
123
- * - You'll receive a preference_id immediately
124
- * - Check training status by attempting to use the preference_id in model_select()
125
- *
126
- * **Best Practices:**
127
- *
128
- * 1. Use diverse, representative examples from your production workload
129
- * 2. Include at least 50-100 samples for best results
130
- * 3. Ensure consistent evaluation metrics across all models
131
- * 4. Use the same models you plan to route between in production
132
- *
133
- * **Related Documentation:** See
134
- * https://docs.notdiamond.ai/docs/adapting-prompts-to-new-models for detailed
135
- * guide.
136
- *
137
- * @example
138
- * ```ts
139
- * const response = await client.routing.trainCustomRouter({
140
- * dataset_file: fs.createReadStream('path/to/file'),
141
- * language: 'english',
142
- * llm_providers:
143
- * '[{"provider": "openai", "model": "gpt-4o"}, {"provider": "anthropic", "model": "claude-3-5-sonnet-20241022"}]',
144
- * maximize: true,
145
- * prompt_column: 'prompt',
146
- * });
147
- * ```
148
- */
149
- trainCustomRouter(body: RoutingTrainCustomRouterParams, options?: RequestOptions): APIPromise<RoutingTrainCustomRouterResponse>;
150
- }
151
- export type RoutingCreateSurveyResponseResponse = unknown;
152
- /**
153
- * Response from model selection endpoint.
154
- */
155
- export interface RoutingSelectModelResponse {
156
- /**
157
- * List containing the selected provider
158
- */
159
- providers: Array<RoutingSelectModelResponse.Provider>;
160
- /**
161
- * Unique session ID for this routing decision
162
- */
163
- session_id: string;
164
- }
165
- export declare namespace RoutingSelectModelResponse {
166
- /**
167
- * Selected LLM provider information.
168
- */
169
- interface Provider {
170
- /**
171
- * Model name
172
- */
173
- model: string;
174
- /**
175
- * Provider name
176
- */
177
- provider: string;
178
- }
179
- }
180
- /**
181
- * Response from custom router training endpoint.
182
- */
183
- export interface RoutingTrainCustomRouterResponse {
184
- /**
185
- * The preference ID for the custom router. Training happens asynchronously - use
186
- * this ID to check status and make routing calls once training is complete
187
- */
188
- preference_id: string;
189
- }
190
- export interface RoutingCreateSurveyResponseParams {
191
- /**
192
- * Body param:
193
- */
194
- constraint_priorities: string;
195
- /**
196
- * Body param:
197
- */
198
- email: string;
199
- /**
200
- * Body param:
201
- */
202
- llm_providers: string;
203
- /**
204
- * Body param:
205
- */
206
- use_case_desc: string;
207
- /**
208
- * Body param:
209
- */
210
- user_id: string;
211
- /**
212
- * Header param:
213
- */
214
- 'x-token': string;
215
- /**
216
- * Body param:
217
- */
218
- additional_preferences?: string | null;
219
- /**
220
- * Body param:
221
- */
222
- dataset_file?: Uploadable | null;
223
- /**
224
- * Body param:
225
- */
226
- name?: string | null;
227
- /**
228
- * Body param:
229
- */
230
- prompt_file?: Uploadable | null;
231
- /**
232
- * Body param:
233
- */
234
- prompts?: string | null;
235
- }
236
- export interface RoutingSelectModelParams {
237
- /**
238
- * Body param: List of LLM providers to route between. Specify at least one
239
- * provider in format {provider, model}
240
- */
241
- llm_providers: Array<RoutingSelectModelParams.RequestProvider | RoutingSelectModelParams.OpenRouterProvider>;
242
- /**
243
- * Body param: Array of message objects in OpenAI format (with 'role' and 'content'
244
- * keys)
245
- */
246
- messages: Array<{
247
- [key: string]: string | Array<unknown>;
248
- }> | string;
249
- /**
250
- * Query param: Optional format type. Use 'openrouter' to accept and return
251
- * OpenRouter-format model identifiers
252
- */
253
- type?: string | null;
254
- /**
255
- * Body param: Whether to hash message content for privacy
256
- */
257
- hash_content?: boolean;
258
- /**
259
- * Body param: Maximum number of models to consider for routing. If not specified,
260
- * considers all provided models
261
- */
262
- max_model_depth?: number | null;
263
- /**
264
- * Body param: Optimization metric for model selection
265
- */
266
- metric?: string;
267
- /**
268
- * Body param: Preference ID for personalized routing. Create one via POST
269
- * /v2/preferences/userPreferenceCreate
270
- */
271
- preference_id?: string | null;
272
- /**
273
- * Body param: Previous session ID to link related requests
274
- */
275
- previous_session?: string | null;
276
- /**
277
- * Body param: OpenAI-format function calling tools
278
- */
279
- tools?: Array<{
280
- [key: string]: unknown;
281
- }> | null;
282
- /**
283
- * Body param: Optimization tradeoff strategy. Use 'cost' to prioritize cost
284
- * savings or 'latency' to prioritize speed
285
- */
286
- tradeoff?: string | null;
287
- }
288
- export declare namespace RoutingSelectModelParams {
289
- /**
290
- * Model for specifying an LLM provider in API requests.
291
- */
292
- interface RequestProvider {
293
- /**
294
- * Model name (e.g., 'gpt-4o', 'claude-3-5-sonnet-20241022')
295
- */
296
- model: string;
297
- /**
298
- * Provider name (e.g., 'openai', 'anthropic', 'google')
299
- */
300
- provider: string;
301
- /**
302
- * Maximum context length for the model (required for custom models)
303
- */
304
- context_length?: number | null;
305
- /**
306
- * Input token price per million tokens in USD (required for custom models)
307
- */
308
- input_price?: number | null;
309
- /**
310
- * Whether this is a custom model not in Not Diamond's supported model list
311
- */
312
- is_custom?: boolean;
313
- /**
314
- * Average latency in seconds (required for custom models)
315
- */
316
- latency?: number | null;
317
- /**
318
- * Output token price per million tokens in USD (required for custom models)
319
- */
320
- output_price?: number | null;
321
- }
322
- /**
323
- * Model for specifying an LLM provider using OpenRouter format.
324
- */
325
- interface OpenRouterProvider {
326
- /**
327
- * OpenRouter model identifier in format 'provider/model'
328
- */
329
- model: string;
330
- /**
331
- * Maximum context length for the model (required for custom models)
332
- */
333
- context_length?: number | null;
334
- /**
335
- * Input token price per million tokens in USD (required for custom models)
336
- */
337
- input_price?: number | null;
338
- /**
339
- * Whether this is a custom model not in Not Diamond's supported model list
340
- */
341
- is_custom?: boolean;
342
- /**
343
- * Average latency in seconds (required for custom models)
344
- */
345
- latency?: number | null;
346
- /**
347
- * Output token price per million tokens in USD (required for custom models)
348
- */
349
- output_price?: number | null;
350
- }
351
- }
352
- export interface RoutingTrainCustomRouterParams {
353
- /**
354
- * CSV file containing evaluation data with prompt column and score/response
355
- * columns for each model
356
- */
357
- dataset_file: Uploadable;
358
- /**
359
- * Language of the evaluation data. Use 'english' for English-only data or
360
- * 'multilingual' for multi-language support
361
- */
362
- language: string;
363
- /**
364
- * JSON string array of LLM providers to train the router on. Format:
365
- * '[{"provider": "openai", "model": "gpt-4o"}, {"provider": "anthropic", "model":
366
- * "claude-3-5-sonnet-20241022"}]'
367
- */
368
- llm_providers: string;
369
- /**
370
- * Whether higher scores are better. Set to true if higher scores indicate better
371
- * performance, false otherwise
372
- */
373
- maximize: boolean;
374
- /**
375
- * Name of the column in the CSV file that contains the prompts
376
- */
377
- prompt_column: string;
378
- /**
379
- * Whether to override an existing custom router for this preference_id
380
- */
381
- override?: boolean | null;
382
- /**
383
- * Optional preference ID to update an existing router. If not provided, a new
384
- * preference will be created
385
- */
386
- preference_id?: string | null;
387
- }
388
- export declare namespace Routing {
389
- export { type RoutingCreateSurveyResponseResponse as RoutingCreateSurveyResponseResponse, type RoutingSelectModelResponse as RoutingSelectModelResponse, type RoutingTrainCustomRouterResponse as RoutingTrainCustomRouterResponse, type RoutingCreateSurveyResponseParams as RoutingCreateSurveyResponseParams, type RoutingSelectModelParams as RoutingSelectModelParams, type RoutingTrainCustomRouterParams as RoutingTrainCustomRouterParams, };
390
- }
391
- //# sourceMappingURL=routing.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routing.d.mts","sourceRoot":"","sources":["../src/resources/routing.ts"],"names":[],"mappings":"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"}