From 06f632b2cb44ec0876c3ee67398563edd316fd7e Mon Sep 17 00:00:00 2001 From: Alex Yang <himself65@outlook.com> Date: Tue, 22 Oct 2024 00:49:15 -0700 Subject: [PATCH] fix(cloud): allow filename in llama parse (#1364) --- .changeset/cold-beers-try.md | 5 + examples/data/pto_policy_employee.docx | Bin 0 -> 24159 bytes examples/readers/src/llamaparse-docx.ts | 52 + packages/cloud/openapi.json | 1896 ++++++++++++++++------- packages/cloud/package.json | 9 +- packages/cloud/src/reader.ts | 41 +- packages/core/src/schema/type.ts | 6 +- pnpm-lock.yaml | 95 +- 8 files changed, 1440 insertions(+), 664 deletions(-) create mode 100644 .changeset/cold-beers-try.md create mode 100644 examples/data/pto_policy_employee.docx create mode 100644 examples/readers/src/llamaparse-docx.ts diff --git a/.changeset/cold-beers-try.md b/.changeset/cold-beers-try.md new file mode 100644 index 000000000..4b27e70e3 --- /dev/null +++ b/.changeset/cold-beers-try.md @@ -0,0 +1,5 @@ +--- +"@llamaindex/cloud": patch +--- + +fix(cloud): allow filename in llama parse diff --git a/examples/data/pto_policy_employee.docx b/examples/data/pto_policy_employee.docx new file mode 100644 index 0000000000000000000000000000000000000000..72ce29c35a91a4eee838c688349439edb4e9ad32 GIT binary patch literal 24159 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 bf$QE)nkrbxo(4a5K%{7}8_2OT{PF958gTQ` literal 0 HcmV?d00001 diff --git a/examples/readers/src/llamaparse-docx.ts b/examples/readers/src/llamaparse-docx.ts new file mode 100644 index 000000000..6e6609706 --- /dev/null +++ b/examples/readers/src/llamaparse-docx.ts @@ -0,0 +1,52 @@ +import { Language, LlamaParseReader } from "llamaindex"; +import fs from "node:fs"; +import path from "node:path"; + +type LlamaParseReaderParams = Partial< + Omit<LlamaParseReader, "language" | "apiKey"> +> & { + language?: Language | Language[] | undefined; + apiKey?: string | undefined; +}; + +async function main() { + const filePath = "../data/pto_policy_employee.docx"; + if (!fs.existsSync(filePath)) { + console.error(`File ${filePath} does not exist`); + process.exit(1); + } else { + console.log(`File ${filePath} exists`); + } + + const params: LlamaParseReaderParams = { + verbose: true, + parsingInstruction: + "Extract the text from the document a long with any images and tables. This is a document for a course and the contents of the images are important.", + fastMode: false, + gpt4oMode: true, + useVendorMultimodalModel: true, + vendorMultimodalModelName: "anthropic-sonnet-3.5", + premiumMode: true, + resultType: "markdown", + apiKey: process.env.LLAMA_CLOUD_API_KEY, + doNotCache: true, + }; + + // set up the llamaparse reader + const reader = new LlamaParseReader(params); + + const buffer = fs.readFileSync(filePath); + const documents = await reader.loadDataAsContent( + new Uint8Array(buffer), + path.basename(filePath), + ); + + let allText = ""; + documents.forEach((doc) => { + allText += doc.text; + }); + + console.log(allText); +} + +main().catch(console.error); diff --git a/packages/cloud/openapi.json b/packages/cloud/openapi.json index e27a423d8..d3f56b253 100644 --- a/packages/cloud/openapi.json +++ b/packages/cloud/openapi.json @@ -264,8 +264,9 @@ }, "/api/v1/validate-integrations/validate-embedding-connection": { "post": { + "tags": ["Validation"], "summary": "Validate Embedding Connection", - "description": "Validate an embedding connection.", + "description": "Validate an embedding connection.\n\nArgs:\n embedding_config: The embedding configuration to validate.\n pipeline_id: If provided, the embedding connection will be validated for the pipeline.\n user: The user to validate the embedding connection for.\n db: The database session.\n\nReturns:\n A BaseConnectionValidation object indicating the result of the validation.", "operationId": "validate_embedding_connection_api_v1_validate_integrations_validate_embedding_connection_post", "security": [ { @@ -276,6 +277,23 @@ } ], "parameters": [ + { + "name": "pipeline_id", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ], + "title": "Pipeline Id" + } + }, { "name": "session", "in": "cookie", @@ -364,6 +382,7 @@ }, "/api/v1/validate-integrations/validate-data-source-connection": { "post": { + "tags": ["Validation"], "summary": "Validate Data Source Connection", "description": "Validate a data source connection.", "operationId": "validate_data_source_connection_api_v1_validate_integrations_validate_data_source_connection_post", @@ -429,6 +448,7 @@ }, "/api/v1/validate-integrations/validate-data-sink-connection": { "post": { + "tags": ["Validation"], "summary": "Validate Data Sink Connection", "description": "Validate a data sink connection.", "operationId": "validate_data_sink_connection_api_v1_validate_integrations_validate_data_sink_connection_post", @@ -2247,12 +2267,12 @@ } } }, - "/api/v1/projects": { + "/api/v1/organizations/{organization_id}/roles": { "get": { - "tags": ["Projects"], - "summary": "List Projects", - "description": "List projects or get one by name", - "operationId": "list_projects_api_v1_projects_get", + "tags": ["Organizations"], + "summary": "List Roles", + "description": "List all roles in an organization.", + "operationId": "list_roles_api_v1_organizations__organization_id__roles_get", "security": [ { "HTTPBearer": [] @@ -2264,37 +2284,14 @@ "parameters": [ { "name": "organization_id", - "in": "query", - "required": false, + "in": "path", + "required": true, "schema": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], + "type": "string", + "format": "uuid", "title": "Organization Id" } }, - { - "name": "project_name", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Project Name" - } - }, { "name": "session", "in": "cookie", @@ -2320,9 +2317,9 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/Project" + "$ref": "#/components/schemas/Role" }, - "title": "Response List Projects Api V1 Projects Get" + "title": "Response List Roles Api V1 Organizations Organization Id Roles Get" } } } @@ -2338,12 +2335,14 @@ } } } - }, - "post": { - "tags": ["Projects"], - "summary": "Create Project", - "description": "Create a new project.", - "operationId": "create_project_api_v1_projects_post", + } + }, + "/api/v1/organizations/{organization_id}/users/roles": { + "put": { + "tags": ["Organizations"], + "summary": "Assign Role To User In Organization", + "description": "Assign a role to a user in an organization.", + "operationId": "assign_role_to_user_in_organization_api_v1_organizations__organization_id__users_roles_put", "security": [ { "HTTPBearer": [] @@ -2355,18 +2354,11 @@ "parameters": [ { "name": "organization_id", - "in": "query", - "required": false, + "in": "path", + "required": true, "schema": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], + "type": "string", + "format": "uuid", "title": "Organization Id" } }, @@ -2392,7 +2384,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProjectCreate" + "$ref": "#/components/schemas/UserOrganizationRoleCreate" } } } @@ -2403,7 +2395,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Project" + "$ref": "#/components/schemas/UserOrganizationRole" } } } @@ -2420,11 +2412,11 @@ } } }, - "put": { - "tags": ["Projects"], - "summary": "Upsert Project", - "description": "Upsert a project.\nUpdates if a project with the same name already exists. Otherwise, creates a new project.", - "operationId": "upsert_project_api_v1_projects_put", + "get": { + "tags": ["Organizations"], + "summary": "Get User Role", + "description": "Get the role of a user in an organization.", + "operationId": "get_user_role_api_v1_organizations__organization_id__users_roles_get", "security": [ { "HTTPBearer": [] @@ -2436,18 +2428,11 @@ "parameters": [ { "name": "organization_id", - "in": "query", - "required": false, + "in": "path", + "required": true, "schema": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], + "type": "string", + "format": "uuid", "title": "Organization Id" } }, @@ -2468,23 +2453,13 @@ } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProjectCreate" - } - } - } - }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Project" + "$ref": "#/components/schemas/UserOrganizationRole" } } } @@ -2502,12 +2477,12 @@ } } }, - "/api/v1/projects/{project_id}": { - "delete": { - "tags": ["Projects"], - "summary": "Delete Project", - "description": "Delete a project by ID.", - "operationId": "delete_project_api_v1_projects__project_id__delete", + "/api/v1/organizations/{organization_id}/users/{user_id}/projects": { + "get": { + "tags": ["Organizations"], + "summary": "List Projects By User", + "description": "List all projects for a user in an organization.", + "operationId": "list_projects_by_user_api_v1_organizations__organization_id__users__user_id__projects_get", "security": [ { "HTTPBearer": [] @@ -2518,13 +2493,22 @@ ], "parameters": [ { - "name": "project_id", + "name": "organization_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", - "title": "Project Id" + "title": "Organization Id" + } + }, + { + "name": "user_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "User Id" } }, { @@ -2545,8 +2529,19 @@ } ], "responses": { - "204": { - "description": "Successful Response" + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Project" + }, + "title": "Response List Projects By User Api V1 Organizations Organization Id Users User Id Projects Get" + } + } + } }, "422": { "description": "Validation Error", @@ -2560,11 +2555,11 @@ } } }, - "get": { - "tags": ["Projects"], - "summary": "Get Project", - "description": "Get a project by ID.", - "operationId": "get_project_api_v1_projects__project_id__get", + "put": { + "tags": ["Organizations"], + "summary": "Add User To Project", + "description": "Add a user to a project.", + "operationId": "add_user_to_project_api_v1_organizations__organization_id__users__user_id__projects_put", "security": [ { "HTTPBearer": [] @@ -2575,9 +2570,28 @@ ], "parameters": [ { - "name": "project_id", + "name": "organization_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Organization Id" + } + }, + { + "name": "user_id", "in": "path", "required": true, + "schema": { + "type": "string", + "title": "User Id" + } + }, + { + "name": "project_id", + "in": "query", + "required": true, "schema": { "type": "string", "format": "uuid", @@ -2606,9 +2620,7 @@ "description": "Successful Response", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/Project" - } + "schema": {} } } }, @@ -2623,12 +2635,14 @@ } } } - }, - "put": { - "tags": ["Projects"], - "summary": "Update Existing Project", - "description": "Update an existing project.", - "operationId": "update_existing_project_api_v1_projects__project_id__put", + } + }, + "/api/v1/organizations/{organization_id}/users/{user_id}/projects/{project_id}": { + "delete": { + "tags": ["Organizations"], + "summary": "Remove User From Project", + "description": "Remove a user from a project.", + "operationId": "remove_user_from_project_api_v1_organizations__organization_id__users__user_id__projects__project_id__delete", "security": [ { "HTTPBearer": [] @@ -2638,6 +2652,25 @@ } ], "parameters": [ + { + "name": "organization_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Organization Id" + } + }, + { + "name": "user_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "User Id" + } + }, { "name": "project_id", "in": "path", @@ -2665,24 +2698,12 @@ } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProjectUpdate" - } - } - } - }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/Project" - } + "schema": {} } } }, @@ -2699,12 +2720,12 @@ } } }, - "/api/v1/projects/{project_id}/eval/dataset": { - "post": { + "/api/v1/projects": { + "get": { "tags": ["Projects"], - "summary": "Create Eval Dataset For Project", - "description": "Create a new eval dataset for a project.", - "operationId": "create_eval_dataset_for_project_api_v1_projects__project_id__eval_dataset_post", + "summary": "List Projects", + "description": "List projects or get one by name", + "operationId": "list_projects_api_v1_projects_get", "security": [ { "HTTPBearer": [] @@ -2715,18 +2736,25 @@ ], "parameters": [ { - "name": "project_id", - "in": "path", - "required": true, + "name": "organization_id", + "in": "query", + "required": false, "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ], + "title": "Organization Id" } }, { - "name": "session", - "in": "cookie", + "name": "project_name", + "in": "query", "required": false, "schema": { "anyOf": [ @@ -2737,9 +2765,454 @@ "type": "null" } ], - "title": "Session" + "title": "Project Name" } - } + }, + { + "name": "session", + "in": "cookie", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Session" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Project" + }, + "title": "Response List Projects Api V1 Projects Get" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + }, + "post": { + "tags": ["Projects"], + "summary": "Create Project", + "description": "Create a new project.", + "operationId": "create_project_api_v1_projects_post", + "security": [ + { + "HTTPBearer": [] + }, + { + "HTTPBearer": [] + } + ], + "parameters": [ + { + "name": "organization_id", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ], + "title": "Organization Id" + } + }, + { + "name": "session", + "in": "cookie", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Session" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectCreate" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Project" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + }, + "put": { + "tags": ["Projects"], + "summary": "Upsert Project", + "description": "Upsert a project.\nUpdates if a project with the same name already exists. Otherwise, creates a new project.", + "operationId": "upsert_project_api_v1_projects_put", + "security": [ + { + "HTTPBearer": [] + }, + { + "HTTPBearer": [] + } + ], + "parameters": [ + { + "name": "organization_id", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ], + "title": "Organization Id" + } + }, + { + "name": "session", + "in": "cookie", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Session" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectCreate" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Project" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/api/v1/projects/{project_id}": { + "delete": { + "tags": ["Projects"], + "summary": "Delete Project", + "description": "Delete a project by ID.", + "operationId": "delete_project_api_v1_projects__project_id__delete", + "security": [ + { + "HTTPBearer": [] + }, + { + "HTTPBearer": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + }, + { + "name": "session", + "in": "cookie", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Session" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + }, + "get": { + "tags": ["Projects"], + "summary": "Get Project", + "description": "Get a project by ID.", + "operationId": "get_project_api_v1_projects__project_id__get", + "security": [ + { + "HTTPBearer": [] + }, + { + "HTTPBearer": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + }, + { + "name": "session", + "in": "cookie", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Session" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Project" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + }, + "put": { + "tags": ["Projects"], + "summary": "Update Existing Project", + "description": "Update an existing project.", + "operationId": "update_existing_project_api_v1_projects__project_id__put", + "security": [ + { + "HTTPBearer": [] + }, + { + "HTTPBearer": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + }, + { + "name": "session", + "in": "cookie", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Session" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectUpdate" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Project" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/api/v1/projects/{project_id}/eval/dataset": { + "post": { + "tags": ["Projects"], + "summary": "Create Eval Dataset For Project", + "description": "Create a new eval dataset for a project.", + "operationId": "create_eval_dataset_for_project_api_v1_projects__project_id__eval_dataset_post", + "security": [ + { + "HTTPBearer": [] + }, + { + "HTTPBearer": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + }, + { + "name": "session", + "in": "cookie", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Session" + } + } ], "requestBody": { "required": true, @@ -10643,7 +11116,7 @@ }, "chunk_size": { "type": "integer", - "exclusiveMinimum": 0.0, + "exclusiveMinimum": 0, "title": "Chunk Size", "description": "Chunk size for the transformation.", "default": 1024 @@ -10664,20 +11137,17 @@ "model_name": { "type": "string", "title": "Model Name", - "description": "The name of the embedding model.", - "default": "unknown" + "description": "The name of the OpenAI embedding model.", + "default": "text-embedding-ada-002" }, "embed_batch_size": { "type": "integer", - "maximum": 2048.0, - "exclusiveMinimum": 0.0, + "maximum": 2048, + "exclusiveMinimum": 0, "title": "Embed Batch Size", "description": "The batch size for embedding calls.", "default": 10 }, - "callback_manager": { - "title": "Callback Manager" - }, "num_workers": { "anyOf": [ { @@ -10696,7 +11166,14 @@ "description": "Additional kwargs for the OpenAI API." }, "api_key": { - "type": "string", + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], "title": "Api Key", "description": "The OpenAI API key." }, @@ -10723,7 +11200,7 @@ "type": "number", "title": "Timeout", "description": "Timeout for each request.", - "default": 60.0, + "default": 60, "gte": 0 }, "default_headers": { @@ -10783,23 +11260,6 @@ "title": "Azure Deployment", "description": "The Azure deployment to use." }, - "azure_ad_token_provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Azure Ad Token Provider", - "description": "Callback function to provide Azure AD token." - }, - "use_azure_ad": { - "type": "boolean", - "title": "Use Azure Ad", - "description": "Indicates if Microsoft Entra ID (former Azure AD) is used for token authentication" - }, "class_name": { "type": "string", "title": "Class Name", @@ -10807,7 +11267,6 @@ } }, "type": "object", - "required": ["api_key", "use_azure_ad"], "title": "AzureOpenAIEmbedding" }, "AzureOpenAIEmbeddingConfig": { @@ -10915,19 +11374,17 @@ "model_name": { "type": "string", "title": "Model Name", - "description": "The modelId of the Bedrock model to use." + "description": "The modelId of the Bedrock model to use.", + "default": "amazon.titan-embed-text-v1" }, "embed_batch_size": { "type": "integer", - "maximum": 2048.0, - "exclusiveMinimum": 0.0, + "maximum": 2048, + "exclusiveMinimum": 0, "title": "Embed Batch Size", "description": "The batch size for embedding calls.", "default": 10 }, - "callback_manager": { - "title": "Callback Manager" - }, "num_workers": { "anyOf": [ { @@ -11000,29 +11457,9 @@ "title": "Region Name", "description": "AWS region name to use. Uses region configured in AWS CLI if not passed" }, - "botocore_session": { - "anyOf": [ - {}, - { - "type": "null" - } - ], - "title": "Botocore Session", - "description": "Use this Botocore session instead of creating a new default one." - }, - "botocore_config": { - "anyOf": [ - {}, - { - "type": "null" - } - ], - "title": "Botocore Config", - "description": "Custom configuration object to use instead of the default generated one." - }, "max_retries": { "type": "integer", - "exclusiveMinimum": 0.0, + "exclusiveMinimum": 0, "title": "Max Retries", "description": "The maximum number of API retries.", "default": 10 @@ -11031,7 +11468,7 @@ "type": "number", "title": "Timeout", "description": "The timeout for the Bedrock API request in seconds. It will be used for both connect and read timeouts.", - "default": 60.0 + "default": 60 }, "additional_kwargs": { "type": "object", @@ -11045,7 +11482,6 @@ } }, "type": "object", - "required": ["model_name"], "title": "BedrockEmbedding" }, "BedrockEmbeddingConfig": { @@ -11123,6 +11559,11 @@ "title": "Premium Mode", "default": false }, + "continuous_mode": { + "type": "boolean", + "title": "Continuous Mode", + "default": false + }, "gpt4o_api_key": { "type": "string", "title": "Gpt4O Api Key", @@ -11181,11 +11622,21 @@ "title": "Take Screenshot", "default": false }, + "is_formatting_instruction": { + "type": "boolean", + "title": "Is Formatting Instruction", + "default": true + }, "disable_ocr": { "type": "boolean", "title": "Disable Ocr", "default": false }, + "annotate_links": { + "type": "boolean", + "title": "Annotate Links", + "default": false + }, "disable_reconstruction": { "type": "boolean", "title": "Disable Reconstruction", @@ -11201,6 +11652,22 @@ "title": "Output S3 Path Prefix", "default": "" }, + "azure_openai_deployment_name": { + "type": "string", + "title": "Azure Openai Deployment Name" + }, + "azure_openai_endpoint": { + "type": "string", + "title": "Azure Openai Endpoint" + }, + "azure_openai_api_version": { + "type": "string", + "title": "Azure Openai Api Version" + }, + "azure_openai_key": { + "type": "string", + "title": "Azure Openai Key" + }, "file": { "anyOf": [ { @@ -11274,6 +11741,11 @@ "title": "Premium Mode", "default": false }, + "continuous_mode": { + "type": "boolean", + "title": "Continuous Mode", + "default": false + }, "gpt4o_api_key": { "type": "string", "title": "Gpt4O Api Key", @@ -11332,11 +11804,21 @@ "title": "Take Screenshot", "default": false }, + "is_formatting_instruction": { + "type": "boolean", + "title": "Is Formatting Instruction", + "default": true + }, "disable_ocr": { "type": "boolean", "title": "Disable Ocr", "default": false }, + "annotate_links": { + "type": "boolean", + "title": "Annotate Links", + "default": false + }, "disable_reconstruction": { "type": "boolean", "title": "Disable Reconstruction", @@ -11352,6 +11834,22 @@ "title": "Output S3 Path Prefix", "default": "" }, + "azure_openai_deployment_name": { + "type": "string", + "title": "Azure Openai Deployment Name" + }, + "azure_openai_endpoint": { + "type": "string", + "title": "Azure Openai Endpoint" + }, + "azure_openai_api_version": { + "type": "string", + "title": "Azure Openai Api Version" + }, + "azure_openai_key": { + "type": "string", + "title": "Azure Openai Key" + }, "file": { "anyOf": [ { @@ -11377,7 +11875,7 @@ "properties": { "chunk_size": { "type": "integer", - "exclusiveMinimum": 0.0, + "exclusiveMinimum": 0, "title": "Chunk Size", "default": 1024 }, @@ -11429,14 +11927,14 @@ }, "chunk_size": { "type": "integer", - "exclusiveMinimum": 0.0, + "exclusiveMinimum": 0, "title": "Chunk Size", "description": "The token chunk size for each chunk.", "default": 1024 }, "chunk_overlap": { "type": "integer", - "minimum": 0.0, + "minimum": 0, "title": "Chunk Overlap", "description": "The token overlap of each chunk when splitting.", "default": 200 @@ -11644,7 +12142,9 @@ "account_key": { "anyOf": [ { - "type": "string" + "type": "string", + "format": "password", + "writeOnly": true }, { "type": "null" @@ -11680,7 +12180,9 @@ "client_secret": { "anyOf": [ { - "type": "string" + "type": "string", + "format": "password", + "writeOnly": true }, { "type": "null" @@ -11710,7 +12212,9 @@ }, "search_service_api_key": { "type": "string", - "title": "Search Service Api Key" + "format": "password", + "title": "Search Service Api Key", + "writeOnly": true }, "search_service_endpoint": { "type": "string", @@ -11774,7 +12278,9 @@ "client_secret": { "anyOf": [ { - "type": "string" + "type": "string", + "format": "password", + "writeOnly": true }, { "type": "null" @@ -11825,7 +12331,9 @@ "developer_token": { "anyOf": [ { - "type": "string" + "type": "string", + "format": "password", + "writeOnly": true }, { "type": "null" @@ -11849,7 +12357,9 @@ "client_secret": { "anyOf": [ { - "type": "string" + "type": "string", + "format": "password", + "writeOnly": true }, { "type": "null" @@ -11892,91 +12402,6 @@ "required": ["authentication_mechanism"], "title": "CloudBoxDataSource" }, - "CloudChromaVectorStore": { - "properties": { - "supports_nested_metadata_filters": { - "type": "boolean", - "enum": [false], - "const": false, - "title": "Supports Nested Metadata Filters", - "default": false - }, - "collection_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Collection Name" - }, - "host": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Host" - }, - "port": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Port" - }, - "ssl": { - "type": "boolean", - "title": "Ssl" - }, - "headers": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Headers" - }, - "persist_dir": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Persist Dir" - }, - "collection_kwargs": { - "type": "object", - "title": "Collection Kwargs" - }, - "class_name": { - "type": "string", - "title": "Class Name", - "default": "CloudChromaVectorStore" - } - }, - "type": "object", - "required": ["ssl"], - "title": "CloudChromaVectorStore" - }, "CloudConfluenceDataSource": { "properties": { "server_url": { @@ -12004,7 +12429,9 @@ "api_token": { "anyOf": [ { - "type": "string" + "type": "string", + "format": "password", + "writeOnly": true }, { "type": "null" @@ -12219,7 +12646,9 @@ "api_token": { "anyOf": [ { - "type": "string" + "type": "string", + "format": "password", + "writeOnly": true }, { "type": "null" @@ -12300,7 +12729,9 @@ "token": { "anyOf": [ { - "type": "string" + "type": "string", + "format": "password", + "writeOnly": true }, { "type": "null" @@ -12341,7 +12772,9 @@ }, "mongodb_uri": { "type": "string", - "title": "Mongodb Uri" + "format": "password", + "title": "Mongodb Uri", + "writeOnly": true }, "db_name": { "type": "string", @@ -12388,8 +12821,10 @@ "properties": { "integration_token": { "type": "string", + "format": "password", "title": "Integration Token", - "description": "The integration token to use for authentication." + "description": "The integration token to use for authentication.", + "writeOnly": true }, "database_ids": { "anyOf": [ @@ -12463,8 +12898,10 @@ }, "client_secret": { "type": "string", + "format": "password", "title": "Client Secret", - "description": "The client secret to use for authentication." + "description": "The client secret to use for authentication.", + "writeOnly": true }, "tenant_id": { "type": "string", @@ -12497,7 +12934,10 @@ }, "api_key": { "type": "string", - "title": "Api Key" + "format": "password", + "title": "Api Key", + "description": "The API key for authenticating with Pinecone", + "writeOnly": true }, "index_name": { "type": "string", @@ -12555,7 +12995,9 @@ }, "password": { "type": "string", - "title": "Password" + "format": "password", + "title": "Password", + "writeOnly": true }, "port": { "type": "string", @@ -12627,7 +13069,9 @@ }, "api_key": { "type": "string", - "title": "Api Key" + "format": "password", + "title": "Api Key", + "writeOnly": true }, "max_retries": { "type": "integer", @@ -12683,7 +13127,9 @@ "aws_access_secret": { "anyOf": [ { - "type": "string" + "type": "string", + "format": "password", + "writeOnly": true }, { "type": "null" @@ -12783,8 +13229,10 @@ }, "client_secret": { "type": "string", + "format": "password", "title": "Client Secret", - "description": "The client secret to use for authentication." + "description": "The client secret to use for authentication.", + "writeOnly": true }, "tenant_id": { "type": "string", @@ -12805,8 +13253,10 @@ "properties": { "slack_token": { "type": "string", + "format": "password", "title": "Slack Token", - "description": "Slack Bot Token." + "description": "Slack Bot Token.", + "writeOnly": true }, "channel_ids": { "anyOf": [ @@ -12890,52 +13340,6 @@ "required": ["slack_token"], "title": "CloudSlackDataSource" }, - "CloudWeaviateVectorStore": { - "properties": { - "supports_nested_metadata_filters": { - "type": "boolean", - "enum": [false], - "const": false, - "title": "Supports Nested Metadata Filters", - "default": false - }, - "index_name": { - "type": "string", - "title": "Index Name" - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Url" - }, - "text_key": { - "type": "string", - "title": "Text Key" - }, - "auth_config": { - "type": "object", - "title": "Auth Config" - }, - "client_kwargs": { - "type": "object", - "title": "Client Kwargs" - }, - "class_name": { - "type": "string", - "title": "Class Name", - "default": "CloudWeaviateVectorStore" - } - }, - "type": "object", - "required": ["index_name", "text_key"], - "title": "CloudWeaviateVectorStore" - }, "CodeSplitter": { "properties": { "include_metadata": { @@ -12972,21 +13376,21 @@ }, "chunk_lines": { "type": "integer", - "exclusiveMinimum": 0.0, + "exclusiveMinimum": 0, "title": "Chunk Lines", "description": "The number of lines to include in each chunk.", "default": 40 }, "chunk_lines_overlap": { "type": "integer", - "exclusiveMinimum": 0.0, + "exclusiveMinimum": 0, "title": "Chunk Lines Overlap", "description": "How many lines of code each chunk overlaps with.", "default": 15 }, "max_chars": { "type": "integer", - "exclusiveMinimum": 0.0, + "exclusiveMinimum": 0, "title": "Max Chars", "description": "Maximum number of characters per chunk.", "default": 1500 @@ -13007,20 +13411,17 @@ "model_name": { "type": "string", "title": "Model Name", - "description": "The name of the embedding model.", - "default": "unknown" + "description": "The modelId of the Cohere model to use.", + "default": "embed-english-v3.0" }, "embed_batch_size": { "type": "integer", - "maximum": 2048.0, - "exclusiveMinimum": 0.0, + "maximum": 2048, + "exclusiveMinimum": 0, "title": "Embed Batch Size", "description": "The batch size for embedding calls.", "default": 10 }, - "callback_manager": { - "title": "Callback Manager" - }, "num_workers": { "anyOf": [ { @@ -13034,14 +13435,22 @@ "description": "The number of workers to use for async embedding calls." }, "api_key": { - "type": "string", + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], "title": "Api Key", "description": "The Cohere API key." }, "truncate": { "type": "string", "title": "Truncate", - "description": "Truncation type - START/ END/ NONE" + "description": "Truncation type - START/ END/ NONE", + "default": "END" }, "input_type": { "anyOf": [ @@ -13058,7 +13467,8 @@ "embedding_type": { "type": "string", "title": "Embedding Type", - "description": "Embedding type. If not provided float embedding_type is used when needed." + "description": "Embedding type. If not provided float embedding_type is used when needed.", + "default": "float" }, "class_name": { "type": "string", @@ -13067,9 +13477,8 @@ } }, "type": "object", - "required": ["api_key", "truncate", "embedding_type"], - "title": "CohereEmbedding", - "description": "CohereEmbedding uses the Cohere API to generate embeddings for text." + "required": ["api_key"], + "title": "CohereEmbedding" }, "CohereEmbeddingConfig": { "properties": { @@ -13092,11 +13501,9 @@ "ConfigurableDataSinkNames": { "type": "string", "enum": [ - "CHROMA", "PINECONE", "POSTGRES", "QDRANT", - "WEAVIATE", "AZUREAI_SEARCH", "MONGODB_ATLAS", "MILVUS" @@ -13159,14 +13566,7 @@ "SENTENCE_AWARE_NODE_PARSER", "TOKEN_AWARE_NODE_PARSER", "MARKDOWN_NODE_PARSER", - "MARKDOWN_ELEMENT_NODE_PARSER", - "OPENAI_EMBEDDING", - "AZURE_EMBEDDING", - "COHERE_EMBEDDING", - "BEDROCK_EMBEDDING", - "HUGGINGFACE_API_EMBEDDING", - "GEMINI_EMBEDDING", - "VERTEXAI_EMBEDDING" + "MARKDOWN_ELEMENT_NODE_PARSER" ], "title": "ConfigurableTransformationNames" }, @@ -13206,27 +13606,6 @@ }, { "$ref": "#/components/schemas/MarkdownElementNodeParser" - }, - { - "$ref": "#/components/schemas/OpenAIEmbedding" - }, - { - "$ref": "#/components/schemas/AzureOpenAIEmbedding" - }, - { - "$ref": "#/components/schemas/CohereEmbedding" - }, - { - "$ref": "#/components/schemas/BedrockEmbedding" - }, - { - "$ref": "#/components/schemas/HuggingFaceInferenceAPIEmbedding" - }, - { - "$ref": "#/components/schemas/GeminiEmbedding" - }, - { - "$ref": "#/components/schemas/ExtendVertexTextEmbedding" } ], "title": "Component", @@ -13298,9 +13677,6 @@ { "type": "object" }, - { - "$ref": "#/components/schemas/CloudChromaVectorStore" - }, { "$ref": "#/components/schemas/CloudPineconeVectorStore" }, @@ -13310,9 +13686,6 @@ { "$ref": "#/components/schemas/CloudQdrantVectorStore" }, - { - "$ref": "#/components/schemas/CloudWeaviateVectorStore" - }, { "$ref": "#/components/schemas/CloudAzureAISearchVectorStore" }, @@ -13349,10 +13722,7 @@ "component": { "anyOf": [ { - "type": "object" - }, - { - "$ref": "#/components/schemas/CloudChromaVectorStore" + "type": "object" }, { "$ref": "#/components/schemas/CloudPineconeVectorStore" @@ -13363,9 +13733,6 @@ { "$ref": "#/components/schemas/CloudQdrantVectorStore" }, - { - "$ref": "#/components/schemas/CloudWeaviateVectorStore" - }, { "$ref": "#/components/schemas/CloudAzureAISearchVectorStore" }, @@ -13428,9 +13795,6 @@ { "type": "object" }, - { - "$ref": "#/components/schemas/CloudChromaVectorStore" - }, { "$ref": "#/components/schemas/CloudPineconeVectorStore" }, @@ -13440,9 +13804,6 @@ { "$ref": "#/components/schemas/CloudQdrantVectorStore" }, - { - "$ref": "#/components/schemas/CloudWeaviateVectorStore" - }, { "$ref": "#/components/schemas/CloudAzureAISearchVectorStore" }, @@ -14331,122 +14692,6 @@ "title": "EvalQuestionResult", "description": "Schema for the result of an eval question job." }, - "ExtendVertexTextEmbedding": { - "properties": { - "model_name": { - "type": "string", - "title": "Model Name", - "description": "The name of the embedding model.", - "default": "unknown" - }, - "embed_batch_size": { - "type": "integer", - "maximum": 2048.0, - "exclusiveMinimum": 0.0, - "title": "Embed Batch Size", - "description": "The batch size for embedding calls.", - "default": 10 - }, - "callback_manager": { - "title": "Callback Manager" - }, - "num_workers": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Num Workers", - "description": "The number of workers to use for async embedding calls." - }, - "embed_mode": { - "$ref": "#/components/schemas/VertexEmbeddingMode", - "description": "The embedding mode to use." - }, - "additional_kwargs": { - "type": "object", - "title": "Additional Kwargs", - "description": "Additional kwargs for the Vertex." - }, - "client_email": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Client Email", - "description": "The client email to use when making Vertex API calls." - }, - "token_uri": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Token Uri", - "description": "The token uri to use when making Vertex API calls." - }, - "private_key_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Private Key Id", - "description": "The private key id to use when making Vertex API calls." - }, - "private_key": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Private Key", - "description": "The private key to use when making Vertex API calls." - }, - "project": { - "type": "string", - "title": "Project", - "description": "The default GCP project to use when making Vertex API calls." - }, - "location": { - "type": "string", - "title": "Location", - "description": "The default location to use when making API calls." - }, - "class_name": { - "type": "string", - "title": "Class Name", - "default": "ExtendVertexTextEmbedding" - } - }, - "type": "object", - "required": [ - "embed_mode", - "client_email", - "token_uri", - "private_key_id", - "private_key", - "project", - "location" - ], - "title": "ExtendVertexTextEmbedding" - }, "ExtractionJob": { "properties": { "id": { @@ -14887,7 +15132,7 @@ "anyOf": [ { "type": "integer", - "minimum": 0.0 + "minimum": 0 }, { "type": "null" @@ -14998,7 +15243,7 @@ "anyOf": [ { "type": "integer", - "minimum": 0.0 + "minimum": 0 }, { "type": "null" @@ -15086,11 +15331,11 @@ "type": "string", "enum": [ "==", - ">", - "<", + "\u003E", + "\u003C", "!=", - ">=", - "<=", + "\u003E=", + "\u003C=", "in", "nin", "any", @@ -15107,20 +15352,17 @@ "model_name": { "type": "string", "title": "Model Name", - "description": "The name of the embedding model.", - "default": "unknown" + "description": "The modelId of the Gemini model to use.", + "default": "models/embedding-001" }, "embed_batch_size": { "type": "integer", - "maximum": 2048.0, - "exclusiveMinimum": 0.0, + "maximum": 2048, + "exclusiveMinimum": 0, "title": "Embed Batch Size", "description": "The batch size for embedding calls.", "default": 10 }, - "callback_manager": { - "title": "Callback Manager" - }, "num_workers": { "anyOf": [ { @@ -15171,6 +15413,30 @@ "title": "Api Key", "description": "API key to access the model. Defaults to None." }, + "api_base": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Api Base", + "description": "API base to access the model. Defaults to None." + }, + "transport": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Transport", + "description": "Transport to access the model. Defaults to None." + }, "class_name": { "type": "string", "title": "Class Name", @@ -15178,8 +15444,7 @@ } }, "type": "object", - "title": "GeminiEmbedding", - "description": "Google Gemini embeddings.\n\nArgs:\n model_name (str): Model for embedding.\n Defaults to \"models/embedding-001\".\n\n api_key (Optional[str]): API key to access the model. Defaults to None.\n api_base (Optional[str]): API base to access the model. Defaults to Official Base.\n transport (Optional[str]): Transport to access the model." + "title": "GeminiEmbedding" }, "GeminiEmbeddingConfig": { "properties": { @@ -15228,15 +15493,12 @@ }, "embed_batch_size": { "type": "integer", - "maximum": 2048.0, - "exclusiveMinimum": 0.0, + "maximum": 2048, + "exclusiveMinimum": 0, "title": "Embed Batch Size", "description": "The batch size for embedding calls.", "default": 10 }, - "callback_manager": { - "title": "Callback Manager" - }, "num_workers": { "anyOf": [ { @@ -15361,8 +15623,7 @@ } }, "type": "object", - "title": "HuggingFaceInferenceAPIEmbedding", - "description": "Wrapper on the Hugging Face's Inference API for embeddings.\n\nOverview of the design:\n- Uses the feature extraction task: https://huggingface.co/tasks/feature-extraction" + "title": "HuggingFaceInferenceAPIEmbedding" }, "HuggingFaceInferenceAPIEmbeddingConfig": { "properties": { @@ -15596,6 +15857,11 @@ "title": "Disable Ocr", "default": false }, + "annotate_links": { + "type": "boolean", + "title": "Annotate Links", + "default": false + }, "disable_reconstruction": { "type": "boolean", "title": "Disable Reconstruction", @@ -15614,7 +15880,7 @@ "fast_mode": { "type": "boolean", "title": "Fast Mode", - "default": true + "default": false }, "skip_diagonal_text": { "type": "boolean", @@ -15692,11 +15958,21 @@ "title": "Take Screenshot", "default": false }, + "is_formatting_instruction": { + "type": "boolean", + "title": "Is Formatting Instruction", + "default": true + }, "premium_mode": { "type": "boolean", "title": "Premium Mode", "default": false }, + "continuous_mode": { + "type": "boolean", + "title": "Continuous Mode", + "default": false + }, "s3_input_path": { "type": "string", "title": "S3 Input Path", @@ -15706,6 +15982,50 @@ "type": "string", "title": "S3 Output Path Prefix", "default": "" + }, + "azure_openai_deployment_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Azure Openai Deployment Name" + }, + "azure_openai_endpoint": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Azure Openai Endpoint" + }, + "azure_openai_api_version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Azure Openai Api Version" + }, + "azure_openai_key": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Azure Openai Key" } }, "type": "object", @@ -16419,20 +16739,17 @@ "model_name": { "type": "string", "title": "Model Name", - "description": "The name of the embedding model.", - "default": "unknown" + "description": "The name of the OpenAI embedding model.", + "default": "text-embedding-ada-002" }, "embed_batch_size": { "type": "integer", - "maximum": 2048.0, - "exclusiveMinimum": 0.0, + "maximum": 2048, + "exclusiveMinimum": 0, "title": "Embed Batch Size", "description": "The batch size for embedding calls.", "default": 10 }, - "callback_manager": { - "title": "Callback Manager" - }, "num_workers": { "anyOf": [ { @@ -16451,7 +16768,14 @@ "description": "Additional kwargs for the OpenAI API." }, "api_key": { - "type": "string", + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], "title": "Api Key", "description": "The OpenAI API key." }, @@ -16492,7 +16816,7 @@ "type": "number", "title": "Timeout", "description": "Timeout for each request.", - "default": 60.0, + "default": 60, "gte": 0 }, "default_headers": { @@ -16535,9 +16859,7 @@ } }, "type": "object", - "required": ["api_key"], - "title": "OpenAIEmbedding", - "description": "OpenAI class for embeddings.\n\nArgs:\n mode (str): Mode for embedding.\n Defaults to OpenAIEmbeddingMode.TEXT_SEARCH_MODE.\n Options are:\n\n - OpenAIEmbeddingMode.SIMILARITY_MODE\n - OpenAIEmbeddingMode.TEXT_SEARCH_MODE\n\n model (str): Model for embedding.\n Defaults to OpenAIEmbeddingModelType.TEXT_EMBED_ADA_002.\n Options are:\n\n - OpenAIEmbeddingModelType.DAVINCI\n - OpenAIEmbeddingModelType.CURIE\n - OpenAIEmbeddingModelType.BABBAGE\n - OpenAIEmbeddingModelType.ADA\n - OpenAIEmbeddingModelType.TEXT_EMBED_ADA_002" + "title": "OpenAIEmbedding" }, "OpenAIEmbeddingConfig": { "properties": { @@ -16644,7 +16966,7 @@ "properties": { "page_index": { "type": "integer", - "minimum": 0.0, + "minimum": 0, "title": "Page Index", "description": "The index of the page for which the screenshot is taken (0-indexed)" }, @@ -16656,7 +16978,7 @@ }, "image_size": { "type": "integer", - "minimum": 0.0, + "minimum": 0, "title": "Image Size", "description": "The size of the image in bytes" } @@ -17040,6 +17362,70 @@ "title": "PartitionNames", "description": "Enum for dataset partition names." }, + "Permission": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id", + "description": "Unique identifier" + }, + "created_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Created At", + "description": "Creation datetime" + }, + "updated_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Updated At", + "description": "Update datetime" + }, + "name": { + "type": "string", + "maxLength": 3000, + "minLength": 1, + "title": "Name", + "description": "A name for the permission." + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description", + "description": "A description for the permission." + }, + "access": { + "type": "boolean", + "title": "Access", + "description": "Whether the permission is granted or not." + } + }, + "type": "object", + "required": ["id", "name", "description", "access"], + "title": "Permission", + "description": "Schema for a permission." + }, "Pipeline": { "properties": { "id": { @@ -17741,7 +18127,7 @@ "anyOf": [ { "type": "integer", - "minimum": 0.0 + "minimum": 0 }, { "type": "null" @@ -18295,8 +18681,8 @@ "anyOf": [ { "type": "integer", - "maximum": 100.0, - "minimum": 1.0 + "maximum": 100, + "minimum": 1 }, { "type": "null" @@ -18310,8 +18696,8 @@ "anyOf": [ { "type": "integer", - "maximum": 100.0, - "minimum": 1.0 + "maximum": 100, + "minimum": 1 }, { "type": "null" @@ -18337,8 +18723,8 @@ "anyOf": [ { "type": "integer", - "maximum": 100.0, - "minimum": 1.0 + "maximum": 100, + "minimum": 1 }, { "type": "null" @@ -18352,8 +18738,8 @@ "anyOf": [ { "type": "number", - "maximum": 1.0, - "minimum": 0.0 + "maximum": 1, + "minimum": 0 }, { "type": "null" @@ -18377,8 +18763,8 @@ "anyOf": [ { "type": "integer", - "maximum": 5.0, - "minimum": 1.0 + "maximum": 5, + "minimum": 1 }, { "type": "null" @@ -18391,7 +18777,7 @@ "retrieval_mode": { "$ref": "#/components/schemas/RetrievalMode", "description": "The retrieval mode for the query.", - "default": "chunks" + "default": "auto_routed" }, "retrieve_image_nodes": { "type": "boolean", @@ -18688,7 +19074,12 @@ }, "RetrievalMode": { "type": "string", - "enum": ["chunks", "files_via_metadata", "files_via_content"], + "enum": [ + "chunks", + "files_via_metadata", + "files_via_content", + "auto_routed" + ], "title": "RetrievalMode" }, "RetrievalParams": { @@ -18697,8 +19088,8 @@ "anyOf": [ { "type": "integer", - "maximum": 100.0, - "minimum": 1.0 + "maximum": 100, + "minimum": 1 }, { "type": "null" @@ -18712,8 +19103,8 @@ "anyOf": [ { "type": "integer", - "maximum": 100.0, - "minimum": 1.0 + "maximum": 100, + "minimum": 1 }, { "type": "null" @@ -18739,8 +19130,8 @@ "anyOf": [ { "type": "integer", - "maximum": 100.0, - "minimum": 1.0 + "maximum": 100, + "minimum": 1 }, { "type": "null" @@ -18754,8 +19145,8 @@ "anyOf": [ { "type": "number", - "maximum": 1.0, - "minimum": 0.0 + "maximum": 1, + "minimum": 0 }, { "type": "null" @@ -18779,8 +19170,8 @@ "anyOf": [ { "type": "integer", - "maximum": 5.0, - "minimum": 1.0 + "maximum": 5, + "minimum": 1 }, { "type": "null" @@ -18793,7 +19184,7 @@ "retrieval_mode": { "$ref": "#/components/schemas/RetrievalMode", "description": "The retrieval mode for the query.", - "default": "chunks" + "default": "auto_routed" }, "retrieve_image_nodes": { "type": "boolean", @@ -18849,6 +19240,14 @@ "title": "Retrieval Latency", "description": "The end-to-end latency for retrieval and reranking." }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "title": "Metadata", + "description": "Metadata associated with the retrieval execution" + }, "class_name": { "type": "string", "title": "Class Name", @@ -18860,6 +19259,74 @@ "title": "RetrieveResults", "description": "Schema for the result of an retrieval execution." }, + "Role": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id", + "description": "Unique identifier" + }, + "created_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Created At", + "description": "Creation datetime" + }, + "updated_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Updated At", + "description": "Update datetime" + }, + "name": { + "type": "string", + "maxLength": 3000, + "minLength": 1, + "title": "Name", + "description": "A name for the role." + }, + "organization_id": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ], + "title": "Organization Id", + "description": "The organization's ID." + }, + "permissions": { + "items": { + "$ref": "#/components/schemas/Permission" + }, + "type": "array", + "title": "Permissions", + "description": "The actual permissions of the role." + } + }, + "type": "object", + "required": ["id", "name", "organization_id", "permissions"], + "title": "Role", + "description": "Schema for a role." + }, "SemanticChunkingConfig": { "properties": { "mode": { @@ -18887,7 +19354,7 @@ "properties": { "chunk_size": { "type": "integer", - "exclusiveMinimum": 0.0, + "exclusiveMinimum": 0, "title": "Chunk Size", "default": 1024 }, @@ -18949,14 +19416,14 @@ }, "chunk_size": { "type": "integer", - "exclusiveMinimum": 0.0, + "exclusiveMinimum": 0, "title": "Chunk Size", "description": "The token chunk size for each chunk.", "default": 1024 }, "chunk_overlap": { "type": "integer", - "minimum": 0.0, + "minimum": 0, "title": "Chunk Overlap", "description": "The token overlap of each chunk when splitting.", "default": 200 @@ -19179,7 +19646,7 @@ "class_name": { "type": "string", "title": "Class Name", - "default": "NodeWithScore" + "default": "TextNodeWithScore" } }, "type": "object", @@ -19191,7 +19658,7 @@ "properties": { "chunk_size": { "type": "integer", - "exclusiveMinimum": 0.0, + "exclusiveMinimum": 0, "title": "Chunk Size", "default": 1024 }, @@ -19248,14 +19715,14 @@ }, "chunk_size": { "type": "integer", - "exclusiveMinimum": 0.0, + "exclusiveMinimum": 0, "title": "Chunk Size", "description": "The token chunk size for each chunk.", "default": 1024 }, "chunk_overlap": { "type": "integer", - "minimum": 0.0, + "minimum": 0, "title": "Chunk Overlap", "description": "The token overlap of each chunk when splitting.", "default": 20 @@ -19375,10 +19842,18 @@ ], "title": "Invited By User Email", "description": "The email address of the user who added the user to the organization." + }, + "roles": { + "items": { + "$ref": "#/components/schemas/UserOrganizationRole" + }, + "type": "array", + "title": "Roles", + "description": "The roles of the user in the organization." } }, "type": "object", - "required": ["id", "email", "organization_id"], + "required": ["id", "email", "organization_id", "roles"], "title": "UserOrganization", "description": "Schema for a user's membership to an organization." }, @@ -19408,9 +19883,39 @@ ], "title": "Email", "description": "The user's email address." + }, + "project_ids": { + "anyOf": [ + { + "items": { + "type": "string", + "format": "uuid" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Project Ids", + "description": "The project IDs to add the user to." + }, + "role_id": { + "anyOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "type": "null" + } + ], + "title": "Role Id", + "description": "The role ID to assign to the user." } }, "type": "object", + "required": ["project_ids"], "title": "UserOrganizationCreate", "description": "Schema for creating a user's membership to an organization." }, @@ -19446,6 +19951,92 @@ "title": "UserOrganizationDelete", "description": "Schema for deleting a user's membership to an organization." }, + "UserOrganizationRole": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id", + "description": "Unique identifier" + }, + "created_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Created At", + "description": "Creation datetime" + }, + "updated_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Updated At", + "description": "Update datetime" + }, + "user_id": { + "type": "string", + "title": "User Id", + "description": "The user's ID." + }, + "organization_id": { + "type": "string", + "format": "uuid", + "title": "Organization Id", + "description": "The organization's ID." + }, + "role_id": { + "type": "string", + "format": "uuid", + "title": "Role Id", + "description": "The role's ID." + }, + "role": { + "$ref": "#/components/schemas/Role", + "description": "The role." + } + }, + "type": "object", + "required": ["id", "user_id", "organization_id", "role_id", "role"], + "title": "UserOrganizationRole", + "description": "Schema for a user's role in an organization." + }, + "UserOrganizationRoleCreate": { + "properties": { + "user_id": { + "type": "string", + "title": "User Id", + "description": "The user's ID." + }, + "organization_id": { + "type": "string", + "format": "uuid", + "title": "Organization Id", + "description": "The organization's ID." + }, + "role_id": { + "type": "string", + "format": "uuid", + "title": "Role Id", + "description": "The role's ID." + } + }, + "type": "object", + "required": ["user_id", "organization_id", "role_id"], + "title": "UserOrganizationRoleCreate", + "description": "Schema for creating a user's role in an organization." + }, "ValidationError": { "properties": { "loc": { @@ -19486,7 +20077,7 @@ "default": "VERTEXAI_EMBEDDING" }, "component": { - "$ref": "#/components/schemas/ExtendVertexTextEmbedding", + "$ref": "#/components/schemas/VertexTextEmbedding", "description": "Configuration for the VertexAI embedding model." } }, @@ -19503,7 +20094,120 @@ "retrieval" ], "title": "VertexEmbeddingMode", - "description": "VertexAI embedding mode.\n\nAttributes:\n DEFAULT_MODE (str): The default embedding mode, for older models before August 2023,\n that does not support task_type\n CLASSIFICATION_MODE (str): Optimizes embeddings for classification tasks.\n CLUSTERING_MODE (str): Optimizes embeddings for clustering tasks.\n SEMANTIC_SIMILARITY_MODE (str): Optimizes embeddings for tasks that require assessments of semantic similarity.\n RETRIEVAL_MODE (str): Optimizes embeddings for retrieval tasks, including search and document retrieval." + "description": "Copied from llama_index.embeddings.vertex.base.VertexEmbeddingMode\nsince importing llama_index.embeddings.vertex.base incurs a lot of memory usage." + }, + "VertexTextEmbedding": { + "properties": { + "model_name": { + "type": "string", + "title": "Model Name", + "description": "The modelId of the VertexAI model to use.", + "default": "textembedding-gecko@003" + }, + "embed_batch_size": { + "type": "integer", + "maximum": 2048, + "exclusiveMinimum": 0, + "title": "Embed Batch Size", + "description": "The batch size for embedding calls.", + "default": 10 + }, + "num_workers": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Num Workers", + "description": "The number of workers to use for async embedding calls." + }, + "location": { + "type": "string", + "title": "Location", + "description": "The default location to use when making API calls." + }, + "project": { + "type": "string", + "title": "Project", + "description": "The default GCP project to use when making Vertex API calls." + }, + "embed_mode": { + "$ref": "#/components/schemas/VertexEmbeddingMode", + "description": "The embedding mode to use.", + "default": "retrieval" + }, + "additional_kwargs": { + "type": "object", + "title": "Additional Kwargs", + "description": "Additional kwargs for the Vertex." + }, + "client_email": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Client Email", + "description": "The client email for the VertexAI credentials." + }, + "token_uri": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Token Uri", + "description": "The token URI for the VertexAI credentials." + }, + "private_key_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Private Key Id", + "description": "The private key ID for the VertexAI credentials." + }, + "private_key": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Private Key", + "description": "The private key for the VertexAI credentials." + }, + "class_name": { + "type": "string", + "title": "Class Name", + "default": "VertexTextEmbedding" + } + }, + "type": "object", + "required": [ + "location", + "project", + "client_email", + "token_uri", + "private_key_id", + "private_key" + ], + "title": "VertexTextEmbedding" } }, "securitySchemes": { diff --git a/packages/cloud/package.json b/packages/cloud/package.json index 38d31e93e..b7cf8b512 100644 --- a/packages/cloud/package.json +++ b/packages/cloud/package.json @@ -4,8 +4,9 @@ "type": "module", "license": "MIT", "scripts": { - "generate": "pnpx @hey-api/openapi-ts@0.53.0", - "build": "pnpm run generate && bunchee" + "generate": "pnpx @hey-api/openapi-ts@0.53.11", + "build": "pnpm run generate && bunchee", + "dev": "bunchee --watch" }, "files": [ "openapi.json", @@ -49,8 +50,8 @@ "directory": "packages/cloud" }, "devDependencies": { - "@hey-api/client-fetch": "^0.2.4", - "@hey-api/openapi-ts": "^0.53.0", + "@hey-api/client-fetch": "^0.4.2", + "@hey-api/openapi-ts": "^0.53.11", "@llamaindex/core": "workspace:*", "@llamaindex/env": "workspace:*", "bunchee": "5.5.1" diff --git a/packages/cloud/src/reader.ts b/packages/cloud/src/reader.ts index fad945b09..165aacec8 100644 --- a/packages/cloud/src/reader.ts +++ b/packages/cloud/src/reader.ts @@ -84,6 +84,13 @@ export class LlamaParseReader extends FileReader { disableReconstruction?: boolean | undefined; inputS3Path?: string | undefined; outputS3PathPrefix?: string | undefined; + continuousMode?: boolean | undefined; + isFormattingInstruction?: boolean | undefined; + annotateLinks?: boolean | undefined; + azureOpenaiDeploymentName?: string | undefined; + azureOpenaiEndpoint?: string | undefined; + azureOpenaiApiVersion?: string | undefined; + azureOpenaiKey?: string | undefined; // numWorkers is implemented in SimpleDirectoryReader stdout?: WriteStream | undefined; @@ -144,13 +151,19 @@ export class LlamaParseReader extends FileReader { } // Create a job for the LlamaParse API - private async createJob(data: Uint8Array): Promise<string> { + async #createJob(data: Uint8Array, filename?: string): Promise<string> { if (this.verbose) { console.log("Started uploading the file"); } + // todo: remove Blob usage when we drop Node.js 18 support + const file: File | Blob = + globalThis.File && filename + ? new File([data], filename) + : new Blob([data]); + const body = { - file: new Blob([data]), + file, language: this.language, parsing_instruction: this.parsingInstruction, skip_diagonal_text: this.skipDiagonalText, @@ -175,6 +188,13 @@ export class LlamaParseReader extends FileReader { disable_reconstruction: this.disableReconstruction, input_s3_path: this.inputS3Path, output_s3_path_prefix: this.outputS3PathPrefix, + continuous_mode: this.continuousMode, + is_formatting_instruction: this.isFormattingInstruction, + annotate_links: this.annotateLinks, + azure_openai_deployment_name: this.azureOpenaiDeploymentName, + azure_openai_endpoint: this.azureOpenaiEndpoint, + azure_openai_api_version: this.azureOpenaiApiVersion, + azure_openai_key: this.azureOpenaiKey, } satisfies { [Key in keyof Body_upload_file_api_v1_parsing_upload_post]-?: | Body_upload_file_api_v1_parsing_upload_post[Key] @@ -286,10 +306,14 @@ export class LlamaParseReader extends FileReader { * To be used with resultType = "text" and "markdown" * * @param {Uint8Array} fileContent - The content of the file to be loaded. + * @param {string} filename - The name of the file to be loaded. * @return {Promise<Document[]>} A Promise object that resolves to an array of Document objects. */ - async loadDataAsContent(fileContent: Uint8Array): Promise<Document[]> { - return this.createJob(fileContent) + async loadDataAsContent( + fileContent: Uint8Array, + filename?: string, + ): Promise<Document[]> { + return this.#createJob(fileContent, filename) .then(async (jobId) => { if (this.verbose) { console.log(`Started parsing the file under job id ${jobId}`); @@ -312,7 +336,9 @@ export class LlamaParseReader extends FileReader { }) .catch((error) => { if (this.ignoreErrors) { - console.warn(`Error while parsing the file: ${error.message}`); + console.warn( + `Error while parsing the file: ${error.message ?? error.detail}`, + ); return []; } else { throw error; @@ -336,7 +362,10 @@ export class LlamaParseReader extends FileReader { ? await fs.readFile(filePathOrContent) : filePathOrContent; // Creates a job for the file - jobId = await this.createJob(data); + jobId = await this.#createJob( + data, + isFilePath ? path.basename(filePathOrContent) : undefined, + ); if (this.verbose) { console.log(`Started parsing the file under job id ${jobId}`); } diff --git a/packages/core/src/schema/type.ts b/packages/core/src/schema/type.ts index 4c7271d90..3df194fb5 100644 --- a/packages/core/src/schema/type.ts +++ b/packages/core/src/schema/type.ts @@ -42,13 +42,13 @@ export interface BaseReader { export abstract class FileReader implements BaseReader { abstract loadDataAsContent( fileContent: Uint8Array, - fileName?: string, + filename?: string, ): Promise<Document[]>; async loadData(filePath: string): Promise<Document[]> { const fileContent = await fs.readFile(filePath); - const fileName = path.basename(filePath); - const docs = await this.loadDataAsContent(fileContent, fileName); + const filename = path.basename(filePath); + const docs = await this.loadDataAsContent(fileContent, filename); docs.forEach(FileReader.addMetaData(filePath)); return docs; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7dbff0c97..a6fc3fe83 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -345,11 +345,11 @@ importers: packages/cloud: devDependencies: '@hey-api/client-fetch': - specifier: ^0.2.4 - version: 0.2.4 + specifier: ^0.4.2 + version: 0.4.2 '@hey-api/openapi-ts': - specifier: ^0.53.0 - version: 0.53.0(typescript@5.6.3) + specifier: ^0.53.11 + version: 0.53.11(typescript@5.6.3) '@llamaindex/core': specifier: workspace:* version: link:../core @@ -3314,11 +3314,11 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - '@hey-api/client-fetch@0.2.4': - resolution: {integrity: sha512-SGTVAVw3PlKDLw+IyhNhb/jCH3P1P2xJzLxA8Kyz1g95HrkYOJdRpl9F5I7LLwo9aCIB7nwR2NrSeX7QaQD7vQ==} + '@hey-api/client-fetch@0.4.2': + resolution: {integrity: sha512-9BqcLTjsM3rWbads3afJkELS86vK7EqJvYgT429EVS9IO/kN75HEka3Ay/k142xCHSfXOuOShMdDam3nbG8wVA==} - '@hey-api/openapi-ts@0.53.0': - resolution: {integrity: sha512-5pDd/s0yHJniruYyKYmEsAMbY10Nh/EwhHlgIrdpQ1KZWQdyTbH/tn8rVHT5Mopr1dMuYX0kq0TzpjcNlvrROQ==} + '@hey-api/openapi-ts@0.53.11': + resolution: {integrity: sha512-PaO+o0jDhfHVS5SjtonP5CzP/NYoW8dVZUn8WthSgzpgPts8AiWYXplOyk5uEnM4ZxbkZbeTiREwaNLnJmXlTQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -5941,10 +5941,10 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - c12@1.11.1: - resolution: {integrity: sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==} + c12@2.0.1: + resolution: {integrity: sha512-Z4JgsKXHG37C6PYUtIxCfLJZvo6FyhHJoClwwb9ftUkLpPSkuYqn6Tr+vnaN8hymm0kIbcg6Ey3kv/Q71k5w/A==} peerDependencies: - magicast: ^0.3.4 + magicast: ^0.3.5 peerDependenciesMeta: magicast: optional: true @@ -6077,6 +6077,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -8389,6 +8393,10 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true + jiti@2.3.3: + resolution: {integrity: sha512-EX4oNDwcXSivPrw2qKH2LB5PoFxEvgtv2JgwW0bU858HoLQ+kutSvjLMUqBd0PeJYEinLWhoI9Ol0eYMqj/wNQ==} + hasBin: true + joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} @@ -9462,9 +9470,6 @@ packages: obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - ohash@1.1.3: - resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} - ohash@1.1.4: resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} @@ -10522,6 +10527,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + reading-time@1.5.0: resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} @@ -16694,12 +16703,12 @@ snapshots: dependencies: '@hapi/hoek': 9.3.0 - '@hey-api/client-fetch@0.2.4': {} + '@hey-api/client-fetch@0.4.2': {} - '@hey-api/openapi-ts@0.53.0(typescript@5.6.3)': + '@hey-api/openapi-ts@0.53.11(typescript@5.6.3)': dependencies: '@apidevtools/json-schema-ref-parser': 11.7.0 - c12: 1.11.1 + c12: 2.0.1 commander: 12.1.0 handlebars: 4.7.8 typescript: 5.6.3 @@ -19886,16 +19895,16 @@ snapshots: bytes@3.1.2: {} - c12@1.11.1: + c12@2.0.1: dependencies: - chokidar: 3.6.0 + chokidar: 4.0.1 confbox: 0.1.7 defu: 6.1.4 dotenv: 16.4.5 giget: 1.2.3 - jiti: 1.21.6 + jiti: 2.3.3 mlly: 1.7.1 - ohash: 1.1.3 + ohash: 1.1.4 pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.2.0 @@ -20054,6 +20063,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + chownr@1.1.4: {} chownr@2.0.0: {} @@ -21121,7 +21134,7 @@ snapshots: '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0))(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) eslint-plugin-react: 7.35.0(eslint@8.57.0) @@ -21169,25 +21182,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0))(eslint@8.57.0): - dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.3.7 - enhanced-resolve: 5.17.1 - eslint: 8.57.0 - eslint-module-utils: 2.8.2(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) - fast-glob: 3.3.2 - get-tsconfig: 4.8.0 - is-bun-module: 1.1.0 - is-glob: 4.0.3 - optionalDependencies: - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: '@nolyfill/is-core-module': 1.0.39 @@ -21207,17 +21201,6 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.2(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2) - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0))(eslint@8.57.0) - transitivePeerDependencies: - - supports-color - eslint-module-utils@2.8.2(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 @@ -21239,7 +21222,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.2(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.8.2(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -22924,6 +22907,8 @@ snapshots: jiti@1.21.6: {} + jiti@2.3.3: {} + joi@17.13.3: dependencies: '@hapi/hoek': 9.3.0 @@ -24408,8 +24393,6 @@ snapshots: obuf@1.1.2: {} - ohash@1.1.3: {} - ohash@1.1.4: {} ollama@0.5.9: @@ -25552,6 +25535,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.0.2: {} + reading-time@1.5.0: {} rechoir@0.6.2: -- GitLab