搜索
首页后端开发Python教程Infusion 文档生成 CLI 工具
Infusion 文档生成 CLI 工具Sep 14, 2024 am 08:16 AM

Infusion docs generation cli tool

Infusion 是一个开源工具,用于在代码文件中生成文档。它使用OpenAI gpt-4模型来编写注释。这是我的项目,我用 Python 编写的。

GitHub 链接:
https://github.com/SychAndrii/infusion

explainer.js 是一个开源工具,用于解释代码文件中的代码片段。它使用 Groq 模型来编写注释。这是我的队友 @aamfahim 的一个项目,他用 Node.JS 编写的

GitHub 链接:
https://github.com/aamfahim/explainer.js

我目前正在塞内卡理工学院 (Seneca Polytechnic) 参加一门开源课程,我们的任务是与另一个人合作,审查彼此的代码,并使用 GitHub 问题提出一些改进建议。我将描述这个过程。

沟通方式

两个存储库生成的大多数问题都是通过 Discord 调用使​​用同步通信完成的。之后,我们使用 Discord 消息进行异步交谈,因为使用 bash 脚本简化项目设置对我来说是一个困难的问题,并且每次我需要测试它是否在他的机器上运行时都打电话给我的队友似乎没有必要。在我的机器上使用 Docker 容器和 WSL Linux 子系统进行测试与在 Al 的系统上进行测试不同,它突出显示了重要的错误。

审查某人代码的经历

在检查队友的代码时,我没有遇到任何异常,因为我有丰富的 Node.JS 开发经验。我喜欢创造问题,然后立即提出解决方案。我们遇到的一个问题是,我们无法找到一种方法让我在我创建的问题上贴上标签,只有 Al 可以做到,这很烦人。

有人审查我的代码的经历

Al 提出了很多改进的空间,特别是在安装我的 CLI 工具方面。当他第一次分叉我的存储库时,最终用户需要手动安装特定版本的 python,这绝对是一项令人沮丧的任务。此外,他还强调了为了方便使用工具而可能进行的其他改进,例如引入 .env 文件,这样您就不必在每次启动该工具时输入 API 密钥。我喜欢从其他人那里获取对我的代码的输入,因为它可以让我成长为一名开发人员,并且它肯定会扩展我对开发生命周期的看法。

审查和测试期间的问题

我们遇到的大部分问题都与我的工具有关,因为 Al 的 CLI 程序是用 Node.JS 编写的,而且我们都有很多使用它的经验。相比之下,我们都不喜欢Python生态系统,所以我们在与它交互时遇到了很多麻烦。在测试 Al 的存储库时,我发现他的 README 中编写的文档具有误导性或难以理解,尤其是模型和 api-key 选项。我们必须经历反复试验的过程,才能确定他的工具接受哪些 API 密钥和模型。在测试我的存储库时,Al 系统上的 python 版本非常过时(2.7),因此他必须手动安装 3.10.6(使用我的工具所需的版本)。然而,即便如此,问题并没有结束。尽管他安装了它,但我的工具使用 pipelinev 创建的虚拟环境仍然无法识别它。此后,我们每次启动工具时都对输入使用该工具所需的 API 密钥感到沮丧。最后,自述文件对安装没有帮助。我们试图遵循它们,但我们不断收到与 PATH 上无法识别的某些脚本相关的错误。就在那时,我决定我们需要某种自动化工具来为您完成所有安装。我的一个想法是对应用程序进行 docker 化,但随后它需要我以某种方式将 Docker 卷映射到为我的工具指定的输出目录和输入文件,这将使一切变得更加复杂。因此,我记得很多包管理器实际上是命令行工具,如果您通过克隆 GitHub 存储库来安装它们,那么您需要通过执行某种 bash 设置脚本来设置它们。这就是我决定实施的想法。最后,我们都无法找到一种方法来为我们提交的问题分配错误或增强等标签。

我提交的问题

https://github.com/aamfahim/explainer.js/issues/13
https://github.com/aamfahim/explainer.js/issues/12
https://github.com/aamfahim/explainer.js/issues/11
https://github.com/aamfahim/explainer.js/issues/10
https://github.com/aamfahim/explainer.js/issues/9

总结我发现的问题,它们主要涵盖了该项目的自述文件中编写的选项实际上不起作用,或者它们的工作方式被误导性描述的情况。

在我的存储库中提交的问题

