feat: add medical knowledge base plugin for healthcare domain - #401
feat: add medical knowledge base plugin for healthcare domain#401openjiuwen-sync-bot[bot] wants to merge 2 commits into
Conversation
|
|
| ## 使用方法 | ||
|
|
||
| ```python | ||
| from plugins.medical_kb import MedicalKnowledgeBasePlugin |
There was a problem hiding this comment.
head_sha: 6d52165b67614b1241c48ba4d0752c637d4d91a8
🟡 Medium Priority
README 第 26 行 from medical_kb import MedicalKnowledgeBasePlugin 假定 medical_kb 是顶层包。实际代码位于 plugins/medical_kb/,且 plugins/ 无 __init__.py,因此该导入在任何标准 Python 环境中都会失败(ModuleNotFoundError: No module named 'medical_kb')。用户按文档复制示例代码将无法运行。
建议:修正示例中的导入语句以匹配实际目录结构。若保持当前布局,需要在 plugins/ 下添加 __init__.py 并改为 from plugins.medical_kb import MedicalKnowledgeBasePlugin。更好的方案是将插件移入 openjiuwen 包内统一管理。
| from typing import Optional | ||
|
|
||
| # 将 medical-ai-innovation 加入路径(相对路径,安装后可不依赖) | ||
| try: |
There was a problem hiding this comment.
head_sha: 6d52165b67614b1241c48ba4d0752c637d4d91a8
🟡 Medium Priority
第 18 行 sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "..")) 将三个 .. 拼接后的路径(即项目根目录的上一级)硬编码注入 sys.path,假定 medical-ai-innovation 恰好位于该位置。此路径依赖具体部署的目录结构,在容器化部署、打包安装(如 pip install)或 CI 环境下极易失效。且副作用在模块导入阶段即执行,难以绕过。该操作发生在第 18 行,直接导致后续第 20-24 行的 from medical_ai_innovation... 导入在路径不对时抛出 ModuleNotFoundError。
建议:用环境变量(如 MEDICAL_AI_INNOVATION_PATH)或配置文件指定 medical-ai-innovation 的路径,避免硬编码相对路径。如果 medical-ai-innovation 已通过 pip install 安装到 site-packages,则应移除此 sys.path 操作。如果确实需要在开发模式下使用本地路径,请至少使用 os.path.abspath 规范化并加入存在性检查。
| def batch_search(self, queries: list[str], **kwargs) -> list[dict]: | ||
| """批量搜索""" | ||
| return [self.search(q, **kwargs) for q in queries] | ||
|
|
There was a problem hiding this comment.
head_sha: 6d52165b67614b1241c48ba4d0752c637d4d91a8
🟡 Medium Priority
第 112 行 from medical_ai_innovation.knowledge_base.cli import _build_demo_guidelines 导入了 _build_demo_guidelines 函数,该函数名以 _ 开头,按 Python 惯例表示模块私有 API。medical-ai-innovation 的外部维护者可能在未通知下游的情况下重命名、移除或改变该函数的签名,导致 load_demo_guidelines() 方法在未来版本中直接崩溃。
建议:改用 medical-ai-innovation 提供的公开 API 构建演示指南数据;如果外库未提供公开构造方法,可在 medical-ai-innovation 项目中推动暴露一个公开函数,或在此插件中自行实现演示数据的构建逻辑。
Paired: GitHub #401 ↔ GitCode !2030
What type of PR is this?
/kind
Self-checklist:(请自检,在[ ]内打上x,我们将检视你的完成情况,否则会导致pr无法合入)