zhudotexe/kani

kani (カニ) is a highly hackable microframework for tool-calling language models. (NLP-OSS @ EMNLP 2023)

해결하는 문제

Kani는 채팅 기반 언어 모델 애플리케이션을 쉽게 만들 수 있도록 설계된 가벼운, 의견이 없는 프레임워크입니다. LangChain과 같은 대규모 프레임워크에서 흔히 볼 수 있는 '숨겨진 프롬프트 기술'과 무거운 복잡성을 피하면서도, 다양한 LLM 제공업체와의 인터페이스에 관련된 반복 코드를 제거합니다.

작동 방식

Kani는 OpenAI, Anthropic, Google, Hugging Face, llama.cpp, vLLM 등의 다양한 백엔드와의 상호작용을 추상화하는 모델에 의존하지 않는 인터페이스를 제공합니다. 채팅 상태, 토큰 수 계산, 메모리 관리를 자동으로 관리합니다. 도구 사용을 위해 @ai_function이라는 Python 데코레이터를 사용하여 로컬 함수를 모델에 노출하고, 잘못된 매개변수에 대한 검증과 재시도를 처리합니다.

대상 사용자

프롬프트와 제어 흐름에 대해 세밀한 제어를 원하면서도, 의견이 강한 프레임워크의 부담에서 벗어나고 싶은 NLP 연구자, 애호가, 개발자에게 적합합니다.

주요 특징

  • 모델 독립성: 코드 변경을 최소화하여 다양한 LLM 백엔드 간 전환 가능.
  • 함수 호출: Python 함수를 도구로 간단히 통합하고, 내장된 오류 피드백 및 재시도 로직 제공.
  • 비동기 설계: 병렬 채팅 세션을 지원하도록 처음부터 설계됨.
  • 다중 모달 지원: 확장 기능을 통해 이미지, 오디오, 비디오 입력을 통합적으로 처리.
  • CLI 도구: 설정 없이 바로 사용 가능한 명령줄 인터페이스로 빠르게 LLM 테스트 가능.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트