Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
872506c
Prepare release branch
g-despot Aug 22, 2025
ccc5e0b
Add 1-bit RQ changes
g-despot Aug 22, 2025
551e7fb
Add batch import docs
g-despot Aug 25, 2025
7d35fc5
Update docs
g-despot Aug 25, 2025
81025ed
Update docs
g-despot Aug 26, 2025
3b66388
Add OIDC testing
g-despot Aug 27, 2025
a639a84
Update docs
g-despot Aug 27, 2025
b20fe4e
Update docs
g-despot Aug 27, 2025
59f6244
Update docs
g-despot Aug 27, 2025
b72f6f6
Add new operators
g-despot Aug 27, 2025
13e0745
Update docs
g-despot Aug 27, 2025
7c0a09f
Update docs
g-despot Aug 28, 2025
e2d146f
Update docs
g-despot Aug 28, 2025
21943af
Implement feedback
g-despot Aug 28, 2025
8738a0d
Implement feedback
g-despot Aug 28, 2025
014f984
Implement feedback
g-despot Aug 28, 2025
367e39c
Merge pull request #148 from weaviate/v1-33/server-side-batching
g-despot Aug 28, 2025
0de7da3
Add tutorial
g-despot Aug 29, 2025
7a0a18e
Update docs
g-despot Aug 29, 2025
fe33f17
Merge pull request #156 from weaviate/v1-33/server-side-batching
g-despot Aug 29, 2025
332f871
Merge pull request #144 from weaviate/v1-33/rq-1-bit
g-despot Aug 29, 2025
1282b9c
Update docs
g-despot Aug 29, 2025
0e0ffb9
Update docs
g-despot Aug 29, 2025
9d3ac93
Merge branch 'v1-33/main' into v1-33/oidc-groups
g-despot Aug 29, 2025
e15d610
Merge pull request #152 from weaviate/v1-33/oidc-groups
g-despot Aug 29, 2025
d8eb250
Merge pull request #157 from weaviate/v1-33/cbd
g-despot Aug 29, 2025
d11c7ab
Merge branch 'v1-33/main' into v1-33/collection-alias
g-despot Aug 29, 2025
a4a685b
Merge pull request #154 from weaviate/v1-33/collection-alias
g-despot Aug 29, 2025
6a91a38
Merge branch 'main' into v1-33/main
g-despot Aug 29, 2025
6ad9ce0
Fix links
g-despot Aug 29, 2025
cea85d1
Update docs
g-despot Aug 29, 2025
30039c4
Update docs
g-despot Aug 30, 2025
1377bbf
Add diagram
g-despot Aug 30, 2025
44a1f76
Implement feedback
g-despot Sep 3, 2025
8c73b84
Update docs
g-despot Sep 4, 2025
6792a49
Update docs
g-despot Sep 4, 2025
d88a830
Update docs
g-despot Sep 4, 2025
a63dd8f
Update docs
g-despot Sep 6, 2025
5934bb3
Merge branch 'v1-33/main' into v1-33/new-operators
g-despot Sep 8, 2025
4dec3f4
Update code
g-despot Sep 10, 2025
e41c0cd
Merge pull request #153 from weaviate/v1-33/new-operators
g-despot Sep 10, 2025
eda0a2e
updated K8s doc with info on internode auth
DanielleWashington Sep 3, 2025
389c512
Update docs
g-despot Sep 6, 2025
defbbf1
Update docs
g-despot Sep 6, 2025
74de867
Update docs
g-despot Sep 6, 2025
9efe471
Fix CI erros
g-despot Sep 8, 2025
4c1448d
Fix image search
g-despot Sep 8, 2025
dc7cf87
Update recipes
g-despot Sep 4, 2025
12d7a77
Update recipes
g-despot Sep 4, 2025
33f8012
Update recipes
g-despot Sep 4, 2025
e6e7def
Update image
g-despot Sep 9, 2025
ebabc00
Fix broken links
g-despot Sep 9, 2025
c4dac3e
Merge branch 'main' into v1-33/main
g-despot Sep 10, 2025
73bc02e
Add Java RBAC examples
g-despot Sep 16, 2025
cadbd56
Add Go snippets
g-despot Sep 16, 2025
33949ef
Merge pull request #177 from weaviate/go-rbac
g-despot Sep 17, 2025
4ab3dd0
Merge pull request #178 from weaviate/java-rbac
g-despot Sep 17, 2025
2f48e77
Update docs
g-despot Sep 18, 2025
04b2cbf
Merge branch 'main' into v1-33/main
g-despot Sep 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -259,5 +259,6 @@ __marimo__/
# Streamlit
.streamlit/secrets.toml

