diff --git a/docs/deploy/configuration/env-vars/index.md b/docs/deploy/configuration/env-vars/index.md
index 027dd78b..47b28e09 100644
--- a/docs/deploy/configuration/env-vars/index.md
+++ b/docs/deploy/configuration/env-vars/index.md
@@ -51,7 +51,7 @@ import APITable from '@site/src/components/APITable';
| `GRPC_PORT` | The port on which Weaviate's gRPC server listens for incoming requests. Default: `50051` | `string - number` | `50052` |
| `LIMIT_RESOURCES` | If `true`, Weaviate will automatically attempt to auto-detect and limit the amount of resources (memory & threads) it uses to (0.8 * total memory) and (number of cores-1). It will override any `GOMEMLIMIT` values, however it will respect `GOMAXPROCS` values. | `boolean` | `false` |
| `LOG_FORMAT` | Set the Weaviate logging format
Default: Outputs log data to json. e.g.: `{"action":"startup","level":"debug","msg":"finished initializing modules","time":"2023-04-12T05:07:43Z"}`
`text`: Outputs log data to a string. e.g. `time="2023-04-12T04:54:23Z" level=debug msg="finished initializing modules" action=startup` | `string` | |
-| `LOG_LEVEL` | Sets the Weaviate logging level. Default: `info`
`panic`: Panic entries only. (new in `v1.24`)
`fatal`: Fatal entries only. (new in `v1.24`)
`error`: Error entries only. (new in `v1.24`)
`warning`: Warning entries only. (new in `v1.24`)
`info`: General operational entries.
`debug`: Very verbose logging.
`trace`: Even finer-grained informational events than `debug`. | `string` | |
+| `LOG_LEVEL` | Sets the Weaviate logging level. Default: `info`
`panic`: Panic entries only. (new in `v1.24`)
`fatal`: Fatal entries only. (new in `v1.24`)
`error`: Error entries only. (new in `v1.24`)
`warning`: Warning entries only. (new in `v1.24`)
`info`: General operational entries.
`debug`: Very verbose logging.
`trace`: Even finer-grained informational events than `debug`. | `string` | |
| `MAXIMUM_ALLOWED_COLLECTIONS_COUNT` | Maximum allowed number of collections in a Weaviate node. A value of `-1` removes the limit. Default: `1000`
Instead of raising the collections count limit, consider [rethinking your architecture](/weaviate/starter-guides/managing-collections/collections-scaling-limits.mdx).
Added in `v1.30`| `string - number` | `20` |
| `MEMORY_READONLY_PERCENTAGE` | If memory usage is higher than the given percentage all shards on the affected node will be marked as `READONLY`, meaning all future write requests will fail. (Default: `0` - i.e. no limit) | `string - number` | `75` |
| `MEMORY_WARNING_PERCENTAGE` | If memory usage is higher than the given percentage a warning will be logged by all shards on the affected node's disk. (Default: `0` - i.e. no limit) | `string - number` | `85` |
@@ -105,7 +105,7 @@ import APITable from '@site/src/components/APITable';
| `OFFLOAD_S3_BUCKET_AUTO_CREATE` | Whether to automatically create the S3 bucket for offloading if it does not exist (default: `false`) | `boolean` | `true` |
| `OFFLOAD_S3_CONCURRENCY` | The maximum number of parts that will be uploaded/downloaded in parallel during offloading operations (default: `25`) | `string - number` | `10` |
| `OFFLOAD_TIMEOUT` | The request timeout value, in seconds (default: `120`) | `string - number` | `60` |
-| `TRANSFORMERS_INFERENCE_API` | The endpoint where to reach the transformers module if enabled | `string` | `http://t2v-transformers:8080` |
+| `TRANSFORMERS_INFERENCE_API` | The endpoint where to reach the transformers module if enabled | `string` | `http://text2vec-transformers:8080` |
| `USE_GOOGLE_AUTH` | Automatically look for Google Cloud credentials, and generate Vertex AI access tokens for Weaviate to use as needed ([read more](/weaviate/model-providers/google/index.md)). (default: `false`) | `boolean` | `true` |
| `USE_SENTENCE_TRANSFORMERS_VECTORIZER` | (EXPERIMENTAL) Use the `sentence-transformer` vectorizer instead of the default vectorizer (from the `transformers` library). Applies to custom images only. | `boolean` | `true` |
| `CLIP_WAIT_FOR_STARTUP` | If `true`, Weaviate waits for the `multi2vec-clip` module to start up before starting (default: `true`). | `boolean` | `true` |
diff --git a/docs/deploy/installation-guides/docker-installation.md b/docs/deploy/installation-guides/docker-installation.md
index 3b47ab36..bcc3d9a4 100644
--- a/docs/deploy/installation-guides/docker-installation.md
+++ b/docs/deploy/installation-guides/docker-installation.md
@@ -78,7 +78,7 @@ volumes:
```
:::caution
-Anonymous access is strongly discouraged except for development or evaluation purposes.
+Anonymous access is strongly discouraged except for development or evaluation purposes.
:::
@@ -225,9 +225,9 @@ services:
PERSISTENCE_DATA_PATH: "./data"
DEFAULT_VECTORIZER_MODULE: text2vec-transformers
ENABLE_MODULES: text2vec-transformers
- TRANSFORMERS_INFERENCE_API: http://t2v-transformers:8080
+ TRANSFORMERS_INFERENCE_API: http://text2vec-transformers:8080
CLUSTER_HOSTNAME: 'node1'
- t2v-transformers:
+ text2vec-transformers:
image: cr.weaviate.io/semitechnologies/transformers-inference:sentence-transformers-multi-qa-MiniLM-L6-cos-v1
environment:
ENABLE_CUDA: 0 # set to 1 to enable
diff --git a/docs/weaviate/model-providers/_includes/integration_model2vec_embedding.png b/docs/weaviate/model-providers/_includes/integration_model2vec_embedding.png
new file mode 100644
index 00000000..17f2793b
Binary files /dev/null and b/docs/weaviate/model-providers/_includes/integration_model2vec_embedding.png differ
diff --git a/docs/weaviate/model-providers/_includes/integration_model2vec_embedding_search.png b/docs/weaviate/model-providers/_includes/integration_model2vec_embedding_search.png
new file mode 100644
index 00000000..35b894b2
Binary files /dev/null and b/docs/weaviate/model-providers/_includes/integration_model2vec_embedding_search.png differ
diff --git a/docs/weaviate/model-providers/_includes/provider.vectorizer.py b/docs/weaviate/model-providers/_includes/provider.vectorizer.py
index 20d4cf3f..81e1c3c3 100644
--- a/docs/weaviate/model-providers/_includes/provider.vectorizer.py
+++ b/docs/weaviate/model-providers/_includes/provider.vectorizer.py
@@ -1476,6 +1476,47 @@
# clean up
client.collections.delete("DemoCollection")
+# START BasicVectorizerModel2Vec
+from weaviate.classes.config import Configure
+
+client.collections.create(
+ "DemoCollection",
+ # highlight-start
+ vector_config=[
+ Configure.Vectors.text2vec_model2vec(
+ name="title_vector",
+ source_properties=["title"],
+ )
+ ],
+ # highlight-end
+ # Additional parameters not shown
+)
+# END BasicVectorizerModel2Vec
+
+# clean up
+client.collections.delete("DemoCollection")
+
+# START FullVectorizerModel2Vec
+from weaviate.classes.config import Configure
+
+client.collections.create(
+ "DemoCollection",
+ # highlight-start
+ vector_config=[
+ Configure.Vectors.text2vec_model2vec(
+ name="title_vector",
+ source_properties=["title"],
+ inference_url="", # Default - configuration defined through container, e.g. Docker compose file
+ )
+ ],
+ # highlight-end
+ # Additional parameters not shown
+)
+# END FullVectorizerModel2Vec
+
+# clean up
+client.collections.delete("DemoCollection")
+
# START BasicMMVectorizerCLIP
from weaviate.classes.config import Configure, DataType, Multi2VecField, Property
diff --git a/docs/weaviate/model-providers/_includes/provider.vectorizer.ts b/docs/weaviate/model-providers/_includes/provider.vectorizer.ts
index c6d35715..a3439ee9 100644
--- a/docs/weaviate/model-providers/_includes/provider.vectorizer.ts
+++ b/docs/weaviate/model-providers/_includes/provider.vectorizer.ts
@@ -7,7 +7,7 @@ import weaviate from 'weaviate-client';
async function main() {
-
+
const client = await weaviate.connectToLocal({
headers: {
'X-OpenAI-Api-Key': process.env.OPENAI_APIKEY || '',
@@ -727,7 +727,7 @@ await client.collections.delete('DemoCollection');
// START BasicColBERTVectorizerJinaAI
await client.collections.create({
name: 'DemoCollection',
- vectorizers: [
+ vectorizers: [
weaviate.configure.multiVectors.text2VecJinaAI({
name: 'title_vector',
sourceProperties: ['title'],
@@ -742,7 +742,7 @@ await client.collections.delete('DemoCollection');
// START ColBERTVectorizerJinaCustomModel
await client.collections.create({
name: 'DemoCollection',
- vectorizers: [
+ vectorizers: [
weaviate.configure.multiVectors.text2VecJinaAI({
name: 'title_vector',
sourceProperties: ['title'],
@@ -758,7 +758,7 @@ await client.collections.delete('DemoCollection');
// START FullColBERTVectorizerJinaAI
await client.collections.create({
name: 'DemoCollection',
- vectorizers: [
+ vectorizers: [
weaviate.configure.multiVectors.text2VecJinaAI({
name: 'title_vector',
sourceProperties: ['title'],
@@ -825,7 +825,7 @@ await client.collections.delete('DemoCollection');
// START BasicVectorizerNVIDIA
await client.collections.create({
name: 'DemoCollection',
- vectorizers: [
+ vectorizers: [
weaviate.configure.vectors.text2VecNvidia({
name: 'title_vector',
sourceProperties: ['title'],
@@ -841,7 +841,7 @@ await client.collections.delete('DemoCollection');
// START VectorizerNVIDIACustomModel
await client.collections.create({
name: 'DemoCollection',
- vectorizers: [
+ vectorizers: [
weaviate.configure.vectors.text2VecNvidia({
name: 'title_vector',
sourceProperties: ['title'],
@@ -858,7 +858,7 @@ await client.collections.delete('DemoCollection');
// START FullVectorizerNVIDIA
await client.collections.create({
name: 'DemoCollection',
- vectorizers: [
+ vectorizers: [
weaviate.configure.vectors.text2VecNvidia({
name: 'title_vector',
sourceProperties: ['title'],
@@ -1587,6 +1587,17 @@ await client.collections.create({
});
// END FullVectorizerGPT4All
+// START BasicVectorizerModel2Vec
+// Coming soon
+// END BasicVectorizerModel2Vec
+
+// Clean up
+await client.collections.delete('DemoCollection');
+
+// START FullVectorizerModel2Vec
+// Coming soon
+// END FullVectorizerModel2Vec
+
// START BasicMMVectorizerCLIP
await client.collections.create({
name: 'DemoCollection',
@@ -1852,4 +1863,4 @@ client.close();
}
-void main();
\ No newline at end of file
+void main();
diff --git a/docs/weaviate/model-providers/gpt4all/embeddings.md b/docs/weaviate/model-providers/gpt4all/embeddings.md
index d0d9197f..1a795e98 100644
--- a/docs/weaviate/model-providers/gpt4all/embeddings.md
+++ b/docs/weaviate/model-providers/gpt4all/embeddings.md
@@ -73,12 +73,12 @@ services:
# Other Weaviate configuration
environment:
GPT4ALL_INFERENCE_API: http://text2vec-gpt4all:8080 # Set the inference API endpoint
- t2v-gpt4all: # Set the name of the inference container
+ text2vec-gpt4all: # Set the name of the inference container
image: cr.weaviate.io/semitechnologies/gpt4all-inference:all-MiniLM-L6-v2
```
- `GPT4ALL_INFERENCE_API` environment variable sets the inference API endpoint
-- `t2v-gpt4all` is the name of the inference container
+- `text2vec-gpt4all` is the name of the inference container
- `image` is the container image
diff --git a/docs/weaviate/model-providers/index.md b/docs/weaviate/model-providers/index.md
index 88a8c2c9..8a06cc9a 100644
--- a/docs/weaviate/model-providers/index.md
+++ b/docs/weaviate/model-providers/index.md
@@ -53,6 +53,7 @@ Read more about [enabling all API-based modules](../configuration/modules.md#ena
| --- | --- | --- | --- |
| [GPT4All](./gpt4all/index.md) | [Text](./gpt4all/embeddings.md) | - | - |
| [Hugging Face](./transformers/index.md) | [Text](./transformers/embeddings.md), [Multimodal (CLIP)](./transformers/embeddings-multimodal.md) | - | [Reranker](./transformers/reranker.md) |
+| [Model2vec](./model2vec/index.md) | [Text](./model2vec/embeddings.md) | - | - |
| [Meta ImageBind](./imagebind/index.md) | [Multimodal](./imagebind/embeddings-multimodal.md) | - | - |
| [Ollama](./ollama/index.md) | [Text](./ollama/embeddings.md) | [Text](./ollama/generative.md) | - |
diff --git a/docs/weaviate/model-providers/model2vec/_category_.json b/docs/weaviate/model-providers/model2vec/_category_.json
new file mode 100644
index 00000000..8f8d4ff1
--- /dev/null
+++ b/docs/weaviate/model-providers/model2vec/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "GPT4All (locally hosted)",
+ "position": 320
+}
diff --git a/docs/weaviate/model-providers/model2vec/embeddings.md b/docs/weaviate/model-providers/model2vec/embeddings.md
new file mode 100644
index 00000000..ebe497a3
--- /dev/null
+++ b/docs/weaviate/model-providers/model2vec/embeddings.md
@@ -0,0 +1,310 @@
+---
+title: Text Embeddings
+sidebar_position: 20
+image: og/docs/integrations/provider_integrations_model2vec.jpg
+# tags: ['model providers', 'model2vec', 'embeddings']
+---
+
+:::info Added in `v1.31.0`
+:::
+
+# Model2Vec Embeddings with Weaviate
+
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+import FilteredTextBlock from '@site/src/components/Documentation/FilteredTextBlock';
+import PyConnect from '!!raw-loader!../_includes/provider.connect.local.py';
+import TSConnect from '!!raw-loader!../_includes/provider.connect.local.ts';
+import PyCode from '!!raw-loader!../_includes/provider.vectorizer.py';
+import TSCode from '!!raw-loader!../_includes/provider.vectorizer.ts';
+
+Weaviate's integration with Model2Vec's models allows you to access their models' capabilities directly from Weaviate.
+
+[Configure a Weaviate vector index](#configure-the-vectorizer) to use an Model2Vec embedding model, and Weaviate will generate embeddings for various operations using the specified model via the Model2Vec inference container. This feature is called the *vectorizer*.
+
+At [import time](#data-import), Weaviate generates text object embeddings and saves them into the index. For [vector](#vector-near-text-search) and [hybrid](#hybrid-search) search operations, Weaviate converts text queries into embeddings.
+
+
+
+## Requirements
+
+### Weaviate configuration
+
+Your Weaviate instance must be configured with the Model2Vec vectorizer integration (`text2vec-model2vec`) module.
+
+
+ For Weaviate Cloud (WCD) users
+
+This integration is not available for Weaviate Cloud (WCD) serverless instances, as it requires a locally running Model2Vec instance.
+
+
+
+
+ For self-hosted users
+
+- Check the [cluster metadata](/deploy/configuration/meta.md) to verify if the module is enabled.
+- Follow the [how-to configure modules](../../configuration/modules.md) guide to enable the module in Weaviate.
+
+
+
+#### Configure the integration
+
+To use this integration, you must configure the container image of the Model2Vec model, and the inference endpoint of the containerized model.
+
+The following example shows how to configure the Model2Vec integration in Weaviate:
+
+
+
+
+#### Docker Option 1: Use a pre-configured `docker-compose.yml` file
+
+Follow the instructions on the [Weaviate Docker installation configurator](/deploy/installation-guides/docker-installation.md#configurator) to download a pre-configured `docker-compose.yml` file with a selected model
+
+
+#### Docker Option 2: Add the configuration manually
+
+Alternatively, add the configuration to the `docker-compose.yml` file manually as in the example below.
+
+```yaml
+services:
+ weaviate:
+ # Other Weaviate configuration
+ environment:
+ MODEL2VEC_INFERENCE_API: http://text2vec-model2vec:8080 # Set the inference API endpoint
+ text2vec-model2vec: # Set the name of the inference container
+ image: cr.weaviate.io/semitechnologies/model2vec-inference:minishlab-potion-base-32M
+```
+
+- `MODEL2VEC_INFERENCE_API` environment variable sets the inference API endpoint
+- `text2vec-model2vec` is the name of the inference container
+- `image` is the container image
+
+
+
+
+Configure the Model2Vec integration in Weaviate by adding or updating the `text2vec-model2vec` module in the `modules` section of the Weaviate Helm chart values file. For example, modify the `values.yaml` file as follows:
+
+```yaml
+modules:
+
+ text2vec-model2vec:
+
+ enabled: true
+ tag: minishlab-potion-base-8M
+ repo: semitechnologies/model2vec-inference
+ registry: cr.weaviate.io
+```
+
+See the [Weaviate Helm chart](https://github.com/weaviate/weaviate-helm/blob/master/weaviate/values.yaml) for an example of the `values.yaml` file including more configuration options.
+
+
+
+
+### Credentials
+
+As this integration connects to a local Model2Vec container, no additional credentials (e.g. API key) are required. Connect to Weaviate as usual, such as in the examples below.
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Configure the vectorizer
+
+[Configure a Weaviate index](../../manage-collections/vector-config.mdx#specify-a-vectorizer) as follows to use a Model2Vec embedding model:
+
+
+
+
+
+
+
+
+
+
+
+
+Note that for this integration, you specify the model to be used in the Weaviate configuration file.
+
+import VectorizationBehavior from '/_includes/vectorization.behavior.mdx';
+
+
+ Vectorization behavior
+
+
+
+
+
+## Data import
+
+After configuring the vectorizer, [import data](../../manage-objects/import.mdx) into Weaviate. Weaviate generates embeddings for text objects using the specified model.
+
+
+
+
+
+
+
+
+
+
+
+
+
+:::tip Re-use existing vectors
+If you already have a compatible model vector available, you can provide it directly to Weaviate. This can be useful if you have already generated embeddings using the same model and want to use them in Weaviate, such as when migrating data from another system.
+:::
+
+## Searches
+
+Once the vectorizer is configured, Weaviate will perform vector and hybrid search operations using the specified Model2Vec model.
+
+
+
+### Vector (near text) search
+
+When you perform a [vector search](../../search/similarity.md#search-with-text), Weaviate converts the text query into an embedding using the specified model and returns the most similar objects from the database.
+
+The query below returns the `n` most similar objects from the database, set by `limit`.
+
+
+
+
+
+
+
+
+
+
+
+
+
+### Hybrid search
+
+:::info What is a hybrid search?
+A hybrid search performs a vector search and a keyword (BM25) search, before [combining the results](../../search/hybrid.md) to return the best matching objects from the database.
+:::
+
+When you perform a [hybrid search](../../search/hybrid.md), Weaviate converts the text query into an embedding using the specified model and returns the best scoring objects from the database.
+
+The query below returns the `n` best scoring objects from the database, set by `limit`.
+
+
+
+
+
+
+
+
+
+
+
+
+
+## References
+
+
+
+
+
+
+
+### Available models
+
+For the latest list of available models, see the Docker Hub tags for the [model2vec-inference](https://hub.docker.com/r/semitechnologies/model2vec-inference/tags) container.
+
+## Further resources
+
+### Code examples
+
+Once the integrations are configured at the collection, the data management and search operations in Weaviate work identically to any other collection. See the following model-agnostic examples:
+
+- The [How-to: Manage collections](../../manage-collections/index.mdx) and [How-to: Manage objects](../../manage-objects/index.mdx) guides show how to perform data operations (i.e. create, read, update, delete collections and objects within them).
+- The [How-to: Query & Search](../../search/index.mdx) guides show how to perform search operations (i.e. vector, keyword, hybrid) as well as retrieval augmented generation.
+
+### External resources
+
+- [Model2Vec documentation](https://minish.ai/packages/model2vec/introduction)
+
+## Questions and feedback
+
+import DocsFeedback from '/_includes/docs-feedback.mdx';
+
+
diff --git a/docs/weaviate/model-providers/model2vec/index.md b/docs/weaviate/model-providers/model2vec/index.md
new file mode 100644
index 00000000..17e38476
--- /dev/null
+++ b/docs/weaviate/model-providers/model2vec/index.md
@@ -0,0 +1,46 @@
+---
+title: Model2Vec + Weaviate
+sidebar_position: 10
+image: og/docs/integrations/provider_integrations_model2vec.jpg
+# tags: ['model providers', 'model2vec']
+---
+
+
+
+The Model2Vec library allows you to easily run a range of embeddings models on your own device as lightweight, static models. Weaviate seamlessly integrates with the Model2Vec library, allowing users to leverage compatible models directly from the Weaviate Database.
+
+These integrations empower developers to build sophisticated AI-driven applications with ease.
+
+## Integrations with Model2Vec
+
+Weaviate integrates with compatible Model2Vec models by accessing the locally hosted Model2Vec API.
+
+### Embedding models for vector search
+
+
+
+Model2Vec's embedding models transform text data into vector embeddings, using faster, static versions of sentence transformer models.
+
+[Weaviate integrates with Model2Vec's embedding models](./embeddings.md) to enable seamless vectorization of data. This integration allows users to perform semantic and hybrid search operations without the need for additional preprocessing or data transformation steps.
+
+[Model2Vec embedding integration page](./embeddings.md)
+
+## Summary
+
+These integrations enable developers to leverage powerful Model2Vec models from directly within Weaviate.
+
+In turn, they simplify the process of building AI-driven applications to speed up your development process, so that you can focus on creating innovative solutions.
+
+## Get started
+
+A locally hosted Weaviate instance is required for these integrations so that you can host your own Model2Vec models.
+
+Go to the relevant integration page to learn how to configure Weaviate with the Model2Vec models and start using them in your applications.
+
+- [Text Embeddings](./embeddings.md)
+
+## Questions and feedback
+
+import DocsFeedback from '/_includes/docs-feedback.mdx';
+
+
diff --git a/docs/weaviate/model-providers/transformers/embeddings-custom-image.md b/docs/weaviate/model-providers/transformers/embeddings-custom-image.md
index c14a53c6..299e36b6 100644
--- a/docs/weaviate/model-providers/transformers/embeddings-custom-image.md
+++ b/docs/weaviate/model-providers/transformers/embeddings-custom-image.md
@@ -116,19 +116,19 @@ When using a custom image, you may set the `USE_SENTENCE_TRANSFORMERS_VECTORIZER
Once you have built and configured the custom Transformers model image, continue on to the [Transformers embeddings integrations](./embeddings.md) guide to use the model with Weaviate.
-Following the above example, set the `image` parameter in the `t2v-transformers` service as the name of the custom image, e.g. `my-inference-image`.
+Following the above example, set the `image` parameter in the `text2vec-transformers` service as the name of the custom image, e.g. `my-inference-image`.
## (Optional) Test the inference container
Once the inference container is configured and running, you can send queries it directly to test its functionality.
-First, expose the inference container. If deployed using Docker, forward the port by adding the following to the `t2v-transformers` service in your `docker-compose.yml`:
+First, expose the inference container. If deployed using Docker, forward the port by adding the following to the `text2vec-transformers` service in your `docker-compose.yml`:
```yaml
services:
weaviate:
# Additional settings not shown
- t2v-transformers:
+ text2vec-transformers:
# Additional settings not shown
ports:
- "9090:8080" # Add this line to expose the container
diff --git a/docs/weaviate/model-providers/transformers/embeddings.md b/docs/weaviate/model-providers/transformers/embeddings.md
index c38fc449..39d5ddf3 100644
--- a/docs/weaviate/model-providers/transformers/embeddings.md
+++ b/docs/weaviate/model-providers/transformers/embeddings.md
@@ -67,15 +67,15 @@ services:
# Other Weaviate configuration
environment:
ENABLE_MODULES: text2vec-transformers # Enable this module
- TRANSFORMERS_INFERENCE_API: http://t2v-transformers:8080 # Set the inference API endpoint
- t2v-transformers: # Set the name of the inference container
+ TRANSFORMERS_INFERENCE_API: http://text2vec-transformers:8080 # Set the inference API endpoint
+ text2vec-transformers: # Set the name of the inference container
image: cr.weaviate.io/semitechnologies/transformers-inference:sentence-transformers-multi-qa-MiniLM-L6-cos-v1
environment:
ENABLE_CUDA: 0 # Set to 1 to enable
```
- `TRANSFORMERS_INFERENCE_API` environment variable sets the inference API endpoint
-- `t2v-transformers` is the name of the inference container
+- `text2vec-transformers` is the name of the inference container
- `image` is the container image
- `ENABLE_CUDA` environment variable enables GPU usage
@@ -423,7 +423,7 @@ We add new model support over time. For the latest list of available models, see
As an alternative, you can run the inference container independently from Weaviate. To do so, follow these steps:
-- Enable `text2vec-transformers` and omit `t2v-transformers` container parameters in your [Weaviate configuration](#weaviate-configuration)
+- Enable `text2vec-transformers` and omit `text2vec-transformers` container parameters in your [Weaviate configuration](#weaviate-configuration)
- Run the inference container separately, e.g. using Docker, and
- Use `TRANSFORMERS_INFERENCE_API` or [`inferenceUrl`](#configure-the-vectorizer) to set the URL of the inference container.
@@ -433,7 +433,7 @@ For example, run the container with Docker:
docker run -itp "8000:8080" semitechnologies/transformers-inference:sentence-transformers-multi-qa-MiniLM-L6-cos-v1
```
-Then, set `TRANSFORMERS_INFERENCE_API="http://localhost:8000"`. If Weaviate is part of the same Docker network, as a part of the same `docker-compose.yml` file, you can use the Docker networking/DNS, such as `TRANSFORMERS_INFERENCE_API=http://t2v-transformers:8080`.
+Then, set `TRANSFORMERS_INFERENCE_API="http://localhost:8000"`. If Weaviate is part of the same Docker network, as a part of the same `docker-compose.yml` file, you can use the Docker networking/DNS, such as `TRANSFORMERS_INFERENCE_API=http://text2vec-transformers:8080`.
## Further resources
@@ -446,7 +446,7 @@ Then, set `TRANSFORMERS_INFERENCE_API="http://localhost:8000"`. If Weaviate is p
This integration automatically chunks text if it exceeds the model's maximum token length before it is passed to the model. It will then return the pooled vectors.
-See [HuggingFaceVectorizer.vectorizer()](https://github.com/weaviate/t2v-transformers-models/blob/main/vectorizer.py) for the exact implementation.
+See [HuggingFaceVectorizer.vectorizer()](https://github.com/weaviate/text2vec-transformers-models/blob/main/vectorizer.py) for the exact implementation.
### Code examples
diff --git a/docs/weaviate/modules/custom-modules.md b/docs/weaviate/modules/custom-modules.md
index 5019316b..f76b2640 100644
--- a/docs/weaviate/modules/custom-modules.md
+++ b/docs/weaviate/modules/custom-modules.md
@@ -95,7 +95,7 @@ Because you are not touching the Go Weaviate interface code, you don't have the
_Note that Weaviate APIs are not guaranteed to be stable. Even on a non-breaking Weaviate release, 'internal' APIS could always change._
To use a new inference model (part 2) with an existing Weaviate interface (part 1), you could reuse all the Go-code from the existing module and simply point it to a different inference container. As an example, here's how to use a custom inference module using the `text2vec-transformers` Go-code:
-1. In a valid `docker-compose.yml` that's configured to use transformers (e.g. for example configure one via the [configuration configurator](/deploy/installation-guides/docker-installation.md#configurator)), you will find an env var like this: `TRANSFORMERS_INFERENCE_API: 'http://t2v-transformers:8080'`, you can point that to any app you like. You should keep the variable name `TRANSFORMERS_INFERENCE_API`.
+1. In a valid `docker-compose.yml` that's configured to use transformers (e.g. for example configure one via the [configuration configurator](/deploy/installation-guides/docker-installation.md#configurator)), you will find an env var like this: `TRANSFORMERS_INFERENCE_API: 'http://text2vec-transformers:8080'`, you can point that to any app you like. You should keep the variable name `TRANSFORMERS_INFERENCE_API`.
2. Build a small HTTP API wrapper around your model, it should at the minimum have the endpoints listed below (which is in this example entirely specific to the `text2vec-transformers` module and fully in its control):
1. `GET /.well-known/live` -> respond `204` when the app is alive
2. `GET /.well-known/ready` -> respond `204` when the app is ready to serve traffic
diff --git a/docs/weaviate/modules/qna-transformers.md b/docs/weaviate/modules/qna-transformers.md
index acb1b617..8ec707e9 100644
--- a/docs/weaviate/modules/qna-transformers.md
+++ b/docs/weaviate/modules/qna-transformers.md
@@ -46,14 +46,14 @@ services:
- 50051:50051
restart: on-failure:0
environment:
- TRANSFORMERS_INFERENCE_API: 'http://t2v-transformers:8080'
+ TRANSFORMERS_INFERENCE_API: 'http://text2vec-transformers:8080'
QNA_INFERENCE_API: "http://qna-transformers:8080"
QUERY_DEFAULTS_LIMIT: 25
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
ENABLE_MODULES: 'text2vec-transformers,qna-transformers'
CLUSTER_HOSTNAME: 'node1'
- t2v-transformers:
+ text2vec-transformers:
image: cr.weaviate.io/semitechnologies/transformers-inference:sentence-transformers-msmarco-distilbert-base-v2
environment:
ENABLE_CUDA: '1'
diff --git a/docs/weaviate/modules/text2vec-contextionary.md b/docs/weaviate/modules/text2vec-contextionary.md
index 0f9c5231..ca770a44 100644
--- a/docs/weaviate/modules/text2vec-contextionary.md
+++ b/docs/weaviate/modules/text2vec-contextionary.md
@@ -8,6 +8,14 @@ image: og/docs/modules/text2vec-contextionary.jpg
The `text2vec-contextionary` module enables Weaviate to obtain vectors locally using a lightweight model.
+:::caution Deprecated module
+The `Contextionary` model is old, and not recommended for any use cases. Instead, we recommend using other modules.
+
+If you are looking for a local, lightweight model for testing or development purposes, try [the `text2vec-model2vec` module](../model-providers/model2vec/embeddings.md).
+
+For cases where the vector quality is important, such as in production, we recommend using [other model integrations](../model-providers/index.md) that use a more modern, transformer-based architecture.
+:::
+
Key notes:
- This module is not available on Weaviate Cloud (WCD).
@@ -15,12 +23,6 @@ Key notes:
- This module is based on FastText and uses a weighted mean of word embeddings (WMOWE) to produce the vector.
- Available for multiple languages
-:::tip When to use `text2vec-contextionary`
-As a lightweight model, it is well suited for testing purposes.
-
-For production use cases, we recommend using other modules that use a more modern, transformer-based architecture.
-:::
-
## Weaviate instance configuration
:::info Not applicable to WCD
diff --git a/pyproject.toml b/pyproject.toml
index a324a80b..ab2357cf 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -16,6 +16,6 @@ dependencies = [
"python-dotenv>=1.1.1",
"tqdm>=4.67.1",
"weaviate-agents>=0.12.0",
- "weaviate-client>=4.16.4",
- "weaviate-demo-datasets>=0.6.4",
+ "weaviate-client>=4.16.6",
+ "weaviate-demo-datasets>=0.7.0",
]
diff --git a/static/og/docs/integrations/provider_integrations_model2vec.jpg b/static/og/docs/integrations/provider_integrations_model2vec.jpg
new file mode 100644
index 00000000..958c0848
Binary files /dev/null and b/static/og/docs/integrations/provider_integrations_model2vec.jpg differ
diff --git a/uv.lock b/uv.lock
index 674bb696..4abb28e7 100644
--- a/uv.lock
+++ b/uv.lock
@@ -658,8 +658,8 @@ requires-dist = [
{ name = "python-dotenv", specifier = ">=1.1.1" },
{ name = "tqdm", specifier = ">=4.67.1" },
{ name = "weaviate-agents", specifier = ">=0.12.0" },
- { name = "weaviate-client", specifier = ">=4.16.4" },
- { name = "weaviate-demo-datasets", specifier = ">=0.6.4" },
+ { name = "weaviate-client", specifier = ">=4.16.6" },
+ { name = "weaviate-demo-datasets", specifier = ">=0.7.0" },
]
[[package]]
@@ -3061,7 +3061,7 @@ wheels = [
[[package]]
name = "weaviate-client"
-version = "4.16.4"
+version = "4.16.6"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "authlib" },
@@ -3072,14 +3072,14 @@ dependencies = [
{ name = "pydantic" },
{ name = "validators" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/b1/6a/be2257fbd890674204c393782e75b794cf0939a8dab8a4f1c0ab38d1663a/weaviate_client-4.16.4.tar.gz", hash = "sha256:50efc819274640564bbeca91405aef1674170e3d93f0bd7a9496b5b37d0fe746", size = 779617 }
+sdist = { url = "https://files.pythonhosted.org/packages/8f/1e/b44262cd9edff939f7a6e40b6134d737a28bcdb0445cbdf2af9544953658/weaviate_client-4.16.6.tar.gz", hash = "sha256:79064bd976b0ec6bee09507f74481711bcbc861bcc097ca37db22bcf948771e6", size = 779904 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/c1/a5/414c1452b786a27be1d1314c3051abf82af921ca20ada16df55c0d19997d/weaviate_client-4.16.4-py3-none-any.whl", hash = "sha256:299bab2ae822271ddc40005a7cd95f332e8243c7cff38df3bb9f4aca23221dcc", size = 597160 },
+ { url = "https://files.pythonhosted.org/packages/5c/d2/7cf098b1d14dd237a81b84012f0c4cdea355d2312b10410148384fa8b39a/weaviate_client-4.16.6-py3-none-any.whl", hash = "sha256:8eafcac785876bc731b7dedd7272a93b530fc5ed807ab54b6d74f9493a014dec", size = 597469 },
]
[[package]]
name = "weaviate-demo-datasets"
-version = "0.6.4"
+version = "0.7.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
@@ -3087,9 +3087,9 @@ dependencies = [
{ name = "pandas" },
{ name = "tqdm" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/0c/22/489de7700262c5d794324d6af8dd4063d435915cd6a0dc04d3885ad60b94/weaviate_demo_datasets-0.6.4.tar.gz", hash = "sha256:7c1b7a9e04f354c17d80d6bf1258f4b7f41f2d0ca5a19017520a9837146d06a7", size = 69465567 }
+sdist = { url = "https://files.pythonhosted.org/packages/52/a5/cbd00fe9822470334e4598fc3d0f093216c496de2ec31a8049e6554cd4d7/weaviate_demo_datasets-0.7.0.tar.gz", hash = "sha256:4acd56d16044eb1bcd1a4f8c95e9fe529fd1e6795bd074f555a7efa728b2a007", size = 69466432 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/72/5f/3cdd934f9b5ff1afe58da27b068656fb72698c77935b1beff3c5a1a2dba8/weaviate_demo_datasets-0.6.4-py3-none-any.whl", hash = "sha256:453d8b194a362f065edd051d3834bfb9db89393a2445effa0f065c0ac050d072", size = 73909001 },
+ { url = "https://files.pythonhosted.org/packages/92/98/fa48bc0f9c9c55386c20648c3b2162317bc2b570cb5235bc415aeebe4da8/weaviate_demo_datasets-0.7.0-py3-none-any.whl", hash = "sha256:fb8201f75c064946f7ea49712dfaec99a10eda10c34ac8c8269287ae7cc2b23d", size = 73909773 },
]
[[package]]
diff --git a/yarn.lock b/yarn.lock
index 2003fcc7..1c234286 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1881,17 +1881,7 @@
"@types/gtag.js" "^0.0.12"
tslib "^2.6.0"
-"@docusaurus/plugin-google-tag-manager@3.8.1":
- version "3.8.1"
- resolved "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.8.1.tgz"
- integrity sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw==
- dependencies:
- "@docusaurus/core" "3.8.1"
- "@docusaurus/types" "3.8.1"
- "@docusaurus/utils-validation" "3.8.1"
- tslib "^2.6.0"
-
-"@docusaurus/plugin-google-tag-manager@^3.8.1":
+"@docusaurus/plugin-google-tag-manager@3.8.1", "@docusaurus/plugin-google-tag-manager@^3.8.1":
version "3.8.1"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.8.1.tgz#88241ffd06369f4a4d5fb982ff3ac2777561ae37"
integrity sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw==
@@ -14248,16 +14238,7 @@ streamx@^2.15.0:
fast-fifo "^1.1.0"
queue-tick "^1.0.1"
-"string-width-cjs@npm:string-width@^4.2.0":
- version "4.2.3"
- resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
-"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -14315,7 +14296,7 @@ stringify-object@^3.3.0:
is-obj "^1.0.1"
is-regexp "^1.0.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -14327,13 +14308,6 @@ strip-ansi-control-characters@2.0.0:
resolved "https://registry.npmjs.org/strip-ansi-control-characters/-/strip-ansi-control-characters-2.0.0.tgz"
integrity sha512-Q0/k5orrVGeaOlIOUn1gybGU0IcAbgHQT1faLo5hik4DqClKVSaka5xOhNNoRgtfztHVxCYxi7j71mrWom0bIw==
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
strip-ansi@^7.0.0, strip-ansi@^7.0.1, strip-ansi@^7.1.0:
version "7.1.0"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz"
@@ -15552,7 +15526,7 @@ winston@^3.10.0:
triple-beam "^1.3.0"
winston-transport "^4.7.0"
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -15570,15 +15544,6 @@ wrap-ansi@^6.0.1:
string-width "^4.1.0"
strip-ansi "^6.0.0"
-wrap-ansi@^7.0.0:
- version "7.0.0"
- resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
- integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
wrap-ansi@^8.0.1, wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz"