Python

(8/1/2024) 프로젝트 수행을 위한 이론: Python - 김용담 강사님 (5/5)

연마페인킬러 2024. 8. 3. 04:46
강의 주제 : API Programming과 실전 프로젝트
강의 목표 : open weather API와 LLM API를 이용하여 어플리케이션 구성에 필요한 구조를 작성합니다.
목차 :
- API 사용법 익히기
- .py로 모듈화된 구조 만들기

scikit-learn : https://scikit-learn.org/stable/
scikit-learn GitHub : https://github.com/scikit-learn/scikit-learn

PyTorch : https://pytorch.org/
PyTorch GitHub : https://github.com/pytorch/pytorch

LangChain : https://www.langchain.com/
LangChain Tutorials : https://python.langchain.com/v0.2/docs/tutorials/
LangChain GitHub : https://github.com/langchain-ai/langchain

모듈 단위 파이썬 구현 Mini PJT : https://codingiscoffee.notion.site/Upstage-AI-Lab-04-aefc177c4c2441a8b5e2c4e65c39efdb?pvs=4
모듈 단위 파이썬 구현 Mini PJT (추가 연습 예제) : https://codingiscoffee.notion.site/Upstage-AI-Lab-04-efdeaeb535bc42d083aac075a80bb68d

 

.py -> python script (python script는 실행 단위가 파일 단위)

.ipynb -> interactive python notebook

 

GitHub -> version 관리 tool

anaconda -> package 관리 tool

 

처음에는 어제 배웠던 python class 개념을 응용하여 간단한 실습 코드를 작성하였습니다.

test.py
0.00MB
module1.py
0.00MB
module2.py
0.00MB

 

 

 

그 다음에는 API를 사용해보는 시간을 가졌습니다. "[Upstage AI Lab 04] 파이썬 날씨 대시보드 개발"이라는 미니프로젝트를 진행해보았고, 프로젝트의 자세한 내용은 맨 위의 링크모음에 "모듈 단위 파이썬 구현 Mini PJT"를 참고해주시면 되겠습니다. 프로젝트 설명은 이해하기 쉽게 잘 정리되어있지만 막상 저 혼자 코드를 작성하려 해보니 막막하더라구용... 많은 연습이 필요하다고 느꼈습니다. 그래도 강사님이 친절히 열심히 잘 설명해주셔서 잘 따라갔습니다 ㅎㅎ!

data_fetcher.py
0.00MB
data_processor.py
0.00MB
logger.py
0.00MB
main.py
0.00MB
visualizer.py
0.00MB

 

 

 

이후에 추가 연습 예제로 위와 거의 똑같은 프로젝트 실습 문제를 하나 더 풀어보았습니다. 강사님 도움 없이 저 혼자서 풀어보았는데, 처음에 풀었던 예제와 거의 똑같은 코드라 크게 어렵지는 않았습니다. 다만 data_processor.py에서 API를 통해 입력받은 json 중에서 필요한 field 값을 추출하는 부분은 조금 어려웠습니다. python terminal에 json 값을 print out 해서 data가 어떻게 생겼는지 읽었는데 굉장히 헷갈리게 적혀있어서 제가 원하는 field 값을 알맞게 추출하는데 문법적으로 조금 애먹었습니다. HOWEVER! 시간이 좀 걸렸을 지라도 결국에는 혼자 풀어내어 굉장히 뿌듯했습니다 ㅎㅎ!

data_fetcher.py
0.00MB
data_processor.py
0.00MB
logger.py
0.00MB
main.py
0.00MB
visualizer.py
0.00MB

 

 

 

마지막으로, 강사님께서 다다음주 LangChain Project를 위해서 알고 있으면 좋은 개념들 + 환경 설정 내용들을 정리해서 공유해주셨습니다.

  1. anaconda : 파이썬 패키지 관리 툴
  2. docker :  Virtual Machine을 돌릴 수 있는 프로그램
  3. visual studio code : IDE, 사용법 자체를 잘 익혀두세요! (docker등을 쓴다면 dev container 사용법도)
  4. Langchain :  LLM 기반 검색 서비스를 만들기 위한 open-source framework
  5. WSL (Windows Subsystem for Linux) : 윈도우10, 11 사용자분들은 윈도우 자체에서 Linux(Ubuntu 22.04 LTS 권장)를 설치하실 수 있습니다. VSCode와 쉽게 연동됩니다.
  6. Information Retrieval : "검색" 이라는 분야의 개념을 알고 계시면 프로젝트 이해가 쉽습니다. (내일 자세하게 설명할 예정입니다)
  7. RAG (Retrieval Augmented Generation) : 필요한 지식을 검색하여, prompt에 추가해서 생성하는 기법.