llama.cpp python 라이브러리는@ggerganov의 llama.cpp에 대한 간단한 Python 바인딩입니다. 이 패키지는 다음을 제공합니다:
- ctypes 인터페이스를 통한 C API에 대한 저수준 액세스
- 텍스트 완성을 위한 고수준 Python API
OpenAI와 유사한 APILangChain호환성LlamaIndex호환성- OpenAI 호환 웹 서버
- 로컬 Copilot 대체
- Function Calling 지원
- Vision API 지원
- 다중 모델
개요
Integration 세부 정보
| Class | Package | Local | Serializable | JS support |
|---|---|---|---|---|
| ChatLlamaCpp | langchain-community | ✅ | ❌ | ❌ |
Model 기능
| Tool calling | Structured output | JSON mode | Image input | Audio input | Video input | Token-level streaming | Native async | Token usage | Logprobs |
|---|---|---|---|---|---|---|---|---|---|
| ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ |
설정
시작하고 아래에 표시된 모든 기능을 사용하려면 tool-calling을 위해 미세 조정된 모델을 사용하는 것이 좋습니다. NousResearch의 Hermes-2-Pro-Llama-3-8B-GGUF를 사용하겠습니다.Hermes 2 Pro는 Nous Hermes 2의 업그레이드 버전으로, OpenHermes 2.5 Dataset의 업데이트되고 정리된 버전과 자체 개발한 Function Calling 및 JSON Mode 데이터셋으로 구성되어 있습니다. 이 새로운 버전의 Hermes는 뛰어난 일반 작업 및 대화 기능을 유지하면서 Function Calling에도 탁월합니다.로컬 모델에 대해 더 깊이 알아보려면 다음 가이드를 참조하세요:
설치
LangChain LlamaCpp integration은langchain-community와 llama-cpp-python 패키지에 있습니다:
인스턴스화
이제 model 객체를 인스턴스화하고 chat completion을 생성할 수 있습니다:호출
Tool calling
먼저, OpenAI Function Calling과 거의 동일하게 작동합니다. OpenAI에는 도구와 그 인수를 설명하고 모델이 호출할 도구와 해당 도구에 대한 입력이 포함된 JSON 객체를 반환하도록 하는 tool calling API가 있습니다(여기서는 “tool calling”과 “function calling”을 같은 의미로 사용합니다). tool-calling은 도구를 사용하는 chain과 agent를 구축하고 모델에서 구조화된 출력을 얻는 데 매우 유용합니다.ChatLlamaCpp.bind_tools를 사용하면 Pydantic 클래스, dict 스키마, LangChain 도구 또는 함수를 모델에 도구로 쉽게 전달할 수 있습니다. 내부적으로 이들은 다음과 같은 OpenAI tool 스키마로 변환됩니다:
{"type": "function", "function": {"name": <<tool_name>>}}.
Structured output
Streaming
API reference
모든 ChatLlamaCpp 기능 및 구성에 대한 자세한 문서는 API reference를 참조하세요: python.langchain.com/api_reference/community/chat_models/langchain_community.chat_models.llamacpp.ChatLlamaCpp.htmlConnect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.