함수 호출
function calling
뜻과 개념
모델이 외부 함수에 전달할 구조화된 인자를 제안하는 기능입니다.
어떻게 작동하나요?
함수 호출은 AI 모델이 작업에 필요한 도구와 입력 값을 정해 애플리케이션에 요청하는 방식입니다. 예를 들어 재고 조회 도구의 이름과 제품 코드를 반환하면 애플리케이션이 실제 조회를 수행하고 결과를 모델에 돌려줄 수 있습니다. 모델의 요청과 실제 실행은 구분되는 단계입니다.
도구를 사용할 수 있게 하려면 무엇을 하는 기능인지와 어떤 입력을 받는지 정의해야 합니다. 모델은 그 설명을 바탕으로 호출을 제안하지만, 입력이 올바르고 사용자가 그 작업을 할 권한이 있는지는 실행하는 시스템이 확인해야 합니다.
왜 알아야 하나요?
AI가 최신 자료를 조회하거나 정해진 업무 기능을 이용하게 할 수 있습니다. 답을 문장으로 추측하는 대신 실제 시스템에서 확인한 값을 사용할 수 있다는 점이 유용합니다. 동시에 잘못된 호출이 실제 변경을 만들 수 있으므로 기능의 범위를 작게 나누고 검증하기 쉬워야 합니다.
실무에서 적용하는 방법
먼저 읽기만 하는 도구와 데이터를 바꾸는 도구를 구분합니다. 각 도구의 입력 형식, 허용 범위, 실패 결과를 정의하고 실행 전에 검사하세요. 도구가 반환하는 오류를 모델이 성공으로 설명하지 않도록 정상 결과와 실패 결과도 명확하게 구분합니다.
실행 시간이 길거나 재시도가 필요한 업무는 같은 요청이 중복 처리되지 않게 설계합니다. 중요한 변경에는 확인 단계를 두고, 어떤 입력과 결과로 실행되었는지 기록을 남깁니다. 모델이 호출을 요청했다는 사실만으로 업무 권한이 생기는 것은 아닙니다.
실무에서는 이렇게 봅니다
상품 안내 도구가 제품 코드를 받아 현재 재고를 조회하는 상황을 생각해 보겠습니다. 코드를 확인할 수 없으면 모델이 임의로 채우기보다 추가 정보를 요청하게 합니다. 재고 확인과 주문 확정은 별도 기능으로 나누어 단순 문의가 구매 실행으로 이어지지 않도록 할 수 있습니다.
주의할 점
함수 이름과 입력 형식이 맞아도 업무적으로 틀린 요청일 수 있습니다. 존재하지 않는 고객 번호, 다른 사용자의 자료 접근, 허용되지 않은 변경 등을 별도로 검사해야 합니다. 외부 자료에 들어 있는 지시를 도구 실행의 근거로 받아들이지 않는 것도 중요합니다.
자주 묻는 질문
모델이 직접 데이터베이스를 실행하나요?
일반적인 사용자 정의 도구 흐름에서는 애플리케이션이 모델의 요청을 받아 실행합니다. 서비스가 제공하는 내장 도구는 처리 방식이 다를 수 있으므로 사용하는 환경의 문서를 확인해야 합니다.
형식을 엄격히 지정하면 검증이 필요 없나요?
형식 검사는 업무 권한과 값의 타당성 검사를 대신하지 않습니다. 숫자 형식이 맞더라도 허용 범위를 벗어나거나 다른 계정의 정보일 수 있습니다.