chat: peg-native 도구 호출 파싱 강화 ([#24329](https://github.com/ggml-org/llama.cpp/pul
요약
llama.cpp의 PEG-native 도구 호출 파싱 기능이 강화되었습니다. OpenAI 스타일의 도구 호출 형식을 지원하며, 파싱 실패 시 명확한 에러 메시지와 로그를 제공하여 디버깅을 용이하게 합니다.
핵심 포인트
- OpenAI 스타일의 도구 호출(tool calls) 파싱 지원 강화
- 파싱 실패 시 원시 위치 대신 명확한 에러와 로그 반환
- 유효하지 않은 JSON 인자 발생 시 원시 문자열 유지 기능 추가
- autoparser 플래그를 통한 문법 트리거 범위 제어 가능
chat: peg-native 도구 호출 파싱 강화 (#24329)
- chat: peg-native 도구 호출 파싱 강화
build_json_tools_flat_keys에서 선택적인 선행 type: function 필드를 허용하여, 직렬화가 name 필드에서 시작되는 템플릿에서도 OpenAI 스타일의 도구 호출 (tool calls)이 파싱될 수 있도록 합니다.
최종 peg 파싱 실패 시, 원시 파서 위치와 입력을 던지는 대신 깔끔한 에러를 반환하고 파싱되지 않은 조각을 로그에 기록합니다.
func_args_not_string에서 인자가 유효한 JSON이 아닌 경우, 프롬프트 렌더링 (prompt render)을 중단하는 대신 원시 인자 문자열을 유지합니다.
- chat: peg-native 파싱 실패 노출
최종 peg 파싱 실패 시 원시 파서 위치와 입력을 던지던 문제를 수정했습니다. 대신 파싱되지 않은 조각을 로그에 기록하고 더 명확한 에러를 발생시켜, 예상된 형식과 일치하지 않는 모델 출력이 빈 어시스턴트 턴 (assistant turn)과 함께 조용히 실패하는 일이 없도록 합니다.
최소한의 변경이며, 파싱 성공 시의 동작은 변경되지 않습니다.
-
chat: peg-native에서 OpenAI 스타일 도구 호출 처리
-
nits
-
common: autoparser 플래그를 통해 OpenAI wrapper 문법 트리거 범위 제한
-
chat: analysis 플래그에 따라
type:function파싱 관용도 제어
openai_wrapper_trigger가 설정된 경우에만 선행 `
- Ubuntu x64 (CPU)
- Ubuntu arm64 (CPU)
- Ubuntu s390x (CPU)
- Ubuntu x64 (Vulkan)
- Ubuntu arm64 (Vulkan)
- Ubuntu x64 (ROCm 7.2)
- Ubuntu x64 (OpenVINO)
- Ubuntu x64 (SYCL FP32)
- Ubuntu x64 (SYCL FP16)
Android:
Windows:
Windows:
- Windows x64 (CPU)
- Windows arm64 (CPU)
- Windows x64 (CUDA 12) - CUDA 12.4 DLLs
- Windows x64 (CUDA 13) - CUDA 13.3 DLLs
- Windows x64 (Vulkan)
- Windows x64 (SYCL)
- Windows x64 (HIP)
openEuler:
- DISABLED
- openEuler x86 (310p)
- openEuler x86 (910b, ACL Graph)
- openEuler aarch64 (310p)
- openEuler aarch64 (910b, ACL Graph)
UI:
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기