Python 83

[Python] requirements.txt 작성하기

협업을 하다보면 requirements.txt 를 통해 본인이 실험하고 있는 환경에 대한 정보를 전달할 때가 존재한다. 가장 확실한 방법은 Dockerfile을 공유하여 docker image를 pull해서 서로 같은 가상환경 내에서 작업을 하는 것이다. 그러나, 가상환경을 잡고 하는 부분은 처음 시작하는 사용자에게는 어려울 수 있고, 해당 언어에 대한 내용을 알아야 사용할 수 있기 때문에 requirements.txt를 사용하게 된다. (추가로 poetry를 사용하여 버전 freeze를 할 수도 있다.) 그렇다면 requirements.txt를 어떻게 작성하는지에 대해서 알아보자. 예를 들어 pandas 를 설치하게 된다면 아래와 같은 코드를 사용하여 설치할 것이다. !pip install pandas..

Python 2025.08.19

[Python] 폴더 내 모든 경로의 파일 조회하기

파이썬을 사용하다 보면 경로에 대해 중요시하게 된다. Dataset의 경로 내에 있는 '.csv' 등의 파일을 모두 호출해서 해당 파일을 for 문 형태로 받아오는 일이 생길 수 있다. 이때 주로 사용하는 패키지는 os와 glob가 있다. os.walkBASE_DIR = os.path.dirname(__file__) # os.path.dirname(os.getcwd())def find_file(ext='.csv'): """ 확장자가 일치하는 파일을 호출함. """ paths = [] for (path, _, files) in os.walk(BASE_DIR): for filename in files: ex = os.path.splitext(fil..

Python 2025.08.19

[LangGraph] LangGraph 톺아보기

Contents LangGraph IntroductionLLM을 사용하다 보면 LangChain과 LangGraph에 대해서 들어보았을 것이다. 두 패키지는 LLM을 쉽게 사용할 수 있고, LLM이 가지고 있는 환각(Hallucination)을 완화하기 위해 제안되었다. LLM의 가장 고질적인 문제인 환각 현상을 회피하기 위해 RAG(Retrieval-Augmented Generation)이 제안되었고, RAG는 LLM에서 학습되지 않은 정보에 대해서 답변할 때 인터넷 혹은 논문 등과 같은 정보를 활용하여 환각이 발생하지 않고 정확한 답변을 내는 기법 중 하나라고 볼 수 있다. 금융권이나 업무 보조 등으로 LLM을 사용하는 경우에는 관련 약관을 제공하거나 법률 등의 질문에 대한 답변에서 환각이 발생하..

Python/Langgraph 2025.08.14

[Python] dotenv로 api key 환경변수 설정하기 / 숨기기

파이썬에서 환경변수를 설정하는 방법은 다양하다. 실제 제어판에서 환경변수를 설정하고 경로를 지정하는 방법 외에 dotenv를 통해서도 지정이 가능하다. 도커를 사용하면 Docker Image 파일에서 설정하는 것이 가능하지만, Conda 환경에서는 .env 파일로 관리하는 것이 효율적이다. 주로 LLM 모델을 사용할 때 API_KEY를 지정하는 경우 주로 사용된다. from dotenv import load_dotenvload_dotenv()# True 위 과정을 수행하려면 실행하는 ipynb 혹은 py 파일와 같은 경로상에 .env라는 파일이 필요하다. 해당 파일 내에 API_KEY를 설정해두고 호출하면 환경변수가 설정된 것을 확인할 수 있다. # .envANTHROPIC_API_KEY='your ap..

Python 2025.08.13

[python] pip 설치 시 SSLError 문제 해결하기

SSL(Secure Sockets Layer)은 인터넷상에서 데이터 통신 보안을 제공하는 암호 프로토콜을 의미한다. 파이썬에서 해당 오류가 발생하는 것은 회사 내 방화벽 문제나 SSL certification이 제대로 되지 않았음을 의미한다. 위 문제를 해결하는 방법은 두 가지가 존재한다. 첫 번째로는 pip 시 해당 url 정보는 신뢰할 수 있는 사이트라는 것을 명시하고 설치를 할 수 있다. !pip install {packages} --trusted-host pypi.org --trusted-host files.pythonhosted.org 설치하는 packages는 신뢰할 수 있는 파일이라고 명시하고 방화벽 이슈가 발생하지 않도록 처리하는 것이다. 두 번째 방법은 ssl 자체에 검증을 수행하는 과..

Python 2025.08.12

Shell file로 딥러닝 학습하기

딥러닝에는 다양한 하이퍼파라미터가 존재한다. 이때, Wandb의 Sweep을 사용하지 않고, 학습하고 싶은 경우에는 shell 파일을 통해 로그를 저장하면서 학습할 수 있다. 아래와 같이 learning rate, batch size, sequence length 등을 지정하고, 모델을 돌리게 된다면, 각 인자를 변환하면서 모델이 백그라운드로 실행되게 된다. for lr in 0.001 0.0001 0.00001 do for batch in 8 16 32 64 do for len in 64 128 256 512 do nohup python3 train.py --lr ${lr} --batch_size ${batch} --max_length ${len} &> logs/logs-${lr}-${batch}-${..

Python 2024.02.26

[Python] 패키지 버전 확인하기 with code

Contents 파이썬 내에서 패키지의 버전을 확인하는 방법은 다양하다. 간단하게 pip를 사용해서 확인할 수도 있으나, 코드를 통해 확인할 수도 있다. CLI 에서도 확인하는 것이 가능하고, Jupyter Notebook에서도 확인이 가능하다. 이번 글에서는 버전을 확인할 수 있는 다양한 방법에 대해서 알아볼 것이다. pip list pip list는 파이썬에 설치된 패키지의 버전을 확인할 수 있는 가장 기본적인 코드라고 볼 수 있다. 단점은 설치된 패키지가 한 번에 나오기 때문에 찾는 것이 어렵다는 것이다. # CLI pip list # Jupyter !pip list pip show 하나의 패키지에 대한 버전을 확인하고 싶은 경우에는 pip list 대신 pip show를 사용해서 효율적으로 찾는 ..

Python 2023.12.27

[프로그래머스] 정수 삼각형 - Python

7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 위 형태로 Triangle을 구성하면 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 가 된다. 먼저 문제를 풀기 전에 Index Error가 발생하지 않도록 각 행의 양 옆에 [0]을 P..

Python/Algorithm 2023.12.27

[프로그래머스] 큰 수 만들기 - Python

문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 2자리 이상, 1,000,000 자리 이하인 숫자입니다. k는 1이상, number의 자릿수 미만인 자연수입니다. 해당 문제는 탐욕법(Greedy) 방식으로 접근하는 문제다. d..

Python/Algorithm 2023.12.27

[Wandb] Wandb 사용법 + Sweep with Pytorch

Contents Weight & Biases Wandb (Weight & Biases)는 MLOps 플랫폼이며, 딥러닝을 학습하기 위해 필요한 기능들을 제공한다. wandb.ai 에서 회원가입을 하게 되면 API 키를 발급받을 수 있다. 해당 API를 통해 wandb에 login하면 사용할 수 있다. pip install wandb wandb.login() Wandb init Wandb를 사용하기 위해서는 처음에 init을 설정해주어야 한다. 기본적으로 하이퍼 파라미터(Hyper-Paramters)들은 Yaml로 관리하는 것이 편하기 때문에 아래와 같이 사용했다. learning_rate: 1e-5 batch_size: 64 epochs: 10 import yaml def load_yaml(path): ..

Python 2023.12.21
반응형