Updated Elasticsearch configurations

This commit is contained in:
Enrico Zimuel 2025-11-10 12:31:03 +01:00
parent 3e26136879
commit 149aaa5b22
No known key found for this signature in database
GPG key ID: 6CB203F6934A69F1
8 changed files with 45 additions and 6 deletions

View file

@ -28,6 +28,7 @@ distribution_spec:
- provider_type: remote::pgvector
- provider_type: remote::qdrant
- provider_type: remote::weaviate
- provider_type: remote::elasticsearch
files:
- provider_type: inline::localfs
safety:

View file

@ -146,6 +146,14 @@ providers:
persistence:
namespace: vector_io::weaviate
backend: kv_default
- provider_id: ${env.ELASTICSEARCH_URL:+elasticsearch}
provider_type: remote::elasticsearch
config:
elasticsearch_url: ${env.ELASTICSEARCH_URL:=localhost:9200}
elasticsearch_api_key: ${env.ELASTICSEARCH_API_KEY:=}
persistence:
namespace: vector_io::elasticsearch
backend: kv_default
files:
- provider_id: meta-reference-files
provider_type: inline::localfs

View file

@ -146,6 +146,14 @@ providers:
persistence:
namespace: vector_io::weaviate
backend: kv_default
- provider_id: ${env.ELASTICSEARCH_URL:+elasticsearch}
provider_type: remote::elasticsearch
config:
elasticsearch_url: ${env.ELASTICSEARCH_URL:=localhost:9200}
elasticsearch_api_key: ${env.ELASTICSEARCH_API_KEY:=}
persistence:
namespace: vector_io::elasticsearch
backend: kv_default
files:
- provider_id: meta-reference-files
provider_type: inline::localfs

View file

@ -28,6 +28,7 @@ distribution_spec:
- provider_type: remote::pgvector
- provider_type: remote::qdrant
- provider_type: remote::weaviate
- provider_type: remote::elasticsearch
files:
- provider_type: inline::localfs
safety:

View file

@ -146,6 +146,14 @@ providers:
persistence:
namespace: vector_io::weaviate
backend: kv_default
- provider_id: ${env.ELASTICSEARCH_URL:+elasticsearch}
provider_type: remote::elasticsearch
config:
elasticsearch_api_key: ${env.ELASTICSEARCH_API_KEY:=}
elasticsearch_url: ${env.ELASTICSEARCH_URL:=localhost:9200}
persistence:
namespace: vector_io::elasticsearch
backend: kv_default
files:
- provider_id: meta-reference-files
provider_type: inline::localfs

View file

@ -41,6 +41,7 @@ from llama_stack.providers.remote.vector_io.pgvector.config import (
)
from llama_stack.providers.remote.vector_io.qdrant.config import QdrantVectorIOConfig
from llama_stack.providers.remote.vector_io.weaviate.config import WeaviateVectorIOConfig
from llama_stack.providers.remote.vector_io.elasticsearch.config import ElasticsearchVectorIOConfig
from llama_stack.providers.utils.kvstore.config import PostgresKVStoreConfig
from llama_stack.providers.utils.sqlstore.sqlstore import PostgresSqlStoreConfig
@ -126,6 +127,7 @@ def get_distribution_template(name: str = "starter") -> DistributionTemplate:
BuildProvider(provider_type="remote::pgvector"),
BuildProvider(provider_type="remote::qdrant"),
BuildProvider(provider_type="remote::weaviate"),
BuildProvider(provider_type="remote::elasticsearch"),
],
"files": [BuildProvider(provider_type="inline::localfs")],
"safety": [
@ -240,6 +242,15 @@ def get_distribution_template(name: str = "starter") -> DistributionTemplate:
cluster_url="${env.WEAVIATE_CLUSTER_URL:=}",
),
),
Provider(
provider_id="${env.ELASTICSEARCH_URL:+elasticsearch}",
provider_type="remote::elasticsearch",
config=ElasticsearchVectorIOConfig.sample_run_config(
f"~/.llama/distributions/{name}",
elasticsearch_url="${env.ELASTICSEARCH_URL:=localhost:9200}",
elasticsearch_api_key="${env.ELASTICSEARCH_API_KEY:=}",
),
),
],
"files": [files_provider],
}

View file

@ -14,8 +14,8 @@ from llama_stack.schema_utils import json_schema_type
@json_schema_type
class ElasticsearchVectorIOConfig(BaseModel):
api_key: str | None = Field(description="The API key for the Elasticsearch instance", default=None)
hosts: str | None = Field(description="The URL of the Elasticsearch instance", default="localhost:9200")
elasticsearch_api_key: str | None = Field(description="The API key for the Elasticsearch instance", default=None)
elasticsearch_hosts: str | None = Field(description="The URL of the Elasticsearch instance", default="localhost:9200")
persistence: KVStoreReference | None = Field(
description="Config for KV store backend (SQLite only for now)", default=None
)
@ -23,8 +23,8 @@ class ElasticsearchVectorIOConfig(BaseModel):
@classmethod
def sample_run_config(cls, __distro_dir__: str, **kwargs: Any) -> dict[str, Any]:
return {
"hosts": "${env.ELASTICSEARCH_API_KEY:=None}",
"api_key": "${env.ELASTICSEARCH_URL:=localhost:9200}",
"elasticsearch_url": "${env.ELASTICSEARCH_URL:=localhost:9200}",
"elasticsearch_api_key": "${env.ELASTICSEARCH_API_KEY:=}",
"persistence": KVStoreReference(
backend="kv_default",
namespace="vector_io::elasticsearch",

View file

@ -244,8 +244,10 @@ class ElasticsearchVectorIOAdapter(OpenAIVectorStoreMixin, VectorIO, VectorStore
self.vector_store_table = None
async def initialize(self) -> None:
client_config = self.config.model_dump(exclude_none=True)
self.client = AsyncElasticsearch(**client_config)
self.client = AsyncElasticsearch(
hosts=self.config.elasticsearch_url,
api_key=self.config.elasticsearch_api_key
)
self.kvstore = await kvstore_impl(self.config.persistence)
start_key = VECTOR_DBS_PREFIX