환경 설정하고 GPT API 시작하기
파이썬 프로그래밍 환경 설정하기
대규모 언어 모델 기반의 애플리케이션 개발에 파이썬은 가장 널리 사용되고 있다. 잘 알려진 많은 서비스들도 파이썬을 지원하고, 내 pc 에 설치해서 사용할 올라마 또한 파이썬 연동을 지원해 준다고 하니, 파이썬이 대세인가 보다. 개발언어는 자바를 빼고는 모두 효율/편리 로 발전하는듯 보인다.
- 파이썬 설치
이 책의 예제는 3.12 버전을 기준으로 작성되어 있다 한다. 파이썬이 버전별로 호환문제가 있나보다.. 신규 언어가 버전업이 활발하면 항상 이런 버전 호환성 문제를 겪는다. Node 개발 초반에 얼마나 버전으로 괴롭힘을 당했던가.. 버전업 할때마다 싹 갈아치니까 이런일이 발생되는거 아닌지 싶다.
생각해 보니, 나중에 귀찮을 수도 있으니, 버전관리를 할 수 있는 도구를 탐색해 봤다.
- pyenv : 파이썬 버전 설치/전환 관리자
- venv : 프로젝트별 패키지 격리 (가상환경), 파이썬 내장
- poetry : 가상환경 + 패키지 + 버전 통합 관리, pyproject.toml로 재현 가능
- uv : pyenv + venv + poetry 올인원, Rust 기반으로 압도적으로 빠름
uv 가 뭐에 약자 인지 너무나 궁금한데, 특별한 이유는 없다고 한다.
단지 github 에는 An extremely fast Python package and project manager, written in Rust. 라고 적혀있다. 이걸 뭐 어떻게.. 해서 uv 라고 했나보다. 난 uv 로 해야지.
이 책은 venv 로 만드는 방법을 설명해 주고 있으나, 넘어가겠다. 비효율적으로 보임.
UV 설치
macOS and Linux.
$> curl -LsSf https://astral.sh/uv/install.sh | sh

Windows.
$> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
With pip
$> pip install uv
Or pipx
$> pipx install uv
업데이트 가능
$> uv self update
uv 설정
1. 원하는 Python 버전 설치
$> uv python install 3.12
2. 프로젝트 생성
$> uv init my-project
$> cd my-project
3. Python 버전 고정
$> uv python pin 3.12
4. 가상환경 구동 (.venv 생성)
$> uv sync
가상환경 다루기
$> uv run test.py
가상환경 폴더에서 uv run 명령어를 통해, 가상환경 내에 프로그램 구동이 가능하다.
특정 패키지 추가
$> uv add langchain
GPT API 시작하기
API란?
Application Programming Interface 로 프로그램 간 대화할 때 미리 정해둔 규칙체계 라고 하는데, 어렵고, 웹서비스 API 라고 한다면은 해당 서비스가 이러한 API 를 어떻게 호출하세요 라고 적어두고, 나는 그 방식으로 호출을 하면, 응답이 온다 정도가 이해하기 좋은거 같다.
만약 내 PC 에 서버를 구축했다고 가정하자. 간단하게 오늘의 날씨를 알려드림 API 가 서버에서 돌고 있고, 나는 다른 서비스를 만들고, 그 서버의 오늘의 날씨를 알려드림 을 호출한다. 만약 그 API 가 답을 얻기 위해서는 양자컴퓨터 수준의 연산이 필요하다고 가정한다면, 나는 답을 얻지 못할것이다.
즉 API 를 호출하고 응답이 오는 시간은, 제공 서버에 성능에 달려있기 때문에, OpenAI 같은 서비스가 제공하고 있는 API 를 호출했는데, 금방 응답이 온다는 것은, 그 컴퓨터가 엄청난 성능을 가지고 있다는 것이고, 인공지능 연관된 API 는 대부분 엄청난 연산결과를 필요로 한다는걸 의미한다. 즉.. 개인이 가질 수 없는 GPU 를 가지고 있다는 얘기지.. 중요한 얘긴 아니였다.
오픈AI 의 API
OpenAI 에 구독제와 별개로 API 는 건당 사용료를 지급하는 종량제 이다. 일반적으로 구독하면 모든걸 내가 사용할 수 있다고 생각했는데, AI 에 API 사용료는 점점 분리되어 지금은 대부분 건당 사용료 지급으로 바뀌는 추세다.
이 책은 OpenAI 에 API 사용을 위한 정보를 제공해 주고 있다. 나는 로컬 Ollama 를 연동시킬 것이기 때문에, 이 부분은 넘어가야겠다.
Ollama 설치
설치는 간단하다. (Ollama 설치)
Mac
$> curl -fsSL https://ollama.com/install.sh | sh
Linux
$> curl -fsSL https://ollama.com/install.sh | sh
Window
$> irm https://ollama.com/install.ps1 | iex
Ollama 는 OpenSource 로 공개된 LLM 들을 설치하고, 구동하기 위한 도구다. facebook 이 개발한 llama 를 사용하고 싶다면, 설치 후 아래와 같은 명령어로 간단하게 LLM 을 다운로드 받을 수 있다.
$> ollama pull llama3.2
이러면 LLM 설치된거고, 설치 후 localhost:11434 로 서버가 자동으로 구동되는데, 뭔가 구동되지 않았다면 ollama serve 하면 된다.
이후 테스트는 curl 을 통해 가능하다.
# curl로 테스트
curl http://localhost:11434/api/chat -d '{
"model": "llama3.2",
"messages": [{"role": "user", "content": "안녕"}]
}'
물론 나는 다른 pc 에 도메인까지 연결시켜 뒀기 때문에, localhost 대신 도메인을 집어넣고 테스트를 해야겠다.
GPU 는 채굴하다가 남은 Nvidia GTX 3060 12G 그래픽카드가 LLM 연산에 사용된다.
이 그래픽 카드로 돌릴 수 있는 LLM 은 대략 GPT 3 버전 정도의 성능은 된다고 하는데… 테스트로는 적당하다고 생각한다.
우선 이 챕터는 여기까지 환경설정으로 끝나는 거고, 다음으로는 실제로 파이썬을 이용해서 서비스를 만드는 장이다. 두근두근