项目介绍: DoctorGPT
DoctorGPT 是一个旨在将 GPT 引入生产环境以诊断错误的项目。虽然目前还未正式投入生产使用,但它已为开发者提供了一种轻量级、自治的工具,用于监控应用程序日志并进行问题诊断。
项目功能
DoctorGPT 是一个自包含的二进制文件,能够实时观察日志文件。当日志中出现由用户定义的正则表达式匹配条件时,它会生成一个诊断文件,并结合所触发的日志信息及之前上下文,通过 OpenAI API 进行错误诊断。
使用方法
要启动 DoctorGPT,使用以下命令:
OPENAI_KEY=$YOUR_KEY doctorgpt --logfile="program.log" --configfile="config.yaml" --outdir="~/errors"
通过这条命令,DoctorGPT 将无限期地追踪 program.log
中的日志行,并将诊断输出到 ~/errors
目录下。所需的配置在启动时通过 config.yaml
文件设定。
参数说明
--logfile
:需要监控的日志文件路径。--configfile
:配置文件所在路径,必须为 YAML 格式。--outdir
:输出诊断文件的目录,若不存在将自动创建。- 其他参数包括调试模式、缓冲区大小、API 最大令牌数量等,详情见参数列表。
配置与解析器
DoctorGPT 的强大之处在于其灵活的日志解析器。用户可以在 config.yaml
中定义多种日志格式的解析器。例如:
parsers:
- regex: '^\[(\d{4}\/\d{6}\.\d{6}):(?P<LEVEL>\w+):([\w\.\_]+)\(\d+\)\]\s+(?P<MESSAGE>.*)$'
triggers:
- variable: "LEVEL"
regex: "ERROR"
...
通过自定义的正则表达式,DoctorGPT 可以精确识别并触发错误事件,忽略特定日志级别如调试日志,或过滤掉敏感信息。
未来计划
项目当前尚在开发中,未来工作包括:
- 解析结构化日志。
- 基于实际日志示例生成配置文件。
- 提供对 Windows 和 Mac 的全面支持。
- 增强生产环境的可靠性,如安全性、认证、监控等。
项目特性
- 独立于环境,体积小巧,自给自足。
- 支持多种日志格式及相同日志条目的多解析。
- 强大的正则表达式匹配能力。
- 自定义变量名支持,最大化日志上下文用于诊断。
安装与依赖
安装可以通过 go install
完成,依赖包括 Go
编译器、docker
、k3d
、kubectl
和 make
。这些工具主要用于项目开发和测试,具体安装命令详见项目文档。
参与贡献
项目欢迎用户提出改进建议,例如提高程序的实用性、便携性和效率等,以及报告 Bug。大规模的设计变更建议先通过 issue 进行讨论,以便确定最佳策略。
通过一系列命令,开发者可以轻易上手项目的开发、测试与部署。DoctorGPT 希望成为开发者诊断软件系统错误的得力助手,提升工作效率。