https://github.com/SychAndrii/infusion/issues/11
https://github.com/SychAndrii/infusion/issues/10
https://github.com/SychAndrii/infusion/issues/9
https://github.com/SychAndrii/infusion/issues/8

总结一下我的仓库中发现的问题,它们主要与我的工具使用的便利性有关。此外,当您向我的工具提供语法正确的源代码的文件时,存在一个错误,它会将其识别为不包含有效源代码的文件。

我设法解决的问题

我解决了所有问题。所有这些都花了不到 30 分钟的时间来修复,但有一个问题,我花了大约 2-3 个小时才修复:
https://github.com/SychAndrii/infusion/issues/8

这看起来很奇怪,因为自述文件的增强应该很容易实现,但是 Al 的第一个建议要求我完全重新制作我的工具的安装过程,这需要我引入 2 个安装脚本 - 一个用于 bash 和一个用于 Powershell。我大部分时间无法解决的问题是,即使这些安装脚本正确安装了所需版本的python,但该版本的python并没有传递到虚拟环境,您需要在使用我的工具之前进入虚拟环境。最终,我解决了这个问题。

我学到了什么

我确实提高了我的 README 技能。我提供示例用法的方式让最终用户感到非常困惑。此外,我终于使用 bash 和 powershell 语言自己做了一些事情,不是为了学校作业,不是因为这是一项要求,而是因为我想简化与我的工具交互的过程。最后,我决定面对我绝对无法忍受的语言——那就是Python。使用它对我来说绝对不是一件愉快的事,但我认为如果你今天想找到工作,能够使用它是至关重要的,尤其是在人工智能趋势方面。

以上是Infusion 文档生成 CLI 工具的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何解决Linux终端中查看Python版本时遇到的权限问题?如何解决Linux终端中查看Python版本时遇到的权限问题?Apr 01, 2025 pm 05:09 PM

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

我如何使用美丽的汤来解析HTML?我如何使用美丽的汤来解析HTML?Mar 10, 2025 pm 06:54 PM

本文解释了如何使用美丽的汤库来解析html。 它详细介绍了常见方法,例如find(),find_all(),select()和get_text(),以用于数据提取,处理不同的HTML结构和错误以及替代方案(SEL)

Python中的数学模块:统计Python中的数学模块:统计Mar 09, 2025 am 11:40 AM

Python的statistics模块提供强大的数据统计分析功能,帮助我们快速理解数据整体特征,例如生物统计学和商业分析等领域。无需逐个查看数据点,只需查看均值或方差等统计量,即可发现原始数据中可能被忽略的趋势和特征,并更轻松、有效地比较大型数据集。 本教程将介绍如何计算平均值和衡量数据集的离散程度。除非另有说明,本模块中的所有函数都支持使用mean()函数计算平均值,而非简单的求和平均。 也可使用浮点数。 import random import statistics from fracti

如何使用TensorFlow或Pytorch进行深度学习?如何使用TensorFlow或Pytorch进行深度学习?Mar 10, 2025 pm 06:52 PM

本文比较了Tensorflow和Pytorch的深度学习。 它详细介绍了所涉及的步骤:数据准备,模型构建,培训,评估和部署。 框架之间的关键差异,特别是关于计算刻度的

哪些流行的Python库及其用途?哪些流行的Python库及其用途?Mar 21, 2025 pm 06:46 PM

本文讨论了诸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和请求等流行的Python库,并详细介绍了它们在科学计算,数据分析,可视化,机器学习,网络开发和H中的用途

如何使用Python创建命令行接口(CLI)?如何使用Python创建命令行接口(CLI)?Mar 10, 2025 pm 06:48 PM

本文指导Python开发人员构建命令行界面(CLIS)。 它使用Typer,Click和ArgParse等库详细介绍,强调输入/输出处理,并促进用户友好的设计模式,以提高CLI可用性。

在Python中如何高效地将一个DataFrame的整列复制到另一个结构不同的DataFrame中?在Python中如何高效地将一个DataFrame的整列复制到另一个结构不同的DataFrame中?Apr 01, 2025 pm 11:15 PM

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

解释Python中虚拟环境的目的。解释Python中虚拟环境的目的。Mar 19, 2025 pm 02:27 PM

文章讨论了虚拟环境在Python中的作用,重点是管理项目依赖性并避免冲突。它详细介绍了他们在改善项目管理和减少依赖问题方面的创建,激活和利益。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)