Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

v6: NvidiaReranker sends "baseUrl"; the module reads "baseURL"

Abierto Apto para principiantes
#607 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
88/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
java
Área
api

Línea de trabajo

Comienza en el archivo mencionado rerankers/NvidiaReranker.java e inspecciona cómo se serializa y deserializa el campo baseUrl. Actualiza su mapeo para que las nuevas configuraciones usen baseURL, mientras que las configuraciones antiguas con baseUrl sigan siendo legibles. Se considera terminado cuando la URL configurada llega al módulo reranker-nvidia sin recurrir al endpoint predeterminado.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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
Lenguaje dominante
Java
Estrellas
34
Forks
29
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de weaviate/java-client

Todos los issues de weaviate/java-client

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.