Compare commits

...

11 Commits

Author SHA1 Message Date
Lance Release
a4404e9e18 Bump version: 0.21.2-beta.0 → 0.21.2-beta.1 2025-03-26 16:23:37 +00:00
Will Jones
077e5bb586 upgrade to 0.25.0 2025-03-26 09:19:48 -07:00
vinoyang
2ad71bdeca fix(java): make test work for jdk8 (#2269) 2025-03-25 10:57:49 -07:00
vinoyang
7c13615096 fix(java): add .gitignore file (#2270) 2025-03-25 10:56:08 -07:00
Wyatt Alt
f882f5b69a fix: update Query pydoc (#2273)
Removes reference of nonexistent method.
2025-03-25 08:50:23 -07:00
Benjamin Clavié
a68311a893 fix: answerdotai rerankers argument passing (#2117)
This fixes an issue for people wishing to use different kinds of
rerankers in lancedb via AnswerDotAI rerankers. Currently, the arguments
are passed sequentially, but they don't match the[Reranker class
implementation](d604a8c47d/rerankers/reranker.py (L179)):
the second argument is expected to be an optional "lang" for default
models, while model_type should be passed explicitly.

The one line changes in this PR fixes it and enables the use of other
methods (eg LLMs-as-rerankers)
2025-03-24 12:31:59 +05:30
Ayush Chaurasia
846a5cea33 fix: handle light and dark mode logo (#2265) 2025-03-22 10:21:05 -07:00
QianZhu
e3dec647b5 docs: replace banner as an image (#2262) 2025-03-21 18:35:35 -07:00
QianZhu
c58104cecc docs: add banner for LanceDB Cloud in public beta (#2261) 2025-03-21 17:54:34 -07:00
QianZhu
b3b5362632 docs: replace Lancedb Cloud link (#2259)
* direct users to cloud.lancedb.com since LanceDB Cloud is in public
beta
* removed the `cast vector dimension` from alter columns as we don't
support it
2025-03-21 17:43:00 -07:00
Will Jones
abe06fee3d feat(python): warn on fork (#2258)
Closes #768
2025-03-21 17:18:10 -07:00
14 changed files with 76 additions and 58 deletions

44
Cargo.lock generated
View File

@@ -2673,7 +2673,8 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
[[package]]
name = "fsst"
version = "0.25.0"
source = "git+https://github.com/lancedb/lance.git?tag=v0.25.0-beta.5#f02095ddb4a57f15769e028919f343e38866d155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7504bf440f60a6a243276bf7b9d9d77b6857b041444ae2bd4f9afb677266cf0a"
dependencies = [
"rand",
]
@@ -3649,7 +3650,8 @@ dependencies = [
[[package]]
name = "lance"
version = "0.25.0"
source = "git+https://github.com/lancedb/lance.git?tag=v0.25.0-beta.5#f02095ddb4a57f15769e028919f343e38866d155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85ab26780cb0fd7685cdcc88e78169891f007a13d2a69aab3717b0b9a21d2d9f"
dependencies = [
"arrow",
"arrow-arith",
@@ -3709,7 +3711,8 @@ dependencies = [
[[package]]
name = "lance-arrow"
version = "0.25.0"
source = "git+https://github.com/lancedb/lance.git?tag=v0.25.0-beta.5#f02095ddb4a57f15769e028919f343e38866d155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d187abfbe228c23f5e673f9b4d9ed7634f849747ab46b4c01f961a61960438ca"
dependencies = [
"arrow-array",
"arrow-buffer",
@@ -3727,7 +3730,8 @@ dependencies = [
[[package]]
name = "lance-core"
version = "0.25.0"
source = "git+https://github.com/lancedb/lance.git?tag=v0.25.0-beta.5#f02095ddb4a57f15769e028919f343e38866d155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de398fb5fa40f06e7a8347a9869d0bf8d506656f36b43eff330b399eadbe7add"
dependencies = [
"arrow-array",
"arrow-buffer",
@@ -3764,7 +3768,8 @@ dependencies = [
[[package]]
name = "lance-datafusion"
version = "0.25.0"
source = "git+https://github.com/lancedb/lance.git?tag=v0.25.0-beta.5#f02095ddb4a57f15769e028919f343e38866d155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4302f8ff769e80caec1b49b151e00c5ab071a9cee59bda2470e3cf1b2acf31b"
dependencies = [
"arrow",
"arrow-array",
@@ -3791,7 +3796,8 @@ dependencies = [
[[package]]
name = "lance-encoding"
version = "0.25.0"
source = "git+https://github.com/lancedb/lance.git?tag=v0.25.0-beta.5#f02095ddb4a57f15769e028919f343e38866d155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5270904a834388e6a48748b6d18406beed2a2674486182869a9b7f4317d00c4"
dependencies = [
"arrayref",
"arrow",
@@ -3830,7 +3836,8 @@ dependencies = [
[[package]]
name = "lance-file"
version = "0.25.0"
source = "git+https://github.com/lancedb/lance.git?tag=v0.25.0-beta.5#f02095ddb4a57f15769e028919f343e38866d155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e38ba8059e2eda463cc08df67673f064e7365396cea7956bd037ebef2607304"
dependencies = [
"arrow-arith",
"arrow-array",
@@ -3865,7 +3872,8 @@ dependencies = [
[[package]]
name = "lance-index"
version = "0.25.0"
source = "git+https://github.com/lancedb/lance.git?tag=v0.25.0-beta.5#f02095ddb4a57f15769e028919f343e38866d155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0fa394061e98308b83fcd87dc8e916547996a0d79f8bc46c35d88cb1e4c2fae"
dependencies = [
"arrow",
"arrow-array",
@@ -3918,7 +3926,8 @@ dependencies = [
[[package]]
name = "lance-io"
version = "0.25.0"
source = "git+https://github.com/lancedb/lance.git?tag=v0.25.0-beta.5#f02095ddb4a57f15769e028919f343e38866d155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c05a387cdcf546079752aed6e2007fe97a119c481f1e4ebddeba82713a361c1b"
dependencies = [
"arrow",
"arrow-arith",
@@ -3957,7 +3966,8 @@ dependencies = [
[[package]]
name = "lance-linalg"
version = "0.25.0"
source = "git+https://github.com/lancedb/lance.git?tag=v0.25.0-beta.5#f02095ddb4a57f15769e028919f343e38866d155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d1ac911444fdf2ad14c4beb6333d2e9f56276f79f8aed74b0e5c501c3c91071"
dependencies = [
"arrow-array",
"arrow-ord",
@@ -3981,7 +3991,8 @@ dependencies = [
[[package]]
name = "lance-table"
version = "0.25.0"
source = "git+https://github.com/lancedb/lance.git?tag=v0.25.0-beta.5#f02095ddb4a57f15769e028919f343e38866d155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f4e9974cc8fd273081f914936f7dad00af9965cdd7dead5350b7711d0463a91"
dependencies = [
"arrow",
"arrow-array",
@@ -4021,7 +4032,8 @@ dependencies = [
[[package]]
name = "lance-testing"
version = "0.25.0"
source = "git+https://github.com/lancedb/lance.git?tag=v0.25.0-beta.5#f02095ddb4a57f15769e028919f343e38866d155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fd92aef3493e6ad688e25f3eb2ac087ff69c63765be94b1739af5131676e5eb"
dependencies = [
"arrow-array",
"arrow-schema",
@@ -4032,7 +4044,7 @@ dependencies = [
[[package]]
name = "lancedb"
version = "0.18.1"
version = "0.18.2-beta.0"
dependencies = [
"arrow",
"arrow-array",
@@ -4119,7 +4131,7 @@ dependencies = [
[[package]]
name = "lancedb-node"
version = "0.18.1"
version = "0.18.2-beta.0"
dependencies = [
"arrow-array",
"arrow-ipc",
@@ -4144,7 +4156,7 @@ dependencies = [
[[package]]
name = "lancedb-nodejs"
version = "0.18.1"
version = "0.18.2-beta.0"
dependencies = [
"arrow-array",
"arrow-ipc",
@@ -4162,7 +4174,7 @@ dependencies = [
[[package]]
name = "lancedb-python"
version = "0.21.1"
version = "0.21.2-beta.0"
dependencies = [
"arrow",
"env_logger",

View File

@@ -23,14 +23,14 @@ rust-version = "1.78.0"
[workspace.dependencies]
lance = { "version" = "=0.25.0", "features" = [
"dynamodb",
], tag = "v0.25.0-beta.5", git = "https://github.com/lancedb/lance.git" }
lance-io = { version = "=0.25.0", tag = "v0.25.0-beta.5", git = "https://github.com/lancedb/lance.git" }
lance-index = { version = "=0.25.0", tag = "v0.25.0-beta.5", git = "https://github.com/lancedb/lance.git" }
lance-linalg = { version = "=0.25.0", tag = "v0.25.0-beta.5", git = "https://github.com/lancedb/lance.git" }
lance-table = { version = "=0.25.0", tag = "v0.25.0-beta.5", git = "https://github.com/lancedb/lance.git" }
lance-testing = { version = "=0.25.0", tag = "v0.25.0-beta.5", git = "https://github.com/lancedb/lance.git" }
lance-datafusion = { version = "=0.25.0", tag = "v0.25.0-beta.5", git = "https://github.com/lancedb/lance.git" }
lance-encoding = { version = "=0.25.0", tag = "v0.25.0-beta.5", git = "https://github.com/lancedb/lance.git" }
] }
lance-io = { version = "=0.25.0" }
lance-index = { version = "=0.25.0" }
lance-linalg = { version = "=0.25.0" }
lance-table = { version = "=0.25.0" }
lance-testing = { version = "=0.25.0" }
lance-datafusion = { version = "=0.25.0" }
lance-encoding = { version = "=0.25.0" }
# Note that this one does not include pyarrow
arrow = { version = "54.1", optional = false }
arrow-array = "54.1"

View File

@@ -1,9 +1,17 @@
<a href="https://cloud.lancedb.com" target="_blank">
<img src="https://github.com/user-attachments/assets/92dad0a2-2a37-4ce1-b783-0d1b4f30a00c" alt="LanceDB Cloud Public Beta" width="100%" style="max-width: 100%;">
</a>
<div align="center">
<p align="center">
<img width="275" alt="LanceDB Logo" src="https://github.com/lancedb/lancedb/assets/5846846/37d7c7ad-c2fd-4f56-9f16-fffb0d17c73a">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/ac270358-333e-4bea-a132-acefaa94040e">
<source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/b864d814-0d29-4784-8fd9-807297c758c0">
<img alt="LanceDB Logo" src="https://github.com/user-attachments/assets/b864d814-0d29-4784-8fd9-807297c758c0" width=300>
</picture>
**Developer-friendly, database for multimodal AI**
**Search More, Manage Less**
<a href='https://github.com/lancedb/vectordb-recipes/tree/main' target="_blank"><img alt='LanceDB' src='https://img.shields.io/badge/VectorDB_Recipes-100000?style=for-the-badge&logo=LanceDB&logoColor=white&labelColor=645cfb&color=645cfb'/></a>
<a href='https://lancedb.github.io/lancedb/' target="_blank"><img alt='lancdb' src='https://img.shields.io/badge/DOCS-100000?style=for-the-badge&logo=lancdb&logoColor=white&labelColor=645cfb&color=645cfb'/></a>

View File

@@ -2,7 +2,7 @@
LanceDB Cloud is a SaaS (software-as-a-service) solution that runs serverless in the cloud, clearly separating storage from compute. It's designed to be highly scalable without breaking the bank. LanceDB Cloud is currently in private beta with general availability coming soon, but you can apply for early access with the private beta release by signing up below.
[Try out LanceDB Cloud](https://noteforms.com/forms/lancedb-mailing-list-cloud-kty1o5?notionforms=1&utm_source=notionforms){ .md-button .md-button--primary }
[Try out LanceDB Cloud (Public Beta)](https://cloud.lancedb.com){ .md-button .md-button--primary }
## Architecture

View File

@@ -942,28 +942,6 @@ rewriting the column, which can be a heavy operation.
```
**API Reference:** [lancedb.Table.alterColumns](../js/classes/Table.md/#altercolumns)
You can even cast the a vector column to a different dimension:
=== "Python"
=== "Sync API"
```python
--8<-- "python/python/tests/docs/test_guide_tables.py:import-pyarrow"
--8<-- "python/python/tests/docs/test_basic.py:alter_columns_vector"
```
=== "Async API"
```python
--8<-- "python/python/tests/docs/test_guide_tables.py:import-pyarrow"
--8<-- "python/python/tests/docs/test_basic.py:alter_columns_async_vector"
```
=== "Typescript"
```typescript
--8<-- "nodejs/examples/basic.test.ts:alter_columns_vector"
```
### Dropping columns
You can drop columns from the table with the `drop_columns` method. This will

View File

@@ -23,7 +23,7 @@ LanceDB **OSS** is an **open-source**, batteries-included embedded vector databa
LanceDB **Cloud** is a SaaS (software-as-a-service) solution that runs serverless in the cloud, making the storage clearly separated from compute. It's designed to be cost-effective and highly scalable without breaking the bank. LanceDB Cloud is currently in private beta with general availability coming soon, but you can apply for early access with the private beta release by signing up below.
[Try out LanceDB Cloud](https://noteforms.com/forms/lancedb-mailing-list-cloud-kty1o5?notionforms=1&utm_source=notionforms){ .md-button .md-button--primary }
[Try out LanceDB Cloud (Public Beta) Now](https://cloud.lancedb.com){ .md-button .md-button--primary }
## Why use LanceDB?

View File

@@ -8,6 +8,10 @@ For trouble shooting, the best place to ask is in our Discord, under the relevan
language channel. By asking in the language-specific channel, it makes it more
likely that someone who knows the answer will see your question.
## Common issues
* Multiprocessing with `fork` is not supported. You should use `spawn` instead.
## Enabling logging
To provide more information, especially for LanceDB Cloud related issues, enable

3
java/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
*.iml
.java-version

View File

@@ -166,7 +166,6 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.5</version>
<configuration>
<argLine>--add-opens=java.base/java.nio=ALL-UNNAMED</argLine>
<forkNode
implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory" />
<useSystemClassLoader>false</useSystemClassLoader>

View File

@@ -1,5 +1,5 @@
[tool.bumpversion]
current_version = "0.21.2-beta.0"
current_version = "0.21.2-beta.1"
parse = """(?x)
(?P<major>0|[1-9]\\d*)\\.
(?P<minor>0|[1-9]\\d*)\\.

View File

@@ -1,6 +1,6 @@
[package]
name = "lancedb-python"
version = "0.21.2-beta.0"
version = "0.21.2-beta.1"
edition.workspace = true
description = "Python bindings for LanceDB"
license.workspace = true

View File

@@ -7,6 +7,7 @@ import os
from concurrent.futures import ThreadPoolExecutor
from datetime import timedelta
from typing import Dict, Optional, Union, Any
import warnings
__version__ = importlib.metadata.version("lancedb")
@@ -213,3 +214,13 @@ __all__ = [
"RemoteDBConnection",
"__version__",
]
def __warn_on_fork():
warnings.warn(
"lance is not fork-safe. If you are using multiprocessing, use spawn instead.",
)
if hasattr(os, "register_at_fork"):
os.register_at_fork(before=__warn_on_fork)

View File

@@ -109,10 +109,11 @@ class FullTextSearchQuery(pydantic.BaseModel):
class Query(pydantic.BaseModel):
"""A LanceDB Query
Queries are constructed by the `Table.search` and `Table.query` methods. This
class is a python representation of the query. Normally you will not need to
interact with this class directly. You can build up a query and execute it using
collection methods such as `to_batches()`, `to_arrow()`, `to_pandas()`, etc.
Queries are constructed by the `Table.search` method. This class is a
python representation of the query. Normally you will not need to interact
with this class directly. You can build up a query and execute it using
collection methods such as `to_batches()`, `to_arrow()`, `to_pandas()`,
etc.
However, you can use the `to_query()` method to get the underlying query object.
This can be useful for serializing a query or using it in a different context.

View File

@@ -42,7 +42,9 @@ class AnswerdotaiRerankers(Reranker):
rerankers = attempt_import_or_raise(
"rerankers"
) # import here for faster ops later
self.reranker = rerankers.Reranker(model_name, model_type, **kwargs)
self.reranker = rerankers.Reranker(
model_name=model_name, model_type=model_type, **kwargs
)
def _rerank(self, result_set: pa.Table, query: str):
docs = result_set[self.column].to_pylist()