저는 최근 프로젝트 소유자인 Majd Al Mounayer와 협력하여 TypeScript를 사용하여 구축한 매우 우수한 채팅 완성 애플리케이션에 처음으로 기여했습니다. Majd는 ESLint부터 CI 작업에 이르기까지 개발에 대해 잘 이해하고 있습니다. 그의 프로젝트를 검토하면서 저는 탄탄한 기본 구조로 인해 애플리케이션이 확장 가능하고 새로운 기여자가 기능을 추가하기가 더 쉬워진다는 사실을 알게 되었습니다.
Groq 인스턴스를 기반으로 --token_usage 또는 -t 옵션을 제공하여 최적화 목적으로 얼마나 많은 토큰이 반환되거나 사용되는지 모니터링하는 것이 좋습니다. 일부 코드 블록은 각 모델에 적용되는 토큰 제한을 초과할 수 있으므로 이는 중요합니다.
여러 의견에 대해 토론하고 이 프로젝트에 이 기능을 추가하려면 어떻게 해야 하는지 이해했습니다.
handleTokenFlag를 추가하여 --token-usage 또는 -tu가 포함된 인수 전달을 확인합니다(예인 경우). 토큰 사용에 대해 표준 오류를 발생시킵니다.
[x] 빌드가 실패하지 않습니다.
[x] 현지에서 테스트되었습니다.
[x] Linting 오류가 해결된 경우.
handleTokenFlag를 추가하여 --token-usage 또는 -tu가 포함된 인수 전달을 확인합니다(예인 경우). 토큰 사용에 대해 표준 오류를 발생시킵니다.
[x] 빌드가 실패하지 않습니다.
[x] 현지에서 테스트되었습니다.
[x] Linting 오류가 해결된 경우.
CLI를 확인하는 인수에서 try-catch 블록으로 래핑할 필요가 없다는 점을 지적한 그의 제안에 따라 수정하고 변경했습니다.
handleTokenFlag를 추가하여 --token-usage 또는 -tu가 포함된 인수 전달을 확인합니다(예인 경우). 토큰 사용에 대해 표준 오류를 발생시킵니다.
[x] 빌드가 실패하지 않습니다.
[x] 현지에서 테스트되었습니다.
[x] Linting 오류가 해결된 경우.
optimit가 한 번에 여러 파일을 처리하면 출력이 매우 커질 수 있습니다. 그러면 사용자는 사용자 친화적이지 않은 토큰을 보기 위해 위로 스크롤해야 합니다. 토큰 정보는 처리된 모든 파일 출력 아래의 대부분의 프로그램 출력 하단에 표시되어야 한다고 생각합니다.
인용문에서 애플리케이션 종료 시 stderr을 호출하여 애플리케이션 대부분 하단에 토큰을 표시하도록 변경했습니다.
handleTokenFlag를 추가하여 --token-usage 또는 -tu가 포함된 인수 전달을 확인합니다(예인 경우). 토큰 사용에 대해 표준 오류를 발생시킵니다.
[x] 빌드가 실패하지 않습니다.
[x] 현지에서 테스트되었습니다.
[x] Linting 오류가 해결된 경우.
이 버그는 if 조건을 처리하는 완료 내부의 잘못된 if 조건으로 인해 --token-usage의 플래그가 인수에 전달되는지 확인하지만 응답을 찾을 수 없으면 오류를 발생시키는 else 조건과 함께 사용하고 있기 때문입니다. .token 대신
if (tokenUsageInformation && chatCompletion?.usage) {
this.saveTokenUsageInfo(chatCompletion?.usage);
} 그 밖의 {
새로운 오류 발생(`
${fileName}
파일에 대한 토큰 사용 정보를 사용할 수 없습니다.
`);
으로 변경
if (tokenUsageInformation) {
if (!chatCompletion.usage) {
throw new Error('토큰 사용 정보를 확인할 수 없습니다');
}
this.accumulateToken(chatCompletion?.usage);
이를 통해 토큰 사용이 올바르게 처리되고, 정보를 사용할 수 없는 경우 애플리케이션 흐름을 방해하지 않고 적절한 오류가 발생합니다.
전반적으로 이 프로젝트에 참여하면서 다양한 코딩 스타일에 대해 더 많이 배우고 적응할 수 있었습니다. ESLint를 사용하는 Majd의 일관성은 개발 패턴을 매우 명확하게 만들어 원활한 기여 프로세스를 보장하는 데 도움이 되었습니다.
위 내용은 첫 번째 기여의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!