Compare commits

...

10 Commits

Author SHA1 Message Date
rmeng
295be1ab1c relax half req 2024-05-02 13:46:31 -04:00
rmeng
91f980ec5d chore: upgrade to lance 0.10.18 2024-05-02 13:42:18 -04:00
Cory Grinstead
71323a064a chore(nodejs): update docs on "table.ts" (#1255)
closes https://github.com/lancedb/lancedb/issues/1007
2024-05-01 23:00:22 -05:00
asmith26
df48454b70 Update embedding_functions.md (#1250)
`clip.ndims` seems to be a function (I installed with `pip install
open_clip_torch`).
2024-05-01 09:33:42 -07:00
Lance Release
6603414885 Updating package-lock.json 2024-04-30 20:57:12 +00:00
Lance Release
c256f6c502 Updating package-lock.json 2024-04-30 19:58:49 +00:00
Lance Release
cc03f90379 Updating package-lock.json 2024-04-30 19:21:48 +00:00
Lance Release
975da09b02 Bump version: 0.4.17 → 0.4.18 2024-04-30 19:21:37 +00:00
Cory Grinstead
c32e17b497 chore(nodejs): remove "optionalDependencies" (#1252)
closes #1248 

the binding specific `optionalDependencies` are added automatically as
part of the `prepublishOnly` hook, and they are not supposed to be
committed to `package.json`.



--- 

npm lifecycle scripts: 
https://docs.npmjs.com/cli/v7/using-npm/scripts#life-cycle-scripts
2024-04-30 10:51:10 -05:00
Ryan Green
0528abdf97 fix: fix path on remote create_table and check for error response (#1244) 2024-04-28 11:33:05 -02:30
16 changed files with 146 additions and 165 deletions

View File

@@ -1,5 +1,5 @@
[bumpversion] [bumpversion]
current_version = 0.4.17 current_version = 0.4.18
commit = True commit = True
message = Bump version: {current_version} → {new_version} message = Bump version: {current_version} → {new_version}
tag = True tag = True

View File

@@ -14,10 +14,10 @@ keywords = ["lancedb", "lance", "database", "vector", "search"]
categories = ["database-implementations"] categories = ["database-implementations"]
[workspace.dependencies] [workspace.dependencies]
lance = { "version" = "=0.10.16", "features" = ["dynamodb"] } lance = { "version" = "=0.10.18", "features" = ["dynamodb"] }
lance-index = { "version" = "=0.10.16" } lance-index = { "version" = "=0.10.18" }
lance-linalg = { "version" = "=0.10.16" } lance-linalg = { "version" = "=0.10.18" }
lance-testing = { "version" = "=0.10.16" } lance-testing = { "version" = "=0.10.18" }
# Note that this one does not include pyarrow # Note that this one does not include pyarrow
arrow = { version = "51.0", optional = false } arrow = { version = "51.0", optional = false }
arrow-array = "51.0" arrow-array = "51.0"
@@ -29,7 +29,7 @@ arrow-arith = "51.0"
arrow-cast = "51.0" arrow-cast = "51.0"
async-trait = "0" async-trait = "0"
chrono = "0.4.35" chrono = "0.4.35"
half = { "version" = "=2.3.1", default-features = false, features = [ half = { "version" = "2.4.1", default-features = false, features = [
"num-traits", "num-traits",
] } ] }
futures = "0" futures = "0"

View File

@@ -46,7 +46,7 @@ For this purpose, LanceDB introduces an **embedding functions API**, that allow
```python ```python
class Pets(LanceModel): class Pets(LanceModel):
vector: Vector(clip.ndims) = clip.VectorField() vector: Vector(clip.ndims()) = clip.VectorField()
image_uri: str = clip.SourceField() image_uri: str = clip.SourceField()
``` ```
@@ -149,7 +149,7 @@ You can also use the integration for adding utility operations in the schema. Fo
```python ```python
class Pets(LanceModel): class Pets(LanceModel):
vector: Vector(clip.ndims) = clip.VectorField() vector: Vector(clip.ndims()) = clip.VectorField()
image_uri: str = clip.SourceField() image_uri: str = clip.SourceField()
@property @property
@@ -166,4 +166,4 @@ rs[2].image
![](../assets/dog_clip_output.png) ![](../assets/dog_clip_output.png)
Now that you have the basic idea about LanceDB embedding functions and the embedding function registry, Now that you have the basic idea about LanceDB embedding functions and the embedding function registry,
let's dive deeper into defining your own [custom functions](./custom_embedding_function.md). let's dive deeper into defining your own [custom functions](./custom_embedding_function.md).

74
node/package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "vectordb", "name": "vectordb",
"version": "0.4.17", "version": "0.4.18",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "vectordb", "name": "vectordb",
"version": "0.4.17", "version": "0.4.18",
"cpu": [ "cpu": [
"x64", "x64",
"arm64" "arm64"
@@ -52,11 +52,11 @@
"uuid": "^9.0.0" "uuid": "^9.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@lancedb/vectordb-darwin-arm64": "0.4.17", "@lancedb/vectordb-darwin-arm64": "0.4.18",
"@lancedb/vectordb-darwin-x64": "0.4.17", "@lancedb/vectordb-darwin-x64": "0.4.18",
"@lancedb/vectordb-linux-arm64-gnu": "0.4.17", "@lancedb/vectordb-linux-arm64-gnu": "0.4.18",
"@lancedb/vectordb-linux-x64-gnu": "0.4.17", "@lancedb/vectordb-linux-x64-gnu": "0.4.18",
"@lancedb/vectordb-win32-x64-msvc": "0.4.17" "@lancedb/vectordb-win32-x64-msvc": "0.4.18"
}, },
"peerDependencies": { "peerDependencies": {
"@apache-arrow/ts": "^14.0.2", "@apache-arrow/ts": "^14.0.2",
@@ -333,6 +333,66 @@
"@jridgewell/sourcemap-codec": "^1.4.10" "@jridgewell/sourcemap-codec": "^1.4.10"
} }
}, },
"node_modules/@lancedb/vectordb-darwin-arm64": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.4.18.tgz",
"integrity": "sha512-CzJbkBKz30U0ocFFhRLV3ZPRZh3MtAkOmFr76jxRWeXLPM/JcLvhGOAnW9h/XdTONidHOfHNZnUtrjeWDMCyig==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@lancedb/vectordb-darwin-x64": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-x64/-/vectordb-darwin-x64-0.4.18.tgz",
"integrity": "sha512-wyqpfdDBE5g+8SLN/6E/r37smt5i+4H3MVNZ2GZfvcMAd4xIZTwGAf5Mfx8j15t3mvKMiBEZPTvYQfFde2bQmA==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@lancedb/vectordb-linux-arm64-gnu": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-arm64-gnu/-/vectordb-linux-arm64-gnu-0.4.18.tgz",
"integrity": "sha512-OfCjTrwfdmT9Qh5r92AUj7Wosvl8mSYADS6rp+ofNoht9nq1UqtlyrCot1RhuF5w6UW1aLCJXycXY0qHh1WUPw==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"linux"
]
},
"node_modules/@lancedb/vectordb-linux-x64-gnu": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-x64-gnu/-/vectordb-linux-x64-gnu-0.4.18.tgz",
"integrity": "sha512-uJiCminsZQ6oUvVYEElgN+/Lqd9646cJUWCbfiFSnt10PCj/kFBXWjKEuCxfG/A0bp6DTm5mU5RYWDfY9v3T0Q==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"linux"
]
},
"node_modules/@lancedb/vectordb-win32-x64-msvc": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-win32-x64-msvc/-/vectordb-win32-x64-msvc-0.4.18.tgz",
"integrity": "sha512-T9//HlvtNDHEfbIjz0ExLQFbqKFHRdaKf3jpFECt5oJdU0VCXe5460DIMvp6w/SDf24pb1UvOjZnmPLvX4yPNg==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"win32"
]
},
"node_modules/@neon-rs/cli": { "node_modules/@neon-rs/cli": {
"version": "0.0.160", "version": "0.0.160",
"resolved": "https://registry.npmjs.org/@neon-rs/cli/-/cli-0.0.160.tgz", "resolved": "https://registry.npmjs.org/@neon-rs/cli/-/cli-0.0.160.tgz",

View File

@@ -1,6 +1,6 @@
{ {
"name": "vectordb", "name": "vectordb",
"version": "0.4.17", "version": "0.4.18",
"description": " Serverless, low-latency vector database for AI applications", "description": " Serverless, low-latency vector database for AI applications",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",
@@ -88,10 +88,10 @@
} }
}, },
"optionalDependencies": { "optionalDependencies": {
"@lancedb/vectordb-darwin-arm64": "0.4.17", "@lancedb/vectordb-darwin-arm64": "0.4.18",
"@lancedb/vectordb-darwin-x64": "0.4.17", "@lancedb/vectordb-darwin-x64": "0.4.18",
"@lancedb/vectordb-linux-arm64-gnu": "0.4.17", "@lancedb/vectordb-linux-arm64-gnu": "0.4.18",
"@lancedb/vectordb-linux-x64-gnu": "0.4.17", "@lancedb/vectordb-linux-x64-gnu": "0.4.18",
"@lancedb/vectordb-win32-x64-msvc": "0.4.17" "@lancedb/vectordb-win32-x64-msvc": "0.4.18"
} }
} }

