v6: NvidiaReranker sends "baseUrl"; the module reads "baseURL"
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 88/100
Hướng nghiên cứu
Bắt đầu trong tệp được đề cập rerankers/NvidiaReranker.java và kiểm tra cách trường baseUrl được serialize và deserialize. Cập nhật mapping của trường này để các cấu hình mới sử dụng baseURL, trong khi các cấu hình baseUrl cũ vẫn có thể đọc được. Hoàn tất khi URL đã cấu hình đến được module reranker-nvidia mà không fallback về endpoint mặc định.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Corrected. The original report had this backwards: it claimed 28 classes used the wrong key. They are all correct.
rerankers/NvidiaReranker.java— cited in the original as the good example — is the one broken class. Rewritten below with the evidence.
Summary
rerankers/NvidiaReranker.java sends the base URL as baseUrl. The reranker-nvidia module reads baseURL. The value is stored in the schema and then ignored, so reranking silently goes to the default NVIDIA endpoint rather than the configured one.
Every other module config in the client (28 classes across vectorizers, generative and CohereReranker) already uses baseURL and is correct.
Why baseURL is canonical
Modules read the key through BaseClassSettings.GetPropertyAsString, which bottoms out in a plain case-sensitive map lookup — usecases/modulecomponents/settings/class_settings_property_helper.go:
value := h.GetSettings(cfg)[name]
and every module passes "baseURL":
// modules/text2vec-cohere/ent/class_settings.go
return cs.BaseClassSettings.GetPropertyAsString("baseURL", DefaultBaseURL)
// modules/reranker-nvidia/config/class_settings.go
return cs.propertyValuesHelper.GetPropertyAsString(cs.cfg, "baseURL", DefaultBaseURL)
text2vec-weaviate goes further and declares an explicit migration away from the lowercase spelling — modules/text2vec-weaviate/module.go:
{Name: "baseUrl", NewName: "baseURL"},
Empirical confirmation
Weaviate 1.39.0, reranker-nvidia enabled, base URL pointed at a stub reranker on the host. Two collections identical but for the key spelling:
baseURL -> stub receives POST /v1/retrieval/nvidia/reranking
query returns the stub's scores: [{"score":2},{"score":1}]
baseUrl -> stub receives nothing
"explorer: get class: extend: extend rerank: client rank:
connection to NVIDIA API failed with status: 401"
The 401 is the module falling back to the real NVIDIA endpoint — the configured URL never reached it.
What misled the original report
Two modules inject their default config under the key nobody reads:
// modules/text2vec-cohere/config.go, modules/text2vec-nvidia/config.go
"baseUrl": ent.DefaultBaseURL,
So for those two modules a baseURL sent by the client appears in the echoed schema next to a baseUrl default, which reads as "unrecognized passthrough key alongside the module's real default". It is the opposite: the client's key is the one the module reads, and the server's default is the one it ignores. Harmless in practice (the reader's fallback default is the same value), but worth reporting upstream as a server-side inconsistency.
Fix
@SerializedName(value = "baseURL", alternate = {"baseUrl"}) on NvidiaReranker.baseUrl, so new configs are written with the key the module reads and configs written by older clients still deserialize.
Version
- java-client 6.3.1
- Weaviate 1.39.0
- Ngôn ngữ chính
- Java
- Star
- 34
- Fork
- 29
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của weaviate/java-client
-
v6: ShardReplica.shardName has no @SerializedName, so the shard is always nullCó thể đã có người làm @dudanogueira đã nhận 25 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 90/100
weaviate/java-client#621 ·
-
v6: Shard.vectorQueueLenght is misspelled, so the vector queue length is always 0Có thể đã có người làm @dudanogueira đã nhận 25 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
weaviate/java-client#619 ·
-
v6: tenant updates are not split at the server's 100-tenant limit, so activate/deactivate fails above 100Có thể đã có người làm @dudanogueira đã nhận 37 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
weaviate/java-client#615 ·
-
v6: rerank cannot be used with BM25, Hybrid or FetchObjectsCó thể đã có người làm @dudanogueira đã nhận 40 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
weaviate/java-client#603 ·
-
v6: groups/UserType spells db_env_user as db_end_user, and is an unreferenced duplicateCó thể đã có người làm @dudanogueira đã nhận 25 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 55/100
weaviate/java-client#623 ·
Tất cả issue của weaviate/java-client
Issue tương tự
-
bug status: needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
LawnchairLauncher/lawnchair#7360 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Temporal transforms put pre-epoch timestamps at `.999999` into the previous unitCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
apache/iceberg#18371 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
objectionary/hone-maven-plugin#1297 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug documentation iam
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
objectionary/lints#1541 ·
Maintainer thường phản hồi trong vòng 1 ngày