0Pricing
AI Prompt Engineering · 강의

함수 호출과 API 통합

LLM이 외부 함수나 API를 호출하도록 프롬프트를 작성해 실제 시스템과 상호작용하게 하는 방법을 익힙니다.

함수 호출과 API 통합은(는) CoddyKit의 무료 AI Prompt Engineering 강의입니다. 이것은 3개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Prompt Engineering 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Prompt Engineering 강의에는 총 3개의 강의가 포함되어 있습니다.

외부 도구 호출

LLM은 강력하지만 주로 텍스트 세계에 머뭅니다. 실제 세계의 정보가 필요하거나 행동을 수행해야 한다면 어떨까요?

함수 호출을 사용하면 LLM이 외부 도구 및 응용 프로그램 인터페이스와 상호작용할 수 있습니다! 이를 통해 언어와 행동 사이의 간극을 좁히고 인공지능이 다음을 수행할 수 있게 됩니다.

  • 최신 정보를 얻습니다(날씨, 주가).
  • 행동을 수행합니다(이메일 전송, 일정 예약).
  • 데이터베이스 또는 사용자 지정 도구에 연결합니다.

이를 통해 인공지능 시스템에 새로운 가능성이 열립니다.

LLM의 역할: 호출 제안

함수 호출을 활성화하면 사용 가능한 도구(함수)에 대한 설명을 LLM에 제공합니다.

LLM은 직접 답변하는 대신 도구가 도움이 될 수 있다고 판단할 수 있습니다. 그러면 함수 이름과 인수를 포함한 구조화된 함수 호출 "제안"을 출력합니다.

중요: LLM이 함수 자체를 실행하는 것은 아닙니다. 애플리케이션에 어떤 함수를 어떤 입력으로 호출할지 알려 줄 뿐입니다.

도구 정의

함수 호출을 사용하려면 LLM이 이해할 수 있는 방식으로 도구(함수)를 정의해야 합니다. 일반적으로 다음을 제공해야 합니다.

  • 함수의 이름(예: get_current_weather)
  • 함수가 수행하는 작업에 대한 설명(LLM이 올바르게 선택하는 데 매우 중요함)
  • 함수가 허용하는 매개변수, 매개변수의 유형과 설명 포함(예: location: string)

이 "스키마"는 유효한 호출을 제안하는 데 필요한 모든 정보를 LLM에 알려 줍니다.

날씨 도구 정의

다음은 날씨 도구를 정의하는 개념적인 파이썬 코드입니다. 명확한 설명과 매개변수를 확인해 보십시오. 이것이 LLM에 공개할 내용입니다.

이 함수는 LLM이 개념적으로 "호출"할 외부 도구를 나타냅니다.

def get_current_weather(location: str, unit: str = "celsius"):
    """
    Get the current weather in a given location.
    Args:
        location (str): The city and state, e.g. "London, UK"
        unit (str): The unit of temperature, "celsius" or "fahrenheit"
    Returns:
        dict: Weather information.
    """
    # In a real app, this would call a weather API
    if location == "London, UK":
        return {"temperature": "15", "unit": unit, "forecast": "cloudy"}
    elif location == "New York, USA":
        return {"temperature": "20", "unit": unit, "forecast": "sunny"}
    else:
        return {"temperature": "N/A", "unit": unit, "forecast": "unknown"}

도구를 위한 프롬프트 작성

LLM이 도구를 사용하도록 유도하려면 프롬프트에 사용자의 의도를 명확하게 명시해야 합니다. 그러면 LLM이 도구가 도움이 될 수 있는지 판단합니다.

LLM에게 명시적으로 “get_weather을 호출하라”고 말하는 것은 아닙니다. 대신 다음과 같이 도구 사용을 암시하는 질문을 합니다.

  • “런던의 날씨는 어떻습니까?”
  • “내일 회의를 예약해 주실 수 있습니까?”

도구 설명을 바탕으로 판단하는 LLM은 함수 호출이 필요하다는 것을 추론합니다.

LLM의 호출 제안

LLM이 도구를 사용하기로 결정하면 직접 답변하지 않습니다. 대신 호출할 함수와 해당 인수를 나타내는 구조화된 객체를 반환하며, 일반적으로 자바스크립트 객체 표기법 형식을 사용합니다.

그런 다음 애플리케이션이 이 출력을 분석합니다.

LLM에 “런던의 날씨는 어떻습니까?”라고 물었을 때 다음과 같이 제안할 수 있습니다.

{
  "tool_calls": [
    {
      "id": "call_abc123",
      "function": {
        "name": "get_current_weather",
        "arguments": "{\"location\": \"London, UK\", \"unit\": \"celsius\"}"
      },
      "type": "function"
    }
  ]
}

