Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -158,19 +158,19 @@ public Mono<DifyResponse> retrieve(String query, Integer limit) {
retrievalModel.put("reranking_enable", true);

if (config.getRerankConfig() != null) {
Map<String, Object> rerankingMode = new HashMap<>();
Map<String, Object> rerankingModel = new HashMap<>();
if (config.getRerankConfig().getProviderName() != null) {
rerankingMode.put(
rerankingModel.put(
"reranking_provider_name",
config.getRerankConfig().getProviderName());
}
if (config.getRerankConfig().getModelName() != null) {
rerankingMode.put(
rerankingModel.put(
"reranking_model_name",
config.getRerankConfig().getModelName());
}
if (!rerankingMode.isEmpty()) {
retrievalModel.put("reranking_mode", rerankingMode);
if (!rerankingModel.isEmpty()) {
retrievalModel.put("reranking_model", rerankingModel);
}
}
Comment on lines 160 to 175

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

这部分代码的逻辑可以优化,并且存在一个潜在问题。

  1. 可读性: config.getRerankConfig() 被多次调用。可以将其结果存储在一个局部变量中,以提高代码的可读性和效率。
  2. 潜在错误: if (!rerankingModel.isEmpty()) 这个判断条件可能会导致一个问题。如果用户设置了 enableRerank(true) 并提供了一个空的 rerankConfig(例如 RerankConfig.builder().build()),其意图很可能是使用 Dify 的默认重排模型。但当前代码会因为 rerankingModel 为空而不会将 reranking_model 字段加入到请求中,这可能与预期行为不符。移除这个判断可以确保即使 reranking_model 为空对象 {} 也会被发送,从而让 Dify 服务端来决定如何处理(通常是使用默认值)。

建议进行如下修改,以提高代码的健壮性和可读性。

                        if (config.getRerankConfig() != null) {
                            RerankConfig rerankConfig = config.getRerankConfig();
                            Map<String, Object> rerankingModel = new HashMap<>();
                            if (rerankConfig.getProviderName() != null) {
                                rerankingModel.put(
                                        "reranking_provider_name",
                                        rerankConfig.getProviderName());
                            }
                            if (rerankConfig.getModelName() != null) {
                                rerankingModel.put(
                                        "reranking_model_name",
                                        rerankConfig.getModelName());
                            }
                            retrievalModel.put("reranking_model", rerankingModel);
                        }

} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -246,11 +246,11 @@ void testIncludeRerankingConfig() throws Exception {
assertEquals(true, retrievalModel.get("reranking_enable"));

@SuppressWarnings("unchecked")
Map<String, Object> rerankingMode =
(Map<String, Object>) retrievalModel.get("reranking_mode");
assertNotNull(rerankingMode);
assertEquals("cohere", rerankingMode.get("reranking_provider_name"));
assertEquals("rerank-english-v2.0", rerankingMode.get("reranking_model_name"));
Map<String, Object> rerankingModel =
(Map<String, Object>) retrievalModel.get("reranking_model");
assertNotNull(rerankingModel);
assertEquals("cohere", rerankingModel.get("reranking_provider_name"));
assertEquals("rerank-english-v2.0", rerankingModel.get("reranking_model_name"));
}

@Test
Expand Down
Loading