之前做了一个使用 ChatGPT 来处理纯文本的工具 PTPT ( https://v2ex.com/t/927694 ),最近新添加了一个实用的功能:lint 。传统的 linter 一般只能在特定的语言上使用,而 ChatGPT 能自动适应各种语言,因此萌生了这个想法。
在实现的过程中,进行了一些思考,也提出了一些解决方法,也一并分享出来,欢迎大家交流。
给 ChatGPT 提供一整个代码文件之后,line:char 会出现丢失的情况。猜想是 tokenize 的时候丢失了。如果要解决行号,在每一行开头手动补一个行号即可。char 的问题可能无法解决,但是作为 lint 来说没有 char 也还行。
目前经常出现一些没有用的建议或者是对语言的特性不了解、对上下文不了解等,导致模型提出一些无效的建议,需要再加人工去筛选。 猜想目前使用的是 GPT3.5 的模型,在 cursor 中,使用 GPT4 的模型,在一些比较明显的问题上,能够检测出来并给出比较有用的建议。
GPT 是个单向的模型,相比于 BERT ,对上下文理解能力略差。这是 GPT 先天的不足,经过 prompt 的调教暂时还无法解决。
go install github.com/leslieleung/ptpt@latest
或从 Release 下载
> ptpt lint <file>
> ptpt lint -l zh <file> # 中文建议
项目地址: https://github.com/LeslieLeung/PTPT, 欢迎 star
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.