목차

    ⏳ Time Log/1. One Day (Daily · TIL)

    [TIL] Day 97 — Python 가상환경(venv) + LangChain 개발 환경 세팅 + 호텔 챗봇 실행 (3/11)

    this.Serena 2026. 6. 8. 21:58

    [TIL] Day 97 — Python 가상환경(venv) + LangChain 개발 환경 세팅 + 호텔 챗봇 실행 (3/11)

    날짜: 2026-03-11
    기술 스택: Python uv LangChain FastAPI venv VS Code


    한 줄 요약: AI Data 과정 첫날 — Python 패키지 관리 핵심 개념(pip/import/venv) 정리 + uv로 빠르게 LangChain 환경 세팅 후 호텔 안내 챗봇 실행


    pip install vs import — 헷갈리는 두 개념 완벽 정리

    구분 py -m pip install import
    목적 패키지 다운로드 및 로컬 설치 설치된 패키지를 현재 코드에서 로드
    입력 위치 터미널 (CMD, PowerShell) 파이썬 코드 내부 최상단
    실행 주기 환경 당 최초 1회 스크립트 실행 시 매번
    # 터미널에서 설치 (1회)
    py -m pip install numpy pandas matplotlib seaborn
    # 코드 파일에서 호출 (매번)
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns

    Python 가상환경 (venv) — 프로젝트별 환경 분리

    왜 필요한가? 프로젝트 A는 pandas 1.0, 프로젝트 B는 pandas 2.0이 필요할 때
    글로벌 환경에 하나만 설치하면 버전 충돌 → 가상환경으로 프로젝트별 독립 관리

    핵심 워크플로우

    # 1. 생성 (프로젝트 시작 시 1회)
    py -m venv venv
    
    # 2. 활성화 (작업할 때마다)
    venv\Scripts\activate
    # → 터미널 앞에 (venv) 표시 확인
    
    # 3. 패키지 설치 (반드시 활성화 상태에서!)
    py -m pip install 라이브러리명
    
    # 4. 종료
    deactivate

    ⚠️ 주의: (venv) 표시 없이 pip install 하면 글로벌 환경에 설치됨


    uv — pip보다 10~100배 빠른 패키지 관리 도구

    Rust로 작성된 고성능 Python 패키지 관리자. pip, pip-tools, pyenv, poetry를 하나로 통합

    # Windows 설치
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    
    # 프로젝트 세팅
    uv venv .venv --python 3.13        # 가상환경 생성
    .venv\Scripts\activate             # 활성화
    uv pip install -r requirements.txt # 일괄 설치

    LangChain 개발 환경 구성 — requirements.txt 핵심 패키지

    langchain                # LangChain 메인
    langchain-core           # 코어 기능
    langchain-community      # 커뮤니티 확장
    langgraph                # 상태 기반 워크플로우
    langchain-openai         # OpenAI 모델 연동
    chromadb                 # 벡터 DB
    fastapi==0.115.0         # API 서버
    uvicorn[standard]==0.30.6 # ASGI 서버

    버전은 실습 환경 기준으로 고정. uv pip install -r requirements.txt 로 일괄 설치


    호텔 안내 챗봇 실행

    hotel_answer.txt 파일을 참조해 질문에 답변하는 간단한 RAG 챗봇

    # FastAPI 서버 실행
    uvicorn main:app --reload
    # → http://127.0.0.1:8000 에서 챗봇 확인

    더 알아볼 것

    • uv vs pip — 대규모 프로젝트에서 속도 차이 벤치마크
    • requirements.txt vs pyproject.toml — 현대적인 Python 프로젝트 구성
    • LangChain LCEL(LangChain Expression Language) 기본 문법
    • FastAPI @app.post 라우터와 Pydantic 모델 연동
    • ChromaDB에 문서를 임베딩하고 검색하는 RAG 기본 흐름