mirror of
https://github.com/langgenius/dify.git
synced 2025-12-19 22:28:46 +00:00
Add WEAVIATE_GRPC_ENDPOINT as designed in weaviate migration guide (#27861)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
@@ -22,6 +22,11 @@ class WeaviateConfig(BaseSettings):
|
|||||||
default=True,
|
default=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
WEAVIATE_GRPC_ENDPOINT: str | None = Field(
|
||||||
|
description="URL of the Weaviate gRPC server (e.g., 'grpc://localhost:50051' or 'grpcs://weaviate.example.com:443')",
|
||||||
|
default=None,
|
||||||
|
)
|
||||||
|
|
||||||
WEAVIATE_BATCH_SIZE: PositiveInt = Field(
|
WEAVIATE_BATCH_SIZE: PositiveInt = Field(
|
||||||
description="Number of objects to be processed in a single batch operation (default is 100)",
|
description="Number of objects to be processed in a single batch operation (default is 100)",
|
||||||
default=100,
|
default=100,
|
||||||
|
|||||||
@@ -39,11 +39,13 @@ class WeaviateConfig(BaseModel):
|
|||||||
|
|
||||||
Attributes:
|
Attributes:
|
||||||
endpoint: Weaviate server endpoint URL
|
endpoint: Weaviate server endpoint URL
|
||||||
|
grpc_endpoint: Optional Weaviate gRPC server endpoint URL
|
||||||
api_key: Optional API key for authentication
|
api_key: Optional API key for authentication
|
||||||
batch_size: Number of objects to batch per insert operation
|
batch_size: Number of objects to batch per insert operation
|
||||||
"""
|
"""
|
||||||
|
|
||||||
endpoint: str
|
endpoint: str
|
||||||
|
grpc_endpoint: str | None = None
|
||||||
api_key: str | None = None
|
api_key: str | None = None
|
||||||
batch_size: int = 100
|
batch_size: int = 100
|
||||||
|
|
||||||
@@ -88,9 +90,22 @@ class WeaviateVector(BaseVector):
|
|||||||
http_secure = p.scheme == "https"
|
http_secure = p.scheme == "https"
|
||||||
http_port = p.port or (443 if http_secure else 80)
|
http_port = p.port or (443 if http_secure else 80)
|
||||||
|
|
||||||
grpc_host = host
|
# Parse gRPC configuration
|
||||||
grpc_secure = http_secure
|
if config.grpc_endpoint:
|
||||||
grpc_port = 443 if grpc_secure else 50051
|
# Urls without scheme won't be parsed correctly in some python verions,
|
||||||
|
# see https://bugs.python.org/issue27657
|
||||||
|
grpc_endpoint_with_scheme = (
|
||||||
|
config.grpc_endpoint if "://" in config.grpc_endpoint else f"grpc://{config.grpc_endpoint}"
|
||||||
|
)
|
||||||
|
grpc_p = urlparse(grpc_endpoint_with_scheme)
|
||||||
|
grpc_host = grpc_p.hostname or "localhost"
|
||||||
|
grpc_port = grpc_p.port or (443 if grpc_p.scheme == "grpcs" else 50051)
|
||||||
|
grpc_secure = grpc_p.scheme == "grpcs"
|
||||||
|
else:
|
||||||
|
# Infer from HTTP endpoint as fallback
|
||||||
|
grpc_host = host
|
||||||
|
grpc_secure = http_secure
|
||||||
|
grpc_port = 443 if grpc_secure else 50051
|
||||||
|
|
||||||
client = weaviate.connect_to_custom(
|
client = weaviate.connect_to_custom(
|
||||||
http_host=host,
|
http_host=host,
|
||||||
@@ -432,6 +447,7 @@ class WeaviateVectorFactory(AbstractVectorFactory):
|
|||||||
collection_name=collection_name,
|
collection_name=collection_name,
|
||||||
config=WeaviateConfig(
|
config=WeaviateConfig(
|
||||||
endpoint=dify_config.WEAVIATE_ENDPOINT or "",
|
endpoint=dify_config.WEAVIATE_ENDPOINT or "",
|
||||||
|
grpc_endpoint=dify_config.WEAVIATE_GRPC_ENDPOINT or "",
|
||||||
api_key=dify_config.WEAVIATE_API_KEY,
|
api_key=dify_config.WEAVIATE_API_KEY,
|
||||||
batch_size=dify_config.WEAVIATE_BATCH_SIZE,
|
batch_size=dify_config.WEAVIATE_BATCH_SIZE,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -492,6 +492,7 @@ VECTOR_INDEX_NAME_PREFIX=Vector_index
|
|||||||
# The Weaviate endpoint URL. Only available when VECTOR_STORE is `weaviate`.
|
# The Weaviate endpoint URL. Only available when VECTOR_STORE is `weaviate`.
|
||||||
WEAVIATE_ENDPOINT=http://weaviate:8080
|
WEAVIATE_ENDPOINT=http://weaviate:8080
|
||||||
WEAVIATE_API_KEY=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih
|
WEAVIATE_API_KEY=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih
|
||||||
|
WEAVIATE_GRPC_ENDPOINT=grpc://weaviate:50051
|
||||||
|
|
||||||
# The Qdrant endpoint URL. Only available when VECTOR_STORE is `qdrant`.
|
# The Qdrant endpoint URL. Only available when VECTOR_STORE is `qdrant`.
|
||||||
QDRANT_URL=http://qdrant:6333
|
QDRANT_URL=http://qdrant:6333
|
||||||
|
|||||||
@@ -157,6 +157,7 @@ x-shared-env: &shared-api-worker-env
|
|||||||
VECTOR_INDEX_NAME_PREFIX: ${VECTOR_INDEX_NAME_PREFIX:-Vector_index}
|
VECTOR_INDEX_NAME_PREFIX: ${VECTOR_INDEX_NAME_PREFIX:-Vector_index}
|
||||||
WEAVIATE_ENDPOINT: ${WEAVIATE_ENDPOINT:-http://weaviate:8080}
|
WEAVIATE_ENDPOINT: ${WEAVIATE_ENDPOINT:-http://weaviate:8080}
|
||||||
WEAVIATE_API_KEY: ${WEAVIATE_API_KEY:-WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih}
|
WEAVIATE_API_KEY: ${WEAVIATE_API_KEY:-WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih}
|
||||||
|
WEAVIATE_GRPC_ENDPOINT: ${WEAVIATE_GRPC_ENDPOINT:-grpc://weaviate:50051}
|
||||||
QDRANT_URL: ${QDRANT_URL:-http://qdrant:6333}
|
QDRANT_URL: ${QDRANT_URL:-http://qdrant:6333}
|
||||||
QDRANT_API_KEY: ${QDRANT_API_KEY:-difyai123456}
|
QDRANT_API_KEY: ${QDRANT_API_KEY:-difyai123456}
|
||||||
QDRANT_CLIENT_TIMEOUT: ${QDRANT_CLIENT_TIMEOUT:-20}
|
QDRANT_CLIENT_TIMEOUT: ${QDRANT_CLIENT_TIMEOUT:-20}
|
||||||
|
|||||||
Reference in New Issue
Block a user