>  기사  >  백엔드 개발  >  빨리 감기 및 3방향 병합

빨리 감기 및 3방향 병합

Barbara Streisand
Barbara Streisand원래의
2024-09-28 12:16:02935검색

Fast-forward and three-way merges

Infusion 프로젝트 작업 중:
https://github.com/SychAndrii/infusion

저는 LLM의 실시간 응답 스트리밍과 프로그램 완료 시 적절한 종료 코드 사용이라는 두 가지 새로운 기능을 구현하기로 결정했습니다. 그러나 변경 사항을 메인 브랜치에 통합하기 위해 기존의 끌어오기 요청을 생성하는 대신 내 저장소에서 로컬로 병합을 수행한 다음 병합 결과를 원격 저장소에 푸시하는 임무를 맡았습니다.

첫 번째 문제는 종료 코드를 구현하는 것이었습니다.
https://github.com/SychAndrii/infusion/issues/34

병합 커밋으로 종료됨:
https://github.com/SychAndrii/infusion/commit/b01f493a8eb3c86aad00760f41f8adf0b93b231e

이 작업은 Python이 상태 코드를 반환하는 sys 패키지를 제공하므로 구현하기가 매우 쉬웠습니다. 내 프로그램에 4개의 오류 상태 코드를 갖기로 결정했습니다:

0 - 프로그램이 성공적으로 종료되었습니다.
1 - 잘못된 옵션이 제공되었습니다.
2 - 잘못된 파일이 제공되었습니다.
3 - 알 수 없는 오류입니다.

상태 코드 추가에 더해, 더 많은 기능을 사용하여 코드를 좀 더 직관적으로 리팩토링했습니다.

두 번째 문제는 스트리밍 구현이었습니다.
https://github.com/SychAndrii/infusion/issues/33

병합 커밋으로 종료됨:
https://github.com/SychAndrii/infusion/commit/b01f493a8eb3c86aad00760f41f8adf0b93b231e

이 작업은 제가 프로젝트에 사용하고 있는 LangChain 라이브러리 때문에 더 어려웠습니다. 이 라이브러리는 비교적 새로운 것이므로 astream 함수를 사용한 스트리밍에 대한 문서는 매우 직관적이지 않고 이해하기 어렵습니다.

저는 항상 파이썬을 싫어했고 앞으로도 계속 파이썬을 할 것입니다. 저는 이 프로젝트에서 Python을 더 편안하게 사용하려고 노력했지만 C#, TypeScript 또는 Kotlin과 같은 언어 이후에는 Python을 진지하게 받아들일 수 없습니다.

위 내용은 빨리 감기 및 3방향 병합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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