// education

LLM 외부 도구 연동 (Function Calling과 에이전트)

**함수 호출(Function Calling)**은 LLM이 계산할 수 없는 실시간 정보(날씨, 주가, DB 조회)가 필요할 때, 직접 답변하는 대신 **"이 파이썬 함수를 이런 인자값으로 실행해 줘"**라고 개발자에게 요청하는 강력한 연동 기법입니다.


1. Function Calling 동작 4단계 워크플로우

  1. 사용자 요청: "지금 서울 날씨 어때?"
  2. LLM 수신 및 판단: "직접 모르는 데이터군! get_current_weather(location='Seoul') 함수를 실행하세요!" (함수명 및 인자 반환)
  3. 앱 코드 실행: 개발자 파이썬 코드가 실제 날씨 API를 호출하여 "맑음, 24도" 데이터 획득
  4. 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)를 스스로 반복 호출하며 작업을 완수하는 자율 인공지능 시스템입니다.

← 이전대화형 AI 챗봇 구현과 대화 이력 관리 다음 →임베딩(Embedding)과 RAG(검색 증강 생성) 기초