自我检查
- 这仅用于提交错误报告,如果您想提问,请访问 Discussions 。
- 我已在 search for existing issues 中搜索了现有问题,包括已关闭的问题。
- 我确认我使用英语提交此报告(我已阅读并同意 Language Policy )。
- 请不要修改此模板 :) 并填写所有必需的字段。
Dify版本
0.6.11
云或自托管
自托管(Docker)
重现步骤
- 在顶部导航栏中,选择 "Tools" -> "Custom" -> "Create Custom Tool"。
- 点击 "+ Import from URL" 按钮,输入qdrant的API定义URL:https://raw.githubusercontent.com/qdrant/qdrant/master/docs/redoc/master/openapi.json ,然后点击 "OK"。
- 在界面上显示错误消息。
- 将JSON内容复制到下面的文本框中也会导致错误消息。
- 使用官方推荐的Swagger工具在 https://petstore.swagger.io/ 成功解析qdrant OpenAPI URL。
✔️ 预期行为
Qdrant OpenAPI定义应正确导入工具。如果有任何不兼容的端点,建议在UI中突出显示特定端点信息。
❌ 实际行为
它只会弹出错误消息,用户不知道如何解决它。
1条答案
按热度按时间ut6juiuv1#
要解决将Qdrant OpenAPI定义导入Dify工具版本0.6.11的问题,您需要确保模式是有效的并正确解析。
ApiBasedToolSchemaParser
类提供了处理模式解析和验证的方法。以下是逐步排查和解决问题的步骤:
parse_openapi_yaml_to_tool_bundle
方法验证模式。auto_parse_to_tool_bundle
方法检查模式类型是否有效。parse_openapi_to_tool_bundle
方法将模式解析为工具包。以下是一个代码片段,演示了这些步骤:
这段代码将帮助您验证和解析OpenAPI模式,并处理在过程中可能发生的任何错误。如果模式有效且正确解析,它将继续创建API工具提供程序1(https://github.com/langgenius/dify/blob/main/api/core/tools/utils/parser.py)2(https://github.com/langgenius/dify/blob/main/api/services/tools/api_tools_manage_service.py)。