教程:https://www.bilibili.com/video/BV1yjz5BLEoY
代码:https://github.com/shangxiang0907/HeiMa-AI-LLM-RAG-Agent-Dev
云开发平台:https://hzh.sealos.run

已按你的需求改好,修改总结如下:
1.
- 在 下增加 ,与 、 同级。
- 默认值设为 ,并加了注释说明用途。
不同环境(如 、)如需覆盖,只需在对应 env 下再写一次 即可,会按现有逻辑与 default 合并。
2.
- 增加字段
- 与 yml 默认值一致,并写进 docstring。
从合并后的配置里读取顶层 (即 ),保证未配置时用默认值。- 便捷方法
- :基于项目根目录解析为绝对路径,便于直接用于文件读写,风格与 一致。
使用方式示例:
当前无新的 linter 报错;若你在 等工具Agent 智能体里需要用到该路径,可直接用 或 。
但是它可能不符合最佳实践和生产规范,帮我指出它的问题,并改造,但是我不希望影响它跟外部交互的接口和方式
已按你的要求完成改造,并保持与外部交互的接口和方式不变。下面是原实现中的问题和本次改造要点。
原实现中的问题
- 配置使用方式错误
使用了不存在的 。项目里应通过 拿到 ,再用 取路径。 - 全局可变状态且非线程安全
用模块级 并在 里直接修改,多线程下可能重复加载或读到半成品。应用“懒加载 + 单次加载 + 锁”的缓存方式。 - CSV 解析脆弱
手写按行 无法正确处理带逗号的引号字段。应使用标准库 (或 )解析。 - 导入与项目规范不一致
使用了 ,而项目其他模块统一用 。日志应使用 ,与 等一致。 - 返回值类型与描述不符
描述为“以纯字符串形式返回”,实际返回的是 dict。已改为先取 dict,再格式化为可读字符串(如 )后返回。 - RAG 服务在导入时即初始化
模块一加载就 ,会拖慢启动并强依赖向量库/模型。改为懒加载:首次调用 时再创建服务。 - 缺少与 PROJECT_OVERVIEW 一致的位置
按文档应在 ,并已在该路径创建模块。
改造后的行为(接口不变)
- 工具签名与描述:所有 的入参、返回类型、 与原先一致,调用方式不变。
- 配置:通过 和 读取 ,不再使用 。
- 外部数据:用 解析;懒加载 + 保证只加载一次且线程安全;未找到文件时记录警告并返回空数据,不抛错打断工具链。
- RAG:通过 懒加载 ,避免导入时初始化。
- 命名与导出:常量改为大写(如 、);提供 和 ,便于 按 里的 (如 、)做绑定。
文件位置:,并已添加 与 。若你希望 对应别的工具或组合逻辑,只需在绑定工具时改用其他函数或自定义封装即可。
agent_tools.py
运行
结果
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。
发布者:Ai探索者,转载请注明出处:https://javaforall.net/287193.html原文链接:https://javaforall.net