_includes/code/csharp/bin/
_includes/code/csharp/obj/
# C# code
_includes/code/csharp/bin
_includes/code/csharp/obj
5 changes: 5 additions & 0 deletions _includes/code/automated-testing.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@
headers=headers,
)

# Instantiate the v4 Weaviate client using the local helper.
# client = weaviate.connect_to_local(
# headers=headers,
# )

client.collections.delete("JeopardyQuestion")
client.collections.delete("JeopardyCategory")

Expand Down
29 changes: 26 additions & 3 deletions _includes/code/howto/configure-rq/rq-compression-v3.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { configure } from 'weaviate-client';

const client = await weaviate.connectToLocal({
headers: {
"X-OpenAI-Api-Key": process.env.OPENAI_API_KEY as string, // Replace with your OpenAI API key
"X-OpenAI-Api-Key": process.env.OPENAI_API_KEY as string, // Replace with your OpenAI API key
}
})

Expand All @@ -27,7 +27,7 @@ await client.collections.delete("MyCollection")

await client.collections.create({
name: "MyCollection",
vectorizers : configure.vectors.text2VecOpenAI({
vectorizers: configure.vectors.text2VecOpenAI({
// highlight-start
quantizer: configure.vectorIndex.quantizer.rq()
// highlight-end
Expand All @@ -38,6 +38,29 @@ await client.collections.create({
})
// END EnableRQ

// ==============================
// ===== EnableRQ 1-BIT ========
// ==============================

await client.collections.delete("MyCollection")

// START 1BitEnableRQ

await client.collections.create({
name: "MyCollection",
vectorizers: configure.vectors.text2VecOpenAI({
// highlight-start
quantizer: configure.vectorIndex.quantizer.rq({
bits: 1,
})
// highlight-end
}),
properties: [
{ name: "title", dataType: weaviate.configure.dataType.TEXT }
]
})
// END 1BitEnableRQ

// ==============================
// ===== EnableRQ with Options =====
// ==============================
Expand All @@ -51,7 +74,7 @@ await client.collections.create({
vectorizers: configure.vectors.text2VecOpenAI({
// highlight-start
quantizer: configure.vectorIndex.quantizer.rq({
bits: 8, // Number of bits, only 8 is supported for now
bits: 8, // Number of bits
}),
// highlight-end
}),
Expand Down
94 changes: 90 additions & 4 deletions _includes/code/howto/configure-rq/rq-compression-v4.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,50 @@
)
# END EnableRQ

# ==============================
# ===== EnableRQ 1-BIT ========
# ==============================

client.collections.delete("MyCollection")

# START 1BitEnableRQ
from weaviate.classes.config import Configure, Property, DataType

client.collections.create(
name="MyCollection",
vector_config=Configure.Vectors.text2vec_openai(
# highlight-start
quantizer=Configure.VectorIndex.Quantizer.rq(bits=1)
# highlight-end
),
properties=[
Property(name="title", data_type=DataType.TEXT),
],
)
# END 1BitEnableRQ

# =========================
# ===== Uncompressed =====
# =========================

client.collections.delete("MyCollection")

# START Uncompressed
from weaviate.classes.config import Configure, Property, DataType

client.collections.create(
name="MyCollection",
vector_config=Configure.Vectors.text2vec_openai(
# highlight-start
quantizer=Configure.VectorIndex.Quantizer.none()
# highlight-end
),
properties=[
Property(name="title", data_type=DataType.TEXT),
],
)
# END Uncompressed

# ==============================
# ===== EnableRQ with Options =====
# ==============================
Expand All @@ -55,7 +99,7 @@
vector_config=Configure.Vectors.text2vec_openai(
# highlight-start
quantizer=Configure.VectorIndex.Quantizer.rq(
bits=8, # Optional: Number of bits, only 8 is supported for now
bits=8, # Optional: Number of bits
rescore_limit=20, # Optional: Number of candidates to fetch before rescoring
),
# highlight-end
Expand All @@ -70,6 +114,19 @@
# ===== UPDATE SCHEMA =====
# ==============================

client.collections.delete("MyCollection")
client.collections.create(
name="MyCollection",
vector_config=Configure.Vectors.text2vec_openai(
# highlight-start
quantizer=Configure.VectorIndex.Quantizer.none(),
# highlight-end
),
properties=[
Property(name="title", data_type=DataType.TEXT),
],
)

# START UpdateSchema
from weaviate.classes.config import Reconfigure

Expand All @@ -78,14 +135,43 @@
vector_config=Reconfigure.Vectors.update(
name="default",
vector_index_config=Reconfigure.VectorIndex.hnsw(
quantizer=Reconfigure.VectorIndex.Quantizer.rq(
rescore_limit=20, # Optional: Number of candidates to fetch before rescoring
),
quantizer=Reconfigure.VectorIndex.Quantizer.rq(),
),
)
)
# END UpdateSchema

# ================================
# ===== UPDATE SCHEMA 1-BIT =====
# ================================

client.collections.delete("MyCollection")
client.collections.create(
name="MyCollection",
vector_config=Configure.Vectors.text2vec_openai(
# highlight-start
quantizer=Configure.VectorIndex.Quantizer.none(),
# highlight-end
),
properties=[
Property(name="title", data_type=DataType.TEXT),
],
)

# START 1BitUpdateSchema
from weaviate.classes.config import Reconfigure

collection = client.collections.use("MyCollection")
collection.config.update(
vector_config=Reconfigure.Vectors.update(
name="default",
vector_index_config=Reconfigure.VectorIndex.hnsw(
quantizer=Reconfigure.VectorIndex.Quantizer.rq(bits=1),
),
)
)
# END 1BitUpdateSchema

from weaviate.collections.classes.config import _RQConfig

config = client.collections.use("MyCollection").config.get()
Expand Down
124 changes: 120 additions & 4 deletions _includes/code/howto/go/docs/configure/compression.rq_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,56 @@ func TestRQConfiguration(t *testing.T) {
assert.Equal(t, true, rqConfig["enabled"])
})

t.Run("Enable 1-bit RQ", func(t *testing.T) {
className := "MyCollectionRQDefault"
// Delete the collection if it already exists to ensure a clean start
err := client.Schema().ClassDeleter().WithClassName(className).Do(context.Background())
if err != nil {
// This is not a fatal error, the collection might not exist
log.Printf("Could not delete collection '%s', it might not exist: %v\n", className, err)
}

// START 1BitEnableRQ
// Define the configuration for RQ. Setting 'enabled' to true
// highlight-start
rq_config := map[string]interface{}{
"enabled": true,
"bits": 1,
}
// highlight-end

// Define the class schema
class := &models.Class{
Class: className,
Vectorizer: "text2vec-openai",
// highlight-start
// Assign the RQ configuration to the vector index config
VectorIndexConfig: map[string]interface{}{
"rq": rq_config,
},
// highlight-end
}

// Create the collection in Weaviate
err = client.Schema().ClassCreator().
WithClass(class).
Do(context.Background())
// END 1BitEnableRQ
require.NoError(t, err)

// Assertions to verify the configuration
classInfo, err := client.Schema().ClassGetter().WithClassName(className).Do(ctx)
require.NoError(t, err)
require.NotNil(t, classInfo)

vic, ok := classInfo.VectorIndexConfig.(map[string]interface{})
require.True(t, ok)
rqConfig, ok := vic["rq"].(map[string]interface{})
require.True(t, ok)
assert.Equal(t, true, rqConfig["enabled"])
assert.Equal(t, float64(1), rqConfig["bits"])
})

t.Run("Enable RQ with Options", func(t *testing.T) {
className := "MyCollectionRQWithOptions"
// Delete the collection to recreate it with new options
Expand All @@ -102,7 +152,7 @@ func TestRQConfiguration(t *testing.T) {
// highlight-start
rq_with_options_config := map[string]interface{}{
"enabled": true,
"bits": 8, // Optional: Number of bits, only 8 is supported for now
"bits": 8, // Optional: Number of bits
"rescoreLimit": 20, // Optional: Number of candidates to fetch before rescoring
}
// highlight-end
Expand Down Expand Up @@ -176,10 +226,9 @@ func TestRQConfiguration(t *testing.T) {
// Get the current vector index configuration
cfg := class.VectorIndexConfig.(map[string]interface{})

// Add RQ configuration to enable scalar quantization
// Add RQ configuration to enable quantization
cfg["rq"] = map[string]interface{}{
"enabled": true,
"rescoreLimit": 20, // Optional: Number of candidates to fetch before rescoring
"enabled": true,
}

// Update the class configuration
Expand Down Expand Up @@ -207,4 +256,71 @@ func TestRQConfiguration(t *testing.T) {
assert.Equal(t, true, rqConfig["enabled"])
assert.Equal(t, float64(20), rqConfig["rescoreLimit"])
})

t.Run("Enable 1-bit RQ on Existing Collection", func(t *testing.T) {
className := "MyExistingCollection"

// First, create a collection without RQ
err := client.Schema().ClassDeleter().WithClassName(className).Do(context.Background())
if err != nil {
log.Printf("Could not delete collection '%s', it might not exist: %v\n", className, err)
}

// Create initial collection without RQ
initialClass := &models.Class{
Class: className,
Vectorizer: "text2vec-openai",
VectorIndexConfig: map[string]interface{}{
"distance": "cosine",
},
}

err = client.Schema().ClassCreator().
WithClass(initialClass).
Do(context.Background())
require.NoError(t, err)

// START 1BitUpdateSchema
// Get the existing collection configuration
class, err := client.Schema().ClassGetter().
WithClassName(className).Do(context.Background())

if err != nil {
log.Fatalf("get class for vec idx cfg update: %v", err)
}

// Get the current vector index configuration
cfg := class.VectorIndexConfig.(map[string]interface{})

// Add RQ configuration to enable scalar quantization
cfg["rq"] = map[string]interface{}{
"enabled": true,
"bits": 1,
}

// Update the class configuration
class.VectorIndexConfig = cfg

// Apply the updated configuration to the collection
err = client.Schema().ClassUpdater().
WithClass(class).Do(context.Background())

if err != nil {
log.Fatalf("update class to use rq: %v", err)
}
// END 1BitUpdateSchema

// Verify the RQ configuration was applied
updatedClass, err := client.Schema().ClassGetter().
WithClassName(className).Do(context.Background())
require.NoError(t, err)

vic, ok := updatedClass.VectorIndexConfig.(map[string]interface{})
require.True(t, ok)

rqConfig, ok := vic["rq"].(map[string]interface{})
require.True(t, ok)
assert.Equal(t, true, rqConfig["enabled"])
assert.Equal(t, float64(1), rqConfig["bits"])
})
}
Loading