/
opt
/
canhelp
/
node_modules
/
openai
/
resources
/
vector-stores
/
/opt/canhelp/node_modules/openai/resources/vector-stores
mkdir
upload
Name
Size
Mode
Actions
file-batches.d.mts
8408
0644
edit
dl
rm
file-batches.d.mts.map
3204
0644
edit
dl
rm
file-batches.d.ts
8399
0644
edit
dl
rm
file-batches.d.ts.map
3203
0644
edit
dl
rm
file-batches.js
6064
0644
edit
dl
rm
file-batches.js.map
3877
0644
edit
dl
rm
file-batches.mjs
5769
0644
edit
dl
rm
file-batches.mjs.map
3853
0644
edit
dl
rm
files.d.mts
9357
0644
edit
dl
rm
files.d.mts.map
3864
0644
edit
dl
rm
files.d.ts
9350
0644
edit
dl
rm
files.d.ts.map
3863
0644
edit
dl
rm
files.js
6149
0644
edit
dl
rm
files.js.map
3971
0644
edit
dl
rm
files.mjs
5810
0644
edit
dl
rm
files.mjs.map
3929
0644
edit
dl
rm
index.d.mts
1098
0644
edit
dl
rm
index.d.mts.map
761
0644
edit
dl
rm
index.d.ts
1094
0644
edit
dl
rm
index.d.ts.map
760
0644
edit
dl
rm
index.js
769
0644
edit
dl
rm
index.js.map
247
0644
edit
dl
rm
index.mjs
263
0644
edit
dl
rm
index.mjs.map
203
0644
edit
dl
rm
vector-stores.d.mts
14311
0644
edit
dl
rm
vector-stores.d.mts.map
5943
0644
edit
dl
rm
vector-stores.d.ts
14301
0644
edit
dl
rm
vector-stores.d.ts.map
5942
0644
edit
dl
rm
vector-stores.js
3201
0644
edit
dl
rm
vector-stores.js.map
2149
0644
edit
dl
rm
vector-stores.mjs
2775
0644
edit
dl
rm
vector-stores.mjs.map
2138
0644
edit
dl
rm
Edit:
/opt/canhelp/node_modules/openai/resources/vector-stores/file-batches.mjs
(5769B)
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from "../../core/resource.mjs"; import { CursorPage } from "../../core/pagination.mjs"; import { buildHeaders } from "../../internal/headers.mjs"; import { sleep } from "../../internal/utils/sleep.mjs"; import { allSettledWithThrow } from "../../lib/Util.mjs"; import { path } from "../../internal/utils/path.mjs"; export class FileBatches extends APIResource { /** * Create a vector store file batch. */ create(vectorStoreID, body, options) { return this._client.post(path `/vector_stores/${vectorStoreID}/file_batches`, { body, ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]), }); } /** * Retrieves a vector store file batch. */ retrieve(batchID, params, options) { const { vector_store_id } = params; return this._client.get(path `/vector_stores/${vector_store_id}/file_batches/${batchID}`, { ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]), }); } /** * Cancel a vector store file batch. This attempts to cancel the processing of * files in this batch as soon as possible. */ cancel(batchID, params, options) { const { vector_store_id } = params; return this._client.post(path `/vector_stores/${vector_store_id}/file_batches/${batchID}/cancel`, { ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]), }); } /** * Create a vector store batch and poll until all files have been processed. */ async createAndPoll(vectorStoreId, body, options) { const batch = await this.create(vectorStoreId, body); return await this.poll(vectorStoreId, batch.id, options); } /** * Returns a list of vector store files in a batch. */ listFiles(batchID, params, options) { const { vector_store_id, ...query } = params; return this._client.getAPIList(path `/vector_stores/${vector_store_id}/file_batches/${batchID}/files`, (CursorPage), { query, ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]) }); } /** * Wait for the given file batch to be processed. * * Note: this will return even if one of the files failed to process, you need to * check batch.file_counts.failed_count to handle this case. */ async poll(vectorStoreID, batchID, options) { const headers = buildHeaders([ options?.headers, { 'X-Stainless-Poll-Helper': 'true', 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined, }, ]); while (true) { const { data: batch, response } = await this.retrieve(batchID, { vector_store_id: vectorStoreID }, { ...options, headers, }).withResponse(); switch (batch.status) { case 'in_progress': let sleepInterval = 5000; if (options?.pollIntervalMs) { sleepInterval = options.pollIntervalMs; } else { const headerInterval = response.headers.get('openai-poll-after-ms'); if (headerInterval) { const headerIntervalMs = parseInt(headerInterval); if (!isNaN(headerIntervalMs)) { sleepInterval = headerIntervalMs; } } } await sleep(sleepInterval); break; case 'failed': case 'cancelled': case 'completed': return batch; } } } /** * Uploads the given files concurrently and then creates a vector store file batch. * * The concurrency limit is configurable using the `maxConcurrency` parameter. */ async uploadAndPoll(vectorStoreId, { files, fileIds = [] }, options) { if (files == null || files.length == 0) { throw new Error(`No \`files\` provided to process. If you've already uploaded files you should use \`.createAndPoll()\` instead`); } const configuredConcurrency = options?.maxConcurrency ?? 5; // We cap the number of workers at the number of files (so we don't start any unnecessary workers) const concurrencyLimit = Math.min(configuredConcurrency, files.length); const client = this._client; const fileIterator = files.values(); const allFileIds = [...fileIds]; // This code is based on this design. The libraries don't accommodate our environment limits. // https://stackoverflow.com/questions/40639432/what-is-the-best-way-to-limit-concurrency-when-using-es6s-promise-all async function processFiles(iterator) { for (let item of iterator) { const fileObj = await client.files.create({ file: item, purpose: 'assistants' }, options); allFileIds.push(fileObj.id); } } // Start workers to process results const workers = Array(concurrencyLimit).fill(fileIterator).map(processFiles); // Wait for all processing to complete. await allSettledWithThrow(workers); return await this.createAndPoll(vectorStoreId, { file_ids: allFileIds, }); } } //# sourceMappingURL=file-batches.mjs.map
Save
cmd:
run