The WeaviateVectorDB class fails to initialize when connecting to a Weaviate instance, throwing a TypeError about missing grpc_port parameter in ConnectionParams.from_url().
Environment
- dsRAG version: Latest (cloned from main branch)
- Python version: 3.13
- Weaviate server version: 1.27.0 (Docker)
- Weaviate Python client version: 4.x (latest)
- Operating System: macOS
Error Message
TypeError: ConnectionParams.from_url() missing 1 required positional argument: 'grpc_port'
Full Stack Trace
Traceback (most recent call last):
File "/path/to/main.py", line 191, in startup_event
initialize_knowledge_base()
File "/path/to/main.py", line 116, in initialize_knowledge_base
vector_db = WeaviateVectorDB(
http_host=WEAVIATE_HOST,
http_port=WEAVIATE_HTTP_PORT,
http_secure=False,
grpc_host=WEAVIATE_HOST,
grpc_port=WEAVIATE_GRPC_PORT,
grpc_secure=False,
kb_id=KB_ID
)
File "/path/to/venv/lib/python3.13/site-packages/dsrag/database/vector/weaviate_db.py", line 72, in __init__
connection_params = weaviate.connect.ConnectionParams.from_url(
url=f"{'https' if http_secure else 'http'}://{http_host}:{http_port}"
)
TypeError: ConnectionParams.from_url() missing 1 required positional argument: 'grpc_port'
Steps to Reproduce
- Set up Weaviate using Docker with the following docker-compose.yml:
services:
unicornhunter-weaviate:
command:
- --host
- 0.0.0.0
- --port
- "8080"
- --scheme
- http
image: cr.weaviate.io/semitechnologies/weaviate:1.27.0
ports:
- 8080:8080
- 50051:50051
environment:
OPENAI_APIKEY: ${OPENAI_APIKEY}
COHERE_APIKEY: ${COHERE_APIKEY}
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: "true"
ENABLE_MODULES: "text2vec-openai,reranker-cohere"
- Try to initialize WeaviateVectorDB:
from dsrag.database.vector import WeaviateVectorDB
vector_db = WeaviateVectorDB(
kb_id="test_kb",
http_host="localhost",
http_port=8080,
http_secure=False,
grpc_host="localhost",
grpc_port=50051,
grpc_secure=False
)
- Error occurs during initialization
Root Cause
The issue is in /dsrag/database/vector/weaviate_db.py at line 72. The code uses:
connection_params = weaviate.connect.ConnectionParams.from_url(
url=f"{'https' if http_secure else 'http'}://{http_host}:{http_port}"
)
However, in Weaviate Python client v4, the ConnectionParams.from_url() method now requires a grpc_port parameter as a required positional argument, but the dsRAG code is not providing it.
https://weaviate.io/developers/weaviate/client-libraries/python
The
WeaviateVectorDBclass fails to initialize when connecting to a Weaviate instance, throwing aTypeErrorabout missinggrpc_portparameter inConnectionParams.from_url().Environment
Error Message
TypeError: ConnectionParams.from_url() missing 1 required positional argument: 'grpc_port'
Full Stack Trace
Steps to Reproduce
Root Cause
The issue is in /dsrag/database/vector/weaviate_db.py at line 72. The code uses:
However, in Weaviate Python client v4, the
ConnectionParams.from_url()method now requires agrpc_portparameter as a required positional argument, but the dsRAG code is not providing it.https://weaviate.io/developers/weaviate/client-libraries/python