@retab/node 0.0.48 → 0.0.52

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 (263) hide show
  1. package/README.md +8 -215
  2. package/dist/api/client.d.ts +2 -2
  3. package/dist/api/client.d.ts.map +1 -1
  4. package/dist/api/client.js +2 -2
  5. package/dist/api/documents/client.d.ts +3 -3
  6. package/dist/api/documents/client.d.ts.map +1 -1
  7. package/dist/api/documents/client.js +3 -3
  8. package/dist/api/projects/client.d.ts +15 -0
  9. package/dist/api/projects/client.d.ts.map +1 -0
  10. package/dist/api/projects/client.js +43 -0
  11. package/dist/api/projects/documents/client.d.ts +12 -0
  12. package/dist/api/projects/documents/client.d.ts.map +1 -0
  13. package/dist/api/projects/documents/client.js +39 -0
  14. package/dist/api/projects/iterations/client.d.ts +17 -0
  15. package/dist/api/projects/iterations/client.d.ts.map +1 -0
  16. package/dist/api/projects/iterations/client.js +64 -0
  17. package/dist/client.d.ts +1 -0
  18. package/dist/client.d.ts.map +1 -1
  19. package/dist/client.js +6 -1
  20. package/dist/generated_types.d.ts +17837 -40090
  21. package/dist/generated_types.d.ts.map +1 -1
  22. package/dist/generated_types.js +309 -979
  23. package/dist/index.d.ts +7 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -2
  26. package/dist/types.d.ts +188 -80
  27. package/dist/types.d.ts.map +1 -1
  28. package/dist/types.js +22 -1
  29. package/package.json +6 -9
  30. package/dist/api/consensus/client.d.ts +0 -7
  31. package/dist/api/consensus/client.d.ts.map +0 -1
  32. package/dist/api/consensus/client.js +0 -14
  33. package/dist/errors.d.ts +0 -34
  34. package/dist/errors.d.ts.map +0 -1
  35. package/dist/errors.js +0 -53
  36. package/dist/resource.d.ts +0 -12
  37. package/dist/resource.d.ts.map +0 -1
  38. package/dist/resource.js +0 -19
  39. package/dist/resources/consensus/completions.d.ts +0 -66
  40. package/dist/resources/consensus/completions.d.ts.map +0 -1
  41. package/dist/resources/consensus/completions.js +0 -84
  42. package/dist/resources/consensus/index.d.ts +0 -72
  43. package/dist/resources/consensus/index.d.ts.map +0 -1
  44. package/dist/resources/consensus/index.js +0 -76
  45. package/dist/resources/consensus/responses.d.ts +0 -69
  46. package/dist/resources/consensus/responses.d.ts.map +0 -1
  47. package/dist/resources/consensus/responses.js +0 -99
  48. package/dist/resources/documents/extractions.d.ts +0 -74
  49. package/dist/resources/documents/extractions.d.ts.map +0 -1
  50. package/dist/resources/documents/extractions.js +0 -196
  51. package/dist/resources/documents/index.d.ts +0 -21
  52. package/dist/resources/documents/index.d.ts.map +0 -1
  53. package/dist/resources/documents/index.js +0 -55
  54. package/dist/resources/evaluations/documents.d.ts +0 -40
  55. package/dist/resources/evaluations/documents.d.ts.map +0 -1
  56. package/dist/resources/evaluations/documents.js +0 -123
  57. package/dist/resources/evaluations/index.d.ts +0 -14
  58. package/dist/resources/evaluations/index.d.ts.map +0 -1
  59. package/dist/resources/evaluations/index.js +0 -17
  60. package/dist/resources/evaluations/iterations.d.ts +0 -50
  61. package/dist/resources/evaluations/iterations.d.ts.map +0 -1
  62. package/dist/resources/evaluations/iterations.js +0 -156
  63. package/dist/resources/files.d.ts +0 -82
  64. package/dist/resources/files.d.ts.map +0 -1
  65. package/dist/resources/files.js +0 -150
  66. package/dist/resources/finetuning.d.ts +0 -105
  67. package/dist/resources/finetuning.d.ts.map +0 -1
  68. package/dist/resources/finetuning.js +0 -181
  69. package/dist/resources/index.d.ts +0 -11
  70. package/dist/resources/index.d.ts.map +0 -1
  71. package/dist/resources/index.js +0 -10
  72. package/dist/resources/models.d.ts +0 -57
  73. package/dist/resources/models.d.ts.map +0 -1
  74. package/dist/resources/models.js +0 -72
  75. package/dist/resources/processors/automations/endpoints.d.ts +0 -90
  76. package/dist/resources/processors/automations/endpoints.d.ts.map +0 -1
  77. package/dist/resources/processors/automations/endpoints.js +0 -145
  78. package/dist/resources/processors/automations/index.d.ts +0 -7
  79. package/dist/resources/processors/automations/index.d.ts.map +0 -1
  80. package/dist/resources/processors/automations/index.js +0 -6
  81. package/dist/resources/processors/automations/links.d.ts +0 -90
  82. package/dist/resources/processors/automations/links.d.ts.map +0 -1
  83. package/dist/resources/processors/automations/links.js +0 -149
  84. package/dist/resources/processors/automations/logs.d.ts +0 -35
  85. package/dist/resources/processors/automations/logs.d.ts.map +0 -1
  86. package/dist/resources/processors/automations/logs.js +0 -60
  87. package/dist/resources/processors/automations/mailboxes.d.ts +0 -102
  88. package/dist/resources/processors/automations/mailboxes.d.ts.map +0 -1
  89. package/dist/resources/processors/automations/mailboxes.js +0 -157
  90. package/dist/resources/processors/automations/outlook.d.ts +0 -114
  91. package/dist/resources/processors/automations/outlook.d.ts.map +0 -1
  92. package/dist/resources/processors/automations/outlook.js +0 -170
  93. package/dist/resources/processors/automations/tests.d.ts +0 -58
  94. package/dist/resources/processors/automations/tests.d.ts.map +0 -1
  95. package/dist/resources/processors/automations/tests.js +0 -90
  96. package/dist/resources/processors/index.d.ts +0 -303
  97. package/dist/resources/processors/index.d.ts.map +0 -1
  98. package/dist/resources/processors/index.js +0 -261
  99. package/dist/resources/schemas.d.ts +0 -63
  100. package/dist/resources/schemas.d.ts.map +0 -1
  101. package/dist/resources/schemas.js +0 -183
  102. package/dist/resources/secrets/external_api_keys.d.ts +0 -61
  103. package/dist/resources/secrets/external_api_keys.d.ts.map +0 -1
  104. package/dist/resources/secrets/external_api_keys.js +0 -120
  105. package/dist/resources/secrets/index.d.ts +0 -14
  106. package/dist/resources/secrets/index.d.ts.map +0 -1
  107. package/dist/resources/secrets/index.js +0 -17
  108. package/dist/resources/secrets/webhooks.d.ts +0 -73
  109. package/dist/resources/secrets/webhooks.d.ts.map +0 -1
  110. package/dist/resources/secrets/webhooks.js +0 -145
  111. package/dist/resources/usage.d.ts +0 -223
  112. package/dist/resources/usage.d.ts.map +0 -1
  113. package/dist/resources/usage.js +0 -310
  114. package/dist/types/ai_models.d.ts +0 -389
  115. package/dist/types/ai_models.d.ts.map +0 -1
  116. package/dist/types/ai_models.js +0 -145
  117. package/dist/types/automations/cron.d.ts +0 -28
  118. package/dist/types/automations/cron.d.ts.map +0 -1
  119. package/dist/types/automations/cron.js +0 -1
  120. package/dist/types/automations/endpoints.d.ts +0 -13
  121. package/dist/types/automations/endpoints.d.ts.map +0 -1
  122. package/dist/types/automations/endpoints.js +0 -1
  123. package/dist/types/automations/index.d.ts +0 -7
  124. package/dist/types/automations/index.d.ts.map +0 -1
  125. package/dist/types/automations/index.js +0 -6
  126. package/dist/types/automations/links.d.ts +0 -15
  127. package/dist/types/automations/links.d.ts.map +0 -1
  128. package/dist/types/automations/links.js +0 -1
  129. package/dist/types/automations/mailboxes.d.ts +0 -18
  130. package/dist/types/automations/mailboxes.d.ts.map +0 -1
  131. package/dist/types/automations/mailboxes.js +0 -1
  132. package/dist/types/automations/outlook.d.ts +0 -37
  133. package/dist/types/automations/outlook.d.ts.map +0 -1
  134. package/dist/types/automations/outlook.js +0 -1
  135. package/dist/types/automations/webhooks.d.ts +0 -13
  136. package/dist/types/automations/webhooks.d.ts.map +0 -1
  137. package/dist/types/automations/webhooks.js +0 -1
  138. package/dist/types/browser_canvas.d.ts +0 -4
  139. package/dist/types/browser_canvas.d.ts.map +0 -1
  140. package/dist/types/browser_canvas.js +0 -2
  141. package/dist/types/chat.d.ts +0 -99
  142. package/dist/types/chat.d.ts.map +0 -1
  143. package/dist/types/chat.js +0 -20
  144. package/dist/types/consensus.d.ts +0 -10
  145. package/dist/types/consensus.d.ts.map +0 -1
  146. package/dist/types/consensus.js +0 -1
  147. package/dist/types/db/annotations.d.ts +0 -108
  148. package/dist/types/db/annotations.d.ts.map +0 -1
  149. package/dist/types/db/annotations.js +0 -6
  150. package/dist/types/db/files.d.ts +0 -133
  151. package/dist/types/db/files.d.ts.map +0 -1
  152. package/dist/types/db/files.js +0 -5
  153. package/dist/types/documents/extractions.d.ts +0 -1849
  154. package/dist/types/documents/extractions.d.ts.map +0 -1
  155. package/dist/types/documents/extractions.js +0 -211
  156. package/dist/types/documents/processing.d.ts +0 -249
  157. package/dist/types/documents/processing.d.ts.map +0 -1
  158. package/dist/types/documents/processing.js +0 -6
  159. package/dist/types/evaluations/iterations.d.ts +0 -41
  160. package/dist/types/evaluations/iterations.d.ts.map +0 -1
  161. package/dist/types/evaluations/iterations.js +0 -1
  162. package/dist/types/jobs/base.d.ts +0 -162
  163. package/dist/types/jobs/base.d.ts.map +0 -1
  164. package/dist/types/jobs/base.js +0 -6
  165. package/dist/types/jobs/specialized.d.ts +0 -200
  166. package/dist/types/jobs/specialized.d.ts.map +0 -1
  167. package/dist/types/jobs/specialized.js +0 -37
  168. package/dist/types/logs.d.ts +0 -92
  169. package/dist/types/logs.d.ts.map +0 -1
  170. package/dist/types/logs.js +0 -1
  171. package/dist/types/mime.d.ts +0 -426
  172. package/dist/types/mime.d.ts.map +0 -1
  173. package/dist/types/mime.js +0 -48
  174. package/dist/types/modalities.d.ts +0 -31
  175. package/dist/types/modalities.d.ts.map +0 -1
  176. package/dist/types/modalities.js +0 -109
  177. package/dist/types/pagination.d.ts +0 -5
  178. package/dist/types/pagination.d.ts.map +0 -1
  179. package/dist/types/pagination.js +0 -1
  180. package/dist/types/schemas/enhancement.d.ts +0 -250
  181. package/dist/types/schemas/enhancement.d.ts.map +0 -1
  182. package/dist/types/schemas/enhancement.js +0 -6
  183. package/dist/types/schemas/generate.d.ts +0 -160
  184. package/dist/types/schemas/generate.d.ts.map +0 -1
  185. package/dist/types/schemas/generate.js +0 -19
  186. package/dist/types/schemas/object.d.ts +0 -116
  187. package/dist/types/schemas/object.d.ts.map +0 -1
  188. package/dist/types/schemas/object.js +0 -861
  189. package/dist/types/secrets/external_api_keys.d.ts +0 -27
  190. package/dist/types/secrets/external_api_keys.d.ts.map +0 -1
  191. package/dist/types/secrets/external_api_keys.js +0 -11
  192. package/dist/types/secrets/index.d.ts +0 -2
  193. package/dist/types/secrets/index.d.ts.map +0 -1
  194. package/dist/types/secrets/index.js +0 -1
  195. package/dist/types/standards.d.ts +0 -37
  196. package/dist/types/standards.d.ts.map +0 -1
  197. package/dist/types/standards.js +0 -1
  198. package/dist/utils/ai_models.d.ts +0 -10
  199. package/dist/utils/ai_models.d.ts.map +0 -1
  200. package/dist/utils/ai_models.js +0 -183
  201. package/dist/utils/batch_processing.d.ts +0 -227
  202. package/dist/utils/batch_processing.d.ts.map +0 -1
  203. package/dist/utils/batch_processing.js +0 -268
  204. package/dist/utils/benchmarking.d.ts +0 -115
  205. package/dist/utils/benchmarking.d.ts.map +0 -1
  206. package/dist/utils/benchmarking.js +0 -355
  207. package/dist/utils/chat.d.ts +0 -70
  208. package/dist/utils/chat.d.ts.map +0 -1
  209. package/dist/utils/chat.js +0 -79
  210. package/dist/utils/cost_calculation.d.ts +0 -26
  211. package/dist/utils/cost_calculation.d.ts.map +0 -1
  212. package/dist/utils/cost_calculation.js +0 -99
  213. package/dist/utils/datasets.d.ts +0 -135
  214. package/dist/utils/datasets.d.ts.map +0 -1
  215. package/dist/utils/datasets.js +0 -359
  216. package/dist/utils/display.d.ts +0 -108
  217. package/dist/utils/display.d.ts.map +0 -1
  218. package/dist/utils/display.js +0 -244
  219. package/dist/utils/hash.d.ts +0 -18
  220. package/dist/utils/hash.d.ts.map +0 -1
  221. package/dist/utils/hash.js +0 -31
  222. package/dist/utils/hashing.d.ts +0 -18
  223. package/dist/utils/hashing.d.ts.map +0 -1
  224. package/dist/utils/hashing.js +0 -28
  225. package/dist/utils/index.d.ts +0 -8
  226. package/dist/utils/index.d.ts.map +0 -1
  227. package/dist/utils/index.js +0 -10
  228. package/dist/utils/json_schema.d.ts +0 -18
  229. package/dist/utils/json_schema.d.ts.map +0 -1
  230. package/dist/utils/json_schema.js +0 -334
  231. package/dist/utils/json_schema_utils.d.ts +0 -42
  232. package/dist/utils/json_schema_utils.d.ts.map +0 -1
  233. package/dist/utils/json_schema_utils.js +0 -212
  234. package/dist/utils/jsonl.d.ts +0 -60
  235. package/dist/utils/jsonl.d.ts.map +0 -1
  236. package/dist/utils/jsonl.js +0 -259
  237. package/dist/utils/mime.d.ts +0 -6
  238. package/dist/utils/mime.d.ts.map +0 -1
  239. package/dist/utils/mime.js +0 -129
  240. package/dist/utils/model_cards.d.ts +0 -219
  241. package/dist/utils/model_cards.d.ts.map +0 -1
  242. package/dist/utils/model_cards.js +0 -462
  243. package/dist/utils/prompt_optimization.d.ts +0 -96
  244. package/dist/utils/prompt_optimization.d.ts.map +0 -1
  245. package/dist/utils/prompt_optimization.js +0 -275
  246. package/dist/utils/responses.d.ts +0 -35
  247. package/dist/utils/responses.d.ts.map +0 -1
  248. package/dist/utils/responses.js +0 -37
  249. package/dist/utils/stream.d.ts +0 -13
  250. package/dist/utils/stream.d.ts.map +0 -1
  251. package/dist/utils/stream.js +0 -64
  252. package/dist/utils/stream_context_managers.d.ts +0 -147
  253. package/dist/utils/stream_context_managers.d.ts.map +0 -1
  254. package/dist/utils/stream_context_managers.js +0 -380
  255. package/dist/utils/usage.d.ts +0 -57
  256. package/dist/utils/usage.d.ts.map +0 -1
  257. package/dist/utils/usage.js +0 -97
  258. package/dist/utils/webhook_secrets.d.ts +0 -59
  259. package/dist/utils/webhook_secrets.d.ts.map +0 -1
  260. package/dist/utils/webhook_secrets.js +0 -107
  261. package/dist/utils/zod_to_json_schema.d.ts +0 -11
  262. package/dist/utils/zod_to_json_schema.d.ts.map +0 -1
  263. package/dist/utils/zod_to_json_schema.js +0 -123