앱에서 도구 실행

LLM의 함수 호출 제안을 받으면 애플리케이션이 다음 작업을 수행합니다.

  1. 요청된 함수를 식별합니다(예: get_current_weather).
  2. 인수를 추출합니다(예: "London, UK").
  3. 애플리케이션 환경에서 실제 파이썬 함수를 실행하거나 응용 프로그램 인터페이스를 호출합니다.

LLM 외부에서 실제 세계의 행동이 일어나는 단계입니다.

LLM의 도구 출력 처리

애플리케이션이 함수를 실행하면 결과를 받습니다(예: {"temperature": "15", ...}).

그런 다음 이 결과를 원래 대화 기록 및 함수 호출 요청과 함께 LLM에 다시 전달합니다.

LLM은 이 새로운 정보를 사용하여 사용자의 원래 질문에 대한 자연어 응답을 생성합니다.

처음부터 끝까지의 상호작용

전체 과정을 하나로 살펴보겠습니다. 이 예시에서는 사용자의 질문으로 LLM이 함수 호출을 제안하고, 앱이 이를 실행한 다음, LLM이 최종 answer를 제공하는 흐름을 보여 줍니다.

상호작용 순환을 단순화하여 나타낸 것입니다.

def get_current_weather(location, unit="celsius"):
    if location == "London, UK":
        return {"temp": "15", "unit": unit, "forecast": "cloudy"}
    return {"temp": "N/A", "unit": unit, "forecast": "unknown"}

def simulate_llm_response(user_query):
    # LLM 'thinks' and decides to call a tool
    if "weather in London" in user_query:
        return {
            "type": "tool_call",
            "function": "get_current_weather",
            "args": {"location": "London, UK"}
        }
    return {"type": "text", "content": "I cannot help with that."}

def simulate_llm_final_response(tool_output):
    # LLM processes tool output and gives natural language
    temp = tool_output.get("temp", "N/A")
    forecast = tool_output.get("forecast", "unknown")
    return f"The weather in London is {temp} degrees and {forecast}."

def main():
    user_input = "What is the weather in London, UK?"
    print(f"User: {user_input}")

    llm_output = simulate_llm_response(user_input)

    if llm_output["type"] == "tool_call":
        func_name = llm_output["function"]
        func_args = llm_output["args"]
        print(f"LLM suggested calling: {func_name}({func_args})")

        # Execute the function
        tool_result = get_current_weather(**func_args)
        print(f"Tool output: {tool_result}")

        # Feed result back to LLM
        final_answer = simulate_llm_final_response(tool_result)
        print(f"LLM's final answer: {final_answer}")
    else:
        print(f"LLM: {llm_output['content']}")

if __name__ == "__main__":
    main()

함수 호출 확인

LLM이 함수 호출 요청을 반환한다고 가정해 보십시오. 애플리케이션이 취해야 할 다음 즉시 단계는 무엇입니까?

복습: 도구의 실제 활용

이 수업에서는 함수 호출과 응용 프로그램 인터페이스 통합을 통해 LLM이 실제 세계와 상호작용하는 방법을 살펴보았습니다.

다음 내용을 배웠습니다.

  • 설명과 매개변수를 포함한 도구(함수)를 정의합니다.
  • LLM이 어떤 도구를 어떤 인수와 함께 호출할지 제안합니다.
  • 애플리케이션이 실제 도구를 실행하고 그 결과를 다시 전달합니다.
  • LLM이 결과를 사용하여 최종적이고 충분한 정보를 담은 응답을 작성합니다.

이 강력한 기법을 사용하면 LLM이 단순한 텍스트 생성을 넘어 행동을 수행하고 최신 정보를 가져올 수 있습니다.

자주 묻는 질문

“함수 호출과 API 통합” 강의는 무료인가요?

네 — “함수 호출과 API 통합” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Prompt Engineering 강의 전체를 잠금 해제할 수 있습니다. AI Prompt Engineering 강의에는 총 3개의 강의가 포함되어 있습니다.

“함수 호출과 API 통합”에서 뭘 배우나요?

LLM이 외부 함수나 API를 호출하도록 프롬프트를 작성해 실제 시스템과 상호작용하게 하는 방법을 익힙니다. 브라우저에서 직접 실행하는 실습 코드로 AI Prompt Engineering을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AI Prompt Engineering을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AI Prompt Engineering은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 1번째 강의입니다.

“함수 호출과 API 통합” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AI Prompt Engineering 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AI Prompt Engineering 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 함수 호출과 API 통합
  2. 다중 에이전트 프롬프트 시스템
  3. LLM용 맞춤 도구와 플러그인
← AI Prompt Engineering(으)로 돌아가기