**함수 호출(Function Calling)**은 LLM이 계산할 수 없는 실시간 정보(날씨, 주가, DB 조회)가 필요할 때, 직접 답변하는 대신 **"이 파이썬 함수를 이런 인자값으로 실행해 줘"**라고 개발자에게 요청하는 강력한 연동 기법입니다.
1. Function Calling 동작 4단계 워크플로우
- 사용자 요청: "지금 서울 날씨 어때?"
- LLM 수신 및 판단: "직접 모르는 데이터군!
get_current_weather(location='Seoul')함수를 실행하세요!" (함수명 및 인자 반환) - 앱 코드 실행: 개발자 파이썬 코드가 실제 날씨 API를 호출하여 "맑음, 24도" 데이터 획득
- LLM 최종 답변: 날씨 데이터를 전달받아 "현재 서울 날씨는 맑고 24도입니다." 최종 자연어 답변 완성
2. 파이썬 Function Calling 구현 예제
# 1. 실제 실행할 외부 파이썬 함수 정의
def get_current_weather(location):
if "서울" in location:
return "맑음, 기온 24도"
return "정보 없음"
# 2. OpenAI에 도구(Tools) 규격 등록
tools = [{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "특정 도시의 현재 날씨를 조회합니다.",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "도시 이름 (예: 서울, 부산)"}
},
"required": ["location"]
}
}
}]
# 3. API 호출
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "지금 서울 날씨 알려줘"}],
tools=tools
)
print(response.choices[0].message.tool_calls[0].function)
# Output: name='get_current_weather', arguments='{"location":"서울"}'
3. 자주 묻는 질문 (Q&A)
Q. AI 에이전트(Agent)란 무엇인가요? A. 단순히 묻는 말에 대답만 하는 모델을 넘어, 주어진 목표 달성을 위해 직접 계획을 세우고, 필요한 도구(Function)를 스스로 반복 호출하며 작업을 완수하는 자율 인공지능 시스템입니다.