@@ -1,268 +0,0 @@
1
- import fs from 'fs';
2
- import axios from 'axios';
3
- import { readJSONL, writeJSONL } from './jsonl.js';
4
- /**
5
- * OpenAI Batch API client
6
- */
7
- export class OpenAIBatchProcessor {
8
- constructor(options) {
9
- this.apiKey = options.apiKey;
10
- this.baseUrl = options.baseUrl || 'https://api.openai.com/v1';
11
- this.timeout = options.timeout || 300000; // 5 minutes
12
- }
13
- /**
14
- * Upload file for batch processing
15
- */
16
- async uploadFile(filePath, purpose = 'batch') {
17
- if (!fs.existsSync(filePath)) {
18
- throw new Error(`File not found: ${filePath}`);
19
- }
20
- const formData = new FormData();
21
- const fileBuffer = fs.readFileSync(filePath);
22
- const blob = new Blob([fileBuffer]);
23
- formData.append('file', blob, filePath.split('/').pop());
24
- formData.append('purpose', purpose);
25
- const response = await axios.post(`${this.baseUrl}/files`, formData, {
26
- headers: {
27
- 'Authorization': `Bearer ${this.apiKey}`,
28
- 'Content-Type': 'multipart/form-data',
29
- },
30
- timeout: this.timeout,
31
- });
32
- return {
33
- id: response.data.id,
34
- filename: response.data.filename,
35
- };
36
- }
37
- /**
38
- * Create batch job
39
- */
40
- async createBatch(inputFileId, endpoint, completionWindow = '24h', metadata) {
41
- const response = await axios.post(`${this.baseUrl}/batches`, {
42
- input_file_id: inputFileId,
43
- endpoint,
44
- completion_window: completionWindow,
45
- metadata,
46
- }, {
47
- headers: {
48
- 'Authorization': `Bearer ${this.apiKey}`,
49
- 'Content-Type': 'application/json',
50
- },
51
- timeout: this.timeout,
52
- });
53
- return response.data;
54
- }
55
- /**
56
- * Get batch job status
57
- */
58
- async getBatch(batchId) {
59
- const response = await axios.get(`${this.baseUrl}/batches/${batchId}`, {
60
- headers: {
61
- 'Authorization': `Bearer ${this.apiKey}`,
62
- },
63
- timeout: this.timeout,
64
- });
65
- return response.data;
66
- }
67
- /**
68
- * Cancel batch job
69
- */
70
- async cancelBatch(batchId) {
71
- const response = await axios.post(`${this.baseUrl}/batches/${batchId}/cancel`, {}, {
72
- headers: {
73
- 'Authorization': `Bearer ${this.apiKey}`,
74
- 'Content-Type': 'application/json',
75
- },
76
- timeout: this.timeout,
77
- });
78
- return response.data;
79
- }
80
- /**
81
- * List batch jobs
82
- */
83
- async listBatches(after, limit = 20) {
84
- const params = new URLSearchParams();
85
- if (after)
86
- params.append('after', after);
87
- params.append('limit', limit.toString());
88
- const response = await axios.get(`${this.baseUrl}/batches?${params}`, {
89
- headers: {
90
- 'Authorization': `Bearer ${this.apiKey}`,
91
- },
92
- timeout: this.timeout,
93
- });
94
- return response.data;
95
- }
96
- /**
97
- * Download file content
98
- */
99
- async downloadFile(fileId) {
100
- const response = await axios.get(`${this.baseUrl}/files/${fileId}/content`, {
101
- headers: {
102
- 'Authorization': `Bearer ${this.apiKey}`,
103
- },
104
- timeout: this.timeout,
105
- });
106
- return response.data;
107
- }
108
- /**
109
- * Monitor batch job progress
110
- */
111
- async *monitorBatch(batchId, pollInterval = 30000) {
112
- const startTime = Date.now();
113
- let lastProgress = 0;
114
- while (true) {
115
- const batch = await this.getBatch(batchId);
116
- const timeElapsed = Date.now() - startTime;
117
- const progress = {
118
- total: batch.request_counts.total,
119
- completed: batch.request_counts.completed,
120
- failed: batch.request_counts.failed,
121
- percentage: batch.request_counts.total > 0 ?
122
- (batch.request_counts.completed / batch.request_counts.total) * 100 : 0,
123
- };
124
- // Estimate time remaining
125
- let estimatedTimeRemaining;
126
- if (progress.completed > lastProgress && progress.completed > 0) {
127
- const completionRate = progress.completed / timeElapsed;
128
- const remaining = progress.total - progress.completed;
129
- estimatedTimeRemaining = remaining / completionRate;
130
- }
131
- yield {
132
- jobId: batchId,
133
- status: batch.status,
134
- progress,
135
- timeElapsed,
136
- estimatedTimeRemaining,
137
- };
138
- // Break if job is complete
139
- if (['completed', 'failed', 'cancelled', 'expired'].includes(batch.status)) {
140
- break;
141
- }
142
- lastProgress = progress.completed;
143
- await new Promise(resolve => setTimeout(resolve, pollInterval));
144
- }
145
- }
146
- /**
147
- * Process batch end-to-end
148
- */
149
- async processBatch(requestsFilePath, outputFilePath, endpoint = '/v1/chat/completions', options = {}) {
150
- const { completionWindow = '24h', metadata, pollInterval = 30000, showProgress = true, } = options;
151
- console.log('🚀 Starting batch processing...');
152
- // Upload input file
153
- console.log('📤 Uploading input file...');
154
- const uploadResult = await this.uploadFile(requestsFilePath);
155
- console.log(`✅ File uploaded: ${uploadResult.id}`);
156
- // Create batch job
157
- console.log('⚙️ Creating batch job...');
158
- const batch = await this.createBatch(uploadResult.id, endpoint, completionWindow, metadata);
159
- console.log(`✅ Batch created: ${batch.id}`);
160
- // Monitor progress
161
- if (showProgress) {
162
- console.log('📊 Monitoring batch progress...');
163
- for await (const progress of this.monitorBatch(batch.id, pollInterval)) {
164
- const { percentage, completed, total } = progress.progress;
165
- const timeStr = `${Math.round(progress.timeElapsed / 1000)}s`;
166
- const etaStr = progress.estimatedTimeRemaining ?
167
- ` (ETA: ${Math.round(progress.estimatedTimeRemaining / 1000)}s)` : '';
168
- console.log(` Status: ${progress.status} - ${percentage.toFixed(1)}% (${completed}/${total}) - ${timeStr}${etaStr}`);
169
- if (['completed', 'failed', 'cancelled', 'expired'].includes(progress.status)) {
170
- break;
171
- }
172
- }
173
- }
174
- // Get final batch status
175
- const finalBatch = await this.getBatch(batch.id);
176
- if (finalBatch.status === 'completed' && finalBatch.output_file_id) {
177
- console.log('📥 Downloading results...');
178
- const results = await this.downloadFile(finalBatch.output_file_id);
179
- fs.writeFileSync(outputFilePath, results);
180
- console.log(`✅ Results saved to: ${outputFilePath}`);
181
- }
182
- else {
183
- console.error(`❌ Batch failed with status: ${finalBatch.status}`);
184
- if (finalBatch.error_file_id) {
185
- const errors = await this.downloadFile(finalBatch.error_file_id);
186
- console.error('Error details:', errors);
187
- }
188
- }
189
- return finalBatch;
190
- }
191
- }
192
- /**
193
- * Utility functions for batch processing
194
- */
195
- export const batchUtils = {
196
- /**
197
- * Create batch requests for chat completions
198
- */
199
- createChatCompletionRequests: (messages, model = 'gpt-4o-mini', options = {}) => {
200
- return messages.map((msg, index) => ({
201
- custom_id: msg.customId || `request_${index}`,
202
- method: 'POST',
203
- url: '/v1/chat/completions',
204
- body: {
205
- model,
206
- messages: msg.messages,
207
- temperature: options.temperature || 0.0,
208
- max_tokens: options.maxTokens,
209
- response_format: options.responseFormat,
210
- },
211
- }));
212
- },
213
- /**
214
- * Create batch requests for document extraction
215
- */
216
- createExtractionRequests: (documents, model = 'gpt-4o-mini') => {
217
- return documents.map((doc, index) => ({
218
- custom_id: doc.customId || `extraction_${index}`,
219
- method: 'POST',
220
- url: '/v1/documents/extractions',
221
- body: {
222
- json_schema: doc.schema,
223
- documents: [doc.document],
224
- model,
225
- },
226
- }));
227
- },
228
- /**
229
- * Save batch requests to JSONL file
230
- */
231
- saveBatchRequests: async (requests, filePath) => {
232
- await writeJSONL(filePath, requests);
233
- console.log(`📄 Saved ${requests.length} batch requests to ${filePath}`);
234
- },
235
- /**
236
- * Parse batch results from JSONL file
237
- */
238
- parseBatchResults: async (filePath) => {
239
- const results = await readJSONL(filePath);
240
- return results;
241
- },
242
- /**
243
- * Extract successful results from batch responses
244
- */
245
- extractSuccessfulResults: (responses) => {
246
- return responses
247
- .filter(response => !response.error && response.response.status_code === 200)
248
- .map(response => ({
249
- customId: response.custom_id,
250
- result: response.response.body,
251
- }));
252
- },
253
- /**
254
- * Extract failed results from batch responses
255
- */
256
- extractFailedResults: (responses) => {
257
- return responses
258
- .filter(response => response.error || response.response.status_code !== 200)
259
- .map(response => ({
260
- customId: response.custom_id,
261
- error: response.error || { code: 'http_error', message: `HTTP ${response.response.status_code}` },
262
- }));
263
- },
264
- };
265
- export default {
266
- OpenAIBatchProcessor,
267
- batchUtils,
268
- };
@@ -1,115 +0,0 @@
1
- /**
2
- * Benchmarking and evaluation utilities for model comparison
3
- * Equivalent to Python's benchmarking.py
4
- */
5
- export interface EvaluationMetrics {
6
- accuracy: number;
7
- precision: number;
8
- recall: number;
9
- f1Score: number;
10
- exactMatch: number;
11
- levenshteinDistance: number;
12
- jaccardSimilarity: number;
13
- hammingDistance: number;
14
- fieldAccuracy: Record<string, number>;
15
- completeness: number;
16
- errorRate: number;
17
- }
18
- export interface SingleFileEvalResult {
19
- filename: string;
20
- metrics: EvaluationMetrics;
21
- predictions: any[];
22
- groundTruths: any[];
23
- differences: Record<string, any>[];
24
- executionTime: number;
25
- }
26
- export interface BenchmarkResult {
27
- model: string;
28
- overallMetrics: EvaluationMetrics;
29
- fileResults: SingleFileEvalResult[];
30
- aggregateStats: {
31
- meanAccuracy: number;
32
- stdDevAccuracy: number;
33
- meanF1: number;
34
- stdDevF1: number;
35
- totalFiles: number;
36
- totalPredictions: number;
37
- };
38
- executionTime: number;
39
- }
40
- export interface DictionaryDifference {
41
- field: string;
42
- predicted: any;
43
- groundTruth: any;
44
- differenceType: 'missing' | 'extra' | 'value_mismatch' | 'type_mismatch';
45
- path: string;
46
- }
47
- /**
48
- * Calculate Levenshtein distance between two strings
49
- */
50
- export declare function levenshteinDistance(str1: string, str2: string): number;
51
- /**
52
- * Calculate Jaccard similarity between two sets
53
- */
54
- export declare function jaccardSimilarity(set1: Set<any>, set2: Set<any>): number;
55
- /**
56
- * Calculate Hamming distance between two strings
57
- */
58
- export declare function hammingDistance(str1: string, str2: string): number;
59
- /**
60
- * Flatten nested object into dot-notation keys
61
- */
62
- export declare function flattenObject(obj: any, prefix?: string): Record<string, any>;
63
- /**
64
- * Compute detailed differences between two dictionaries
65
- */
66
- export declare function computeDictDifference(predicted: any, groundTruth: any, path?: string): DictionaryDifference[];
67
- /**
68
- * Aggregate dictionary differences across multiple examples
69
- */
70
- export declare function aggregateDictDifferences(differences: DictionaryDifference[][]): Record<string, {
71
- count: number;
72
- percentage: number;
73
- examples: DictionaryDifference[];
74
- }>;
75
- /**
76
- * Calculate comprehensive evaluation metrics
77
- */
78
- export declare function calculateMetrics(predictions: any[], groundTruths: any[]): EvaluationMetrics;
79
- /**
80
- * Single file evaluation class
81
- */
82
- export declare class SingleFileEval {
83
- private filename;
84
- private predictions;
85
- private groundTruths;
86
- constructor(filename: string, predictions: any[], groundTruths: any[]);
87
- evaluate(): Promise<SingleFileEvalResult>;
88
- }
89
- /**
90
- * Plot metrics with uncertainty (text-based visualization)
91
- */
92
- export declare function plotMetricsWithUncertainty(results: BenchmarkResult[]): void;
93
- /**
94
- * Benchmark multiple models
95
- */
96
- export declare function benchmark(models: string[], testDataPath: string, groundTruthPath: string, evaluationFunction: (model: string, testData: any[]) => Promise<any[]>): Promise<BenchmarkResult[]>;
97
- /**
98
- * Save benchmark results to file
99
- */
100
- export declare function saveBenchmarkResults(results: BenchmarkResult[], outputPath: string): Promise<void>;
101
- declare const _default: {
102
- SingleFileEval: typeof SingleFileEval;
103
- calculateMetrics: typeof calculateMetrics;
104
- computeDictDifference: typeof computeDictDifference;
105
- aggregateDictDifferences: typeof aggregateDictDifferences;
106
- levenshteinDistance: typeof levenshteinDistance;
107
- jaccardSimilarity: typeof jaccardSimilarity;
108
- hammingDistance: typeof hammingDistance;
109
- flattenObject: typeof flattenObject;
110
- plotMetricsWithUncertainty: typeof plotMetricsWithUncertainty;
111
- benchmark: typeof benchmark;
112
- saveBenchmarkResults: typeof saveBenchmarkResults;
113
- };
114
- export default _default;
115
- //# sourceMappingURL=benchmarking.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"benchmarking.d.ts","sourceRoot":"","sources":["../../src/utils/benchmarking.ts"],"names":[],"mappings":"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"}