fix(dify): correct reranking_model JSON key in DifyRAG retrieval request#766
fix(dify): correct reranking_model JSON key in DifyRAG retrieval request#766lifl00001 wants to merge 1 commit intoagentscope-ai:mainfrom
Conversation
Fixed incorrect JSON key 'reranking_mode' to 'reranking_model' in DifyRAG retrieval request payload. Also renamed variable from 'rerankingMode' to 'rerankingModel' for consistency. Changes: - DifyRAGClient.java: Changed 'reranking_mode' to 'reranking_model' - DifyRAGClientTest.java: Updated test to use correct key name Reference: Dify API expects 'reranking_model' for reranking configuration Co-Authored-By: Claude Code <noreply@anthropic.com>
Summary of ChangesHello @lifl00001, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! 此拉取请求旨在解决 DifyRAGClient 中一个关键的 JSON 键错误,该错误导致 Dify API 无法正确识别和应用 reranking 配置。通过将错误的键名 Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
| 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); | ||
| } | ||
| } |
There was a problem hiding this comment.
这部分代码的逻辑可以优化,并且存在一个潜在问题。
- 可读性:
config.getRerankConfig()被多次调用。可以将其结果存储在一个局部变量中,以提高代码的可读性和效率。 - 潜在错误:
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);
}
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
📝 变更说明
修复了 DifyRAGClient 中检索请求的 JSON key 错误。
🎯 主要变更
retrievalModel.put("reranking_mode", rerankingMode)为retrievalModel.put("reranking_model", rerankingModel)rerankingMode重命名为rerankingModel以保持一致性🐛 问题描述
Dify API 期望使用
reranking_model作为 reranking 配置的 JSON key,但代码中错误地使用了reranking_mode。✅ 测试
📋 修改文件
agentscope-extensions/agentscope-extensions-rag-dify/src/main/java/io/agentscope/core/rag/integration/dify/DifyRAGClient.javaagentscope-extensions/agentscope-extensions-rag-dify/src/test/java/io/agentscope/core/rag/integration/dify/DifyRAGClientTest.java🔗 相关信息
API 参考示例:
{ "retrieval_model": { "reranking_enable": true, "reranking_model": { "reranking_provider_name": "langgenius/siliconflow/siliconflow", "reranking_model_name": "netease-youdao/bce-reranker-base_v1" } } }🤖 Generated with Claude Code