>  기사  >  백엔드 개발  >  주입 문서 생성 CLI 도구

주입 문서 생성 CLI 도구

DDD
DDD원래의
2024-09-14 08:16:021044검색

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을 수동으로 설치해야 했는데 이는 확실히 실망스러운 작업이었습니다. 또한 그는 도구를 시작할 때마다 API 키를 입력할 필요가 없도록 .env 파일을 도입하는 등 도구의 편리한 사용을 위한 기타 가능한 개선 사항을 강조했습니다. 나는 다른 사람들로부터 내 코드에 대한 의견을 듣는 것을 좋아합니다. 왜냐하면 이를 통해 개발자로서 성장할 수 있고 개발 수명 주기에 대한 관점이 확실히 넓어지기 때문입니다.

검토 및 테스트 중 문제

우리가 겪은 대부분의 문제는 내 도구에 있었습니다. 왜냐하면 Al의 CLI 프로그램은 Node.JS로 작성되었고 우리 둘 다 이에 대한 경험이 많기 때문입니다. 그에 비해 우리 둘 다 Python 생태계를 좋아하지 않아서 상호 작용하는 데 많은 어려움을 겪었습니다. Al의 저장소를 테스트할 때 그의 README에 작성된 문서, 특히 모델 및 API 키 옵션이 오해의 소지가 있거나 이해하기 혼란스러운 것으로 나타났습니다. 우리는 그의 도구에서 어떤 API 키와 모델이 허용되는지 알아내기 위해 시행착오 과정을 거쳐야 했습니다. 내 저장소를 테스트할 때 Al의 시스템에 있는 Python 버전은 매우 오래되었으므로(2.7) Al은 3.10.6(내 도구를 사용하는 데 필요한 버전)을 수동으로 설치해야 했습니다. 그러나 그럼에도 불구하고 문제는 끝나지 않았습니다. 설치했는데도 내 도구가 Pipenv를 사용하여 생성한 가상 환경에서는 여전히 인식되지 않았습니다. 그 후로 우리는 도구를 시작할 때마다 도구 사용에 필요한 API 키를 입력하는 데 어려움을 겪었습니다. 마지막으로 README 문서는 설치에 도움이 되지 않았습니다. 이를 따라가려고 했지만 PATH에서 인식되지 않는 일부 스크립트와 관련된 오류가 계속 발생했습니다. 그때 저는 모든 설치를 대신해 주는 일종의 자동화 도구가 필요하다고 결정했습니다. 제가 생각한 것 중 하나는 애플리케이션을 도킹화하는 것이었지만, 그렇게 하려면 어떻게든 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

To summarize the issues I found, they mostly covered cases when options that were written in the README file of this project, did not actually work, or the way they worked was misleadingly described.

Issues that were filed on my repo

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

To summarize the issues that were found in my repo, they were mostly related to the convenience of usage of my tool. Additionally, there was one bug when you supplied a file with syntactically correct source code to my tool, and it identified it as a file that does not contain valid source code.

Issues I managed to fix

I fixed all of my issues. All of them took less than 30 minutes to fix, but there was one issue, that took me like 2-3 hours to fix:
https://github.com/SychAndrii/infusion/issues/8

It mind seem weird since enhancement of README file should be easily achievable, but what the first suggestion by Al required me to completely remake the installation process of my tool, which required me to introduce 2 scripts for installation - one for bash and one for Powershell. The problem I could not solve for most of the time was that even though these setup scripts properly installed the needed version of python, this version of python was not passed down to the virtual environment, which you need to enter before using my tool. Eventually, I fixed that though.

What I learned

I have definitely improved my README skills. The way I provided example usage was very confusing for the end user. Additionally, I have finally used bash and powershell languages to do something myself, not for a school assignment, not because it was a requirement, but because I wanted to simplify the process of interacting with my tool. Finally, I decided to face the language I absolutely can't stand - which is python. Working with it was definitely not enjoyable for me, but I think it's essential to be able to use it if you want to find a job today, especially with AI trending.

위 내용은 주입 문서 생성 CLI 도구의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.