githubEdit

Clip 1: LLM api 이해하고 호출해보기

학습 목표

  • LLM API의 기본 개념과 작동 원리를 이해합니다

  • OpenAI API를 사용하여 실제로 LLM을 호출하는 방법을 배웁니다

  • LangChain을 활용한 LLM 호출 방법을 익힙니다

LLM API란?

LLM(Large Language Model) API는 거대 언어 모델의 기능을 프로그래밍적으로 사용할 수 있게 해주는 인터페이스입니다. 우리가 ChatGPT 웹사이트에서 채팅하듯이, 코드를 통해 프로그래밍적으로 AI와 대화하고 응답을 받을 수 있습니다.

LLM API의 핵심 구성 요소

spinner

LLM API 호출의 기본 흐름:

  1. 요청(Request): 사용자의 질문이나 명령을 API에 전송

  2. 처리(Processing): LLM이 요청을 분석하고 응답 생성

  3. 응답(Response): 생성된 텍스트를 JSON 형태로 반환

OpenAI API 직접 호출하기

OpenAI API는 가장 널리 사용되는 LLM API 중 하나입니다. GPT 모델을 프로그래밍적으로 사용할 수 있게 해줍니다.

1. 기본 설정

먼저 OpenAI 라이브러리를 설치합니다:

2. Python으로 OpenAI API 호출하기

주요 파라미터 설명

  • model: 사용할 LLM 모델 (gpt-5, gpt-5-mini 등)

  • messages: 대화 히스토리 배열

    • system: AI의 역할과 행동 방식 정의

    • user: 사용자의 질문이나 요청

    • assistant: AI의 이전 응답 (대화 컨텍스트 유지 시 사용)

  • reasoning_effort: 추론 깊이 조절 ("minimal", "low", "medium", "high")

    • GPT-5 전용 파라미터로, 내부 사고 과정의 깊이를 조절합니다

    • "minimal": 빠른 응답, 간단한 질문에 적합

    • "low": 일반적인 질의응답

    • "medium": 적당한 추론이 필요한 작업

    • "high": 복잡한 논리, 수학 문제, 코딩 등

  • max_completion_tokens: 생성할 최대 토큰 수

    • GPT-5 모델은 추론 토큰 + 응답 토큰을 모두 포함하므로 충분히 큰 값 권장

중요: GPT-5 시리즈는 추론 모델(reasoning model)이므로 temperature, top_p, presence_penalty, frequency_penalty 등의 샘플링 파라미터를 지원하지 않습니다. 대신 verbosity(응답 길이 조절)와 reasoning_effort(사고 깊이 조절) 같은 새로운 파라미터를 제공합니다.

GPT-5의 추론 토큰 이해하기

GPT-5 모델은 내부적으로 "생각하는" 과정을 거칩니다:

spinner
  • reasoning_tokens: 내부적으로 문제를 분석하고 추론하는데 사용되는 토큰 (사용자에게 보이지 않음)

  • output_tokens: 실제로 사용자에게 전달되는 응답 텍스트

  • max_completion_tokens: 이 두 가지를 합친 전체 토큰 수의 상한선

예를 들어, max_completion_tokens=500으로 설정하면:

  • reasoning에 500개를 모두 사용하면 → 응답이 비어있게 됨

  • reasoning에 100개, 응답에 400개 사용 → 정상적인 답변

따라서 충분한 토큰을 할당하거나 reasoning_effort를 적절히 조절하는 것이 중요합니다.

LangChain으로 LLM 호출하기

LangChain은 LLM 애플리케이션 개발을 쉽게 만들어주는 프레임워크입니다. 다양한 LLM 제공자를 통일된 인터페이스로 사용할 수 있게 해줍니다.

1. LangChain 설치

2. Python으로 LangChain 사용하기

OpenAI API vs LangChain 비교

특징
OpenAI API 직접 호출
LangChain

유연성

OpenAI 모델만 가능

여러 LLM 제공자 지원

고급 기능

직접 구현 필요

템플릿, 체인, 메모리 등 내장

사용 사례

간단한 LLM 호출

복잡한 AI 애플리케이션

코드 재사용성

낮음

높음 (템플릿, 체인)


강사 정보

  • 작성자: 정구봉

  • LinkedIn: https://www.linkedin.com/in/gb-jeong/

  • 이메일: bong@dio.so

강의 자료

  • 강의 자료: https://goobong.gitbook.io/fastcampus

  • Github: https://github.com/Koomook/fastcampus-ai-agent-vibecoding

  • FastCampus 강의 주소: https://fastcampus.co.kr/biz_online_vibeagent

Last updated