1
nodejs/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
yarn.lock

View File

@@ -169,17 +169,20 @@ export class Table {
* // If the column has a vector (fixed size list) data type then * // If the column has a vector (fixed size list) data type then
* // an IvfPq vector index will be created. * // an IvfPq vector index will be created.
* const table = await conn.openTable("my_table"); * const table = await conn.openTable("my_table");
* await table.createIndex(["vector"]); * await table.createIndex("vector");
* @example * @example
* // For advanced control over vector index creation you can specify * // For advanced control over vector index creation you can specify
* // the index type and options. * // the index type and options.
* const table = await conn.openTable("my_table"); * const table = await conn.openTable("my_table");
* await table.createIndex(["vector"], I) * await table.createIndex("vector", {
* .ivf_pq({ num_partitions: 128, num_sub_vectors: 16 }) * config: lancedb.Index.ivfPq({
* .build(); * numPartitions: 128,
* numSubVectors: 16,
* }),
* });
* @example * @example
* // Or create a Scalar index * // Or create a Scalar index
* await table.createIndex("my_float_col").build(); * await table.createIndex("my_float_col");
*/ */
async createIndex(column: string, options?: Partial<IndexOptions>) { async createIndex(column: string, options?: Partial<IndexOptions>) {
// Bit of a hack to get around the fact that TS has no package-scope. // Bit of a hack to get around the fact that TS has no package-scope.
@@ -197,8 +200,7 @@ export class Table {
* vector similarity, sorting, and more. * vector similarity, sorting, and more.
* *
* Note: By default, all columns are returned. For best performance, you should * Note: By default, all columns are returned. For best performance, you should
* only fetch the columns you need. See [`Query::select_with_projection`] for * only fetch the columns you need.
* more details.
* *
* When appropriate, various indices and statistics based pruning will be used to * When appropriate, various indices and statistics based pruning will be used to
* accelerate the query. * accelerate the query.
@@ -206,10 +208,13 @@ export class Table {
* // SQL-style filtering * // SQL-style filtering
* // * //
* // This query will return up to 1000 rows whose value in the `id` column * // This query will return up to 1000 rows whose value in the `id` column
* // is greater than 5. LanceDb supports a broad set of filtering functions. * // is greater than 5. LanceDb supports a broad set of filtering functions.
* for await (const batch of table.query() * for await (const batch of table
* .filter("id > 1").select(["id"]).limit(20)) { * .query()
* console.log(batch); * .where("id > 1")
* .select(["id"])
* .limit(20)) {
* console.log(batch);
* } * }
* @example * @example
* // Vector Similarity Search * // Vector Similarity Search
@@ -218,13 +223,14 @@ export class Table {
* // closest to the query vector [1.0, 2.0, 3.0]. If an index has been created * // closest to the query vector [1.0, 2.0, 3.0]. If an index has been created
* // on the "vector" column then this will perform an ANN search. * // on the "vector" column then this will perform an ANN search.
* // * //
* // The `refine_factor` and `nprobes` methods are used to control the recall / * // The `refineFactor` and `nprobes` methods are used to control the recall /
* // latency tradeoff of the search. * // latency tradeoff of the search.
* for await (const batch of table.query() * for await (const batch of table
* .nearestTo([1, 2, 3]) * .query()
* .refineFactor(5).nprobe(10) * .where("id > 1")
* .limit(10)) { * .select(["id"])
* console.log(batch); * .limit(20)) {
* console.log(batch);
* } * }
* @example * @example
* // Scan the full dataset * // Scan the full dataset
@@ -286,43 +292,45 @@ export class Table {
await this.inner.dropColumns(columnNames); await this.inner.dropColumns(columnNames);
} }
/** /** Retrieve the version of the table */
* Retrieve the version of the table
*
* LanceDb supports versioning. Every operation that modifies the table increases
* version. As long as a version hasn't been deleted you can `[Self::checkout]` that
* version to view the data at that point. In addition, you can `[Self::restore]` the
* version to replace the current table with a previous version.
*/
async version(): Promise<number> { async version(): Promise<number> {
return await this.inner.version(); return await this.inner.version();
} }
/** /**
* Checks out a specific version of the Table * Checks out a specific version of the table _This is an in-place operation._
* *
* Any read operation on the table will now access the data at the checked out version. * This allows viewing previous versions of the table. If you wish to
* As a consequence, calling this method will disable any read consistency interval * keep writing to the dataset starting from an old version, then use
* that was previously set. * the `restore` function.
* *
* This is a read-only operation that turns the table into a sort of "view" * Calling this method will set the table into time-travel mode. If you
* or "detached head". Other table instances will not be affected. To make the change * wish to return to standard mode, call `checkoutLatest`.
* permanent you can use the `[Self::restore]` method. * @param {number} version The version to checkout
* @example
* ```typescript
* import * as lancedb from "@lancedb/lancedb"
* const db = await lancedb.connect("./.lancedb");
* const table = await db.createTable("my_table", [
* { vector: [1.1, 0.9], type: "vector" },
* ]);
* *
* Any operation that modifies the table will fail while the table is in a checked * console.log(await table.version()); // 1
* out state. * console.log(table.display());
* * await table.add([{ vector: [0.5, 0.2], type: "vector" }]);
* To return the table to a normal state use `[Self::checkout_latest]` * await table.checkout(1);
* console.log(await table.version()); // 2
* ```
*/ */
async checkout(version: number): Promise<void> { async checkout(version: number): Promise<void> {
await this.inner.checkout(version); await this.inner.checkout(version);
} }
/** /**
* Ensures the table is pointing at the latest version * Checkout the latest version of the table. _This is an in-place operation._
* *
* This can be used to manually update a table when the read_consistency_interval is None * The table will be set back into standard mode, and will track the latest
* It can also be used to undo a `[Self::checkout]` operation * version of the table.
*/ */
async checkoutLatest(): Promise<void> { async checkoutLatest(): Promise<void> {
await this.inner.checkoutLatest(); await this.inner.checkoutLatest();
@@ -344,9 +352,7 @@ export class Table {
await this.inner.restore(); await this.inner.restore();
} }
/** /** List all indices that have been created with {@link Table.createIndex} */
* List all indices that have been created with Self::create_index
*/
async listIndices(): Promise<IndexConfig[]> { async listIndices(): Promise<IndexConfig[]> {
return await this.inner.listIndices(); return await this.inner.listIndices();
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "@lancedb/lancedb-darwin-arm64", "name": "@lancedb/lancedb-darwin-arm64",
"version": "0.4.17", "version": "0.4.18",
"os": [ "os": [
"darwin" "darwin"
], ],

View File

@@ -1,6 +1,6 @@
{ {
"name": "@lancedb/lancedb-darwin-x64", "name": "@lancedb/lancedb-darwin-x64",
"version": "0.4.17", "version": "0.4.18",
"os": [ "os": [
"darwin" "darwin"
], ],

View File

@@ -1,6 +1,6 @@
{ {
"name": "@lancedb/lancedb-linux-arm64-gnu", "name": "@lancedb/lancedb-linux-arm64-gnu",
"version": "0.4.17", "version": "0.4.18",
"os": [ "os": [
"linux" "linux"
], ],

View File

@@ -1,6 +1,6 @@
{ {
"name": "@lancedb/lancedb-linux-x64-gnu", "name": "@lancedb/lancedb-linux-x64-gnu",
"version": "0.4.17", "version": "0.4.18",
"os": [ "os": [
"linux" "linux"
], ],

View File

@@ -1,12 +1,12 @@
{ {
"name": "@lancedb/lancedb", "name": "@lancedb/lancedb",
"version": "0.4.16", "version": "0.4.18",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@lancedb/lancedb", "name": "@lancedb/lancedb",
"version": "0.4.16", "version": "0.4.18",
"cpu": [ "cpu": [
"x64", "x64",
"arm64" "arm64"
@@ -45,13 +45,6 @@
}, },
"engines": { "engines": {
"node": ">= 18" "node": ">= 18"
},
"optionalDependencies": {
"@lancedb/lancedb-darwin-arm64": "0.4.16",
"@lancedb/lancedb-darwin-x64": "0.4.16",
"@lancedb/lancedb-linux-arm64-gnu": "0.4.16",
"@lancedb/lancedb-linux-x64-gnu": "0.4.16",
"@lancedb/lancedb-win32-x64-msvc": "0.4.16"
} }
}, },
"node_modules/@75lb/deep-merge": { "node_modules/@75lb/deep-merge": {
@@ -2221,81 +2214,6 @@
"@jridgewell/sourcemap-codec": "^1.4.14" "@jridgewell/sourcemap-codec": "^1.4.14"
} }
}, },
"node_modules/@lancedb/lancedb-darwin-arm64": {
"version": "0.4.16",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb-darwin-arm64/-/lancedb-darwin-arm64-0.4.16.tgz",
"integrity": "sha512-CV65ouIDQbBSNtdHbQSr2fqXflOuqud1cfweUS+EiK7eEOEYl7nO2oiFYO49Jy76MEwZxiP99hW825aCqIQJqg==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 18"
}
},
"node_modules/@lancedb/lancedb-darwin-x64": {
"version": "0.4.16",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb-darwin-x64/-/lancedb-darwin-x64-0.4.16.tgz",
"integrity": "sha512-1CwIYCNdbFmV7fvqM+qUxbYgwxx0slcCV48PC/I19Ejitgtzw/NJiWDCvONhaLqG85lWNZm1xYceRpVv7b8seQ==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 18"
}
},
"node_modules/@lancedb/lancedb-linux-arm64-gnu": {
"version": "0.4.16",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb-linux-arm64-gnu/-/lancedb-linux-arm64-gnu-0.4.16.tgz",
"integrity": "sha512-CzLEbzoHKS6jV0k52YnvsiVNx0VzLp1Vz/zmbHI6HmB/XbS67qDO93Jk71MDmXq3JDw0FKFCw9ghkg+6YWq7ZA==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 18"
}
},
"node_modules/@lancedb/lancedb-linux-x64-gnu": {
"version": "0.4.16",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb-linux-x64-gnu/-/lancedb-linux-x64-gnu-0.4.16.tgz",
"integrity": "sha512-nKChybybi8uA0AFRHBFm7Fz3VXcRm8riv5Gs7xQsrsCtYxxf4DT/0BfUvQ0xKbwNJa+fawHRxi9BOQewdj49fg==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 18"
}
},
"node_modules/@lancedb/lancedb-win32-x64-msvc": {
"version": "0.4.16",
"resolved": "https://registry.npmjs.org/@lancedb/lancedb-win32-x64-msvc/-/lancedb-win32-x64-msvc-0.4.16.tgz",
"integrity": "sha512-KMeBPMpv2g+ZMVsHVibed7BydrBlxje1qS0bZTDrLw9BtZOk6XH2lh1mCDnCJI6sbAscUKNA6fDCdquhQPHL7w==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 18"
}
},
"node_modules/@napi-rs/cli": { "node_modules/@napi-rs/cli": {
"version": "2.18.0", "version": "2.18.0",
"resolved": "https://registry.npmjs.org/@napi-rs/cli/-/cli-2.18.0.tgz", "resolved": "https://registry.npmjs.org/@napi-rs/cli/-/cli-2.18.0.tgz",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@lancedb/lancedb", "name": "@lancedb/lancedb",
"version": "0.4.17", "version": "0.4.18",
"main": "./dist/index.js", "main": "./dist/index.js",
"types": "./dist/index.d.ts", "types": "./dist/index.d.ts",
"napi": { "napi": {
@@ -62,20 +62,14 @@
"build-release": "npm run build:release && tsc -b && shx cp lancedb/native.d.ts dist/native.d.ts", "build-release": "npm run build:release && tsc -b && shx cp lancedb/native.d.ts dist/native.d.ts",
"chkformat": "prettier . --check", "chkformat": "prettier . --check",
"docs": "typedoc --plugin typedoc-plugin-markdown --out ../docs/src/js lancedb/index.ts", "docs": "typedoc --plugin typedoc-plugin-markdown --out ../docs/src/js lancedb/index.ts",
"lint": "eslint lancedb && eslint __test__", "lint": "eslint lancedb __test__",
"lint-fix": "eslint lancedb __test__ --fix",
"prepublishOnly": "napi prepublish -t npm", "prepublishOnly": "napi prepublish -t npm",
"test": "npm run build && jest --verbose", "test": "npm run build && jest --verbose",
"integration": "S3_TEST=1 npm run test", "integration": "S3_TEST=1 npm run test",
"universal": "napi universal", "universal": "napi universal",
"version": "napi version" "version": "napi version"
}, },
"optionalDependencies": {
"@lancedb/lancedb-darwin-arm64": "0.4.17",
"@lancedb/lancedb-darwin-x64": "0.4.17",
"@lancedb/lancedb-linux-arm64-gnu": "0.4.17",
"@lancedb/lancedb-linux-x64-gnu": "0.4.17",
"@lancedb/lancedb-win32-x64-msvc": "0.4.17"
},
"dependencies": { "dependencies": {
"openai": "^4.29.2", "openai": "^4.29.2",
"apache-arrow": "^15.0.0" "apache-arrow": "^15.0.0"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "lancedb-node" name = "lancedb-node"
version = "0.4.17" version = "0.4.18"
description = "Serverless, low-latency vector database for AI applications" description = "Serverless, low-latency vector database for AI applications"
license.workspace = true license.workspace = true
edition.workspace = true edition.workspace = true

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "lancedb" name = "lancedb"
version = "0.4.17" version = "0.4.18"
edition.workspace = true edition.workspace = true
description = "LanceDB: A serverless, low-latency vector database for AI applications" description = "LanceDB: A serverless, low-latency vector database for AI applications"
license.workspace = true license.workspace = true

View File

@@ -87,14 +87,16 @@ impl ConnectionInternal for RemoteDatabase {
.await .await
.unwrap()?; .unwrap()?;
self.client let rsp = self
.post(&format!("/v1/table/{}/create", options.name)) .client
.post(&format!("/v1/table/{}/create/", options.name))
.body(data_buffer) .body(data_buffer)
.header(CONTENT_TYPE, ARROW_STREAM_CONTENT_TYPE) .header(CONTENT_TYPE, ARROW_STREAM_CONTENT_TYPE)
// This is currently expected by LanceDb cloud but will be removed soon. // This is currently expected by LanceDb cloud but will be removed soon.
.header("x-request-id", "na") .header("x-request-id", "na")
.send() .send()
.await?; .await?;
self.client.check_response(rsp).await?;
Ok(Table::new(Arc::new(RemoteTable::new( Ok(Table::new(Arc::new(RemoteTable::new(
self.client.clone(), self.client.clone(),