본문 바로가기
반응형

Python9

RAG 챗봇 만들기 1: PDF 불러오기와 청크 나누기 첫 프로젝트는 사내 규정집에 답하는 RAG 챗봇입니다. 직원이 "책 사면 회사에서 돈 줘?"라고 물으면, 챗봇이 규정집에서 관련 조항을 찾아 "업무용 도서 구입비는 연 30만 원까지 지원합니다 [1]"처럼 출처와 함께 답합니다. RAG의 원리는 RAG 정리 글과 LLM 공부 시리즈 7~9편에서 다뤘으니, 이번에는 직접 만들어 보겠습니다.RAG 챗봇은 4편에 걸쳐 만듭니다. 이번 글에서는 PDF에서 글자를 꺼내고, 검색하기 좋은 크기로 나누는 청크 나누기(chunking)를 다룹니다. 화려하지 않은 단계지만 RAG 품질의 상당 부분이 여기서 결정됩니다. 1. 이 프로젝트에서 만드는 것편단계결과물2편 (이번 글)문서 불러오기, 청크 나누기load_chunk.py3편임베딩, 벡터 DB 저장, 검색index.p.. 2026. 11. 2.
데이터 분석과 머신러닝 1: pandas 시작, 표 데이터 읽고 요약하기 ChatGPT 같은 LLM이 등장한 뒤로 "머신러닝 = LLM"처럼 느껴지기 쉽습니다. 그런데 회사에 실제로 쌓여 있는 데이터를 떠올려 보면 상당수가 표(테이블)입니다. 고객 정보, 주문 기록, 결제 내역, 센서 값. 이런 표 데이터로 "어떤 고객이 떠날까?", "다음 달 매출은 얼마일까?"를 예측하는 일에는 여전히 전통 머신러닝(로지스틱 회귀, 결정 트리, 그래디언트 부스팅 등)이 더 정확하고, 빠르고, 싸고, 설명하기 쉽습니다. 9편에서는 실제로 LLM과 나란히 비교해 봅니다.이 시리즈는 가상 온라인 쇼핑몰의 고객 데이터 하나로 처음부터 끝까지 진행합니다. 데이터를 읽고, 정리하고, 그래프로 살펴보고, 이탈할 고객을 예측하는 모델을 만들고, 그 모델을 제대로 평가하는 과정입니다. 첫 글에서는 데이터 .. 2026. 11. 1.
AI를 위한 수학 1: 벡터, 임베딩은 숫자 목록이다 AI 공부를 하다 보면 수학 용어에서 자주 막힙니다. "임베딩은 1024차원 벡터", "코사인 유사도로 검색", "가중치 행렬과 곱한다", "경사 하강법으로 손실을 줄인다", "교차 엔트로피 손실". 공식을 펼치면 기호가 쏟아지고, 기호를 외워도 실제 AI 코드와 어떻게 이어지는지는 잘 보이지 않습니다.이 시리즈는 방향을 바꿔 봅니다. 공식 대신 Python 코드로 직접 계산하고, 가능한 한 실제 AI 모델이 만든 숫자로 확인합니다. 임베딩은 실전 프로젝트 시리즈의 RAG에서 쓴 bge-m3에서, 확률은 qwen3:8b가 실제로 계산한 다음 토큰 확률에서 가져옵니다. 첫 글은 모든 것의 바탕인 벡터입니다. 1. 이 시리즈에서 다루는 것편수학AI에서 쓰이는 곳1~3벡터, 내적, 행렬임베딩, 의미 검색, 신.. 2026. 11. 1.
Ollama로 무료 로컬 LLM 실습 환경 만들기 LLM 공부 시리즈에서 개념을, AI 개발자 로드맵 시리즈에서 개발과 운영 방법을 정리했습니다. 이제 남은 질문은 하나입니다. "그래서 이걸로 무엇을 만들 수 있을까?"이번 AI 실전 프로젝트 시리즈에서는 배운 내용을 조합해 실제로 동작하는 앱을 처음부터 끝까지 만들어 봅니다. 사내 규정집에 답하는 RAG 챗봇, 회의 음성을 회의록으로 바꾸는 요약기, 고객 문의 자동 분류기, 스스로 자료를 찾아보는 리서치 에이전트, 코드 리뷰 봇, 영수증 정보 추출 앱을 만들고, 마지막에는 Docker로 배포까지 해 보겠습니다. 첫 글에서는 시리즈 전체 구성과, 모든 프로젝트에서 함께 쓸 실습 환경을 준비합니다. 1. 이 시리즈에서 만드는 것프로젝트편만드는 것RAG 챗봇2~5편사내 규정집 PDF를 읽고 출처와 함께 답하.. 2026. 11. 1.
Python으로 Claude, OpenAI API 호출하기 ChatGPT나 Claude를 웹 화면에서 쓰는 것과, 내 프로그램에서 LLM을 호출하는 것은 다릅니다. 내 프로그램에서 쓰려면 LLM 회사가 제공하는 API를 호출해야 합니다. API를 쓰면 LLM을 내 서비스, 업무 자동화 스크립트, 사내 도구에 자유롭게 연결할 수 있습니다.이번 글에서는 LLM API를 처음 호출할 때 알아야 할 API 키의 안전한 관리법, Python SDK로 첫 요청을 보내는 방법, 그리고 답변을 한 글자씩 받아 보는 스트리밍까지 정리해 보겠습니다. 예제는 Anthropic과 OpenAI의 공식 Python SDK를 기준으로 합니다. 1. API 키 발급과 안전한 관리API를 쓰려면 각 회사의 개발자 콘솔에서 API 키를 발급받아야 합니다. API 키는 "이 요청은 내 계정에서 .. 2026. 11. 1.
AI 개발자를 위한 Python 타입 힌트와 async/await 정리 AI 라이브러리의 예제 코드나 공식 문서를 보면 def ask(prompt: str) -> str:처럼 변수 옆에 붙은 표시와, async def, await 같은 낯선 키워드를 자주 만나게 됩니다. 각각 타입 힌트와 비동기 프로그래밍 문법입니다.두 문법 모두 Python 입문 과정에서는 잘 다루지 않지만, LLM API를 여러 번 호출하거나 웹 서버를 만들 때는 꼭 필요합니다. 이번 글에서는 AI 개발에 필요한 만큼의 타입 힌트와 async 문법을 예제와 함께 정리해 보겠습니다. 1. 타입 힌트란?타입 힌트(type hint)는 변수, 함수의 입력값과 반환값이 어떤 자료형인지 코드에 적어 두는 표시입니다. Python은 실행할 때 타입 힌트를 검사하지 않기 때문에, 힌트가 틀려도 코드는 그대로 실행됩니.. 2026. 10. 31.
AI 프로젝트 첫걸음, Python 가상환경 제대로 쓰기 LLM 공부 시리즈에서 프롬프트부터 에이전트, 멀티모달까지 LLM의 개념과 사용법을 살펴봤습니다. 이번 AI 개발자 로드맵 시리즈에서는 한 걸음 더 들어가 AI 앱을 직접 만들고, 배포하고, 운영하는 데 필요한 내용을 단계별로 정리합니다.첫 단계는 개발 기본기입니다. AI 개발에서 가장 많이 쓰는 언어는 Python이고, Python 프로젝트를 시작할 때 가장 먼저 익혀야 할 것이 가상환경과 패키지 관리입니다. 이번 글에서는 가상환경이 왜 필요한지, Windows에서 만들고 쓰는 방법, 패키지를 기록하고 다시 설치하는 방법을 정리해 보겠습니다. 1. 가상환경이 필요한 이유Python 패키지는 기본적으로 PC 전체에 하나의 공간으로 설치됩니다. 프로젝트가 하나일 때는 문제가 없지만, 여러 프로젝트를 다루다.. 2026. 10. 30.
[python](error) is not in list 배열 값 중 index를 알아오기 위해 index 함수 사용 시 ValueError: 값 is not in list 에러 발생 해당 에러는 리스트 안에 '값이 없을 때 발생 하기 코드 실행 시 'ValueError: 5 is not in list' 에러 발생 arrVal = [1, 2, 3, 4] print(arrVal.index(5) 예외처리 try : idx = arr.index(val) except ValueError : print("ValueError") 2022. 3. 12.
[python] BeautifulSoup 파이썬을 이용한 웹 크롤링 시 데이터 추출하기 위한 함수 requests 설치 pip install requests BeautifulSoup 설치 pip install beautifulsoup4 파이썬에서 기본 내장함수가 아니라서 import 필요 import requests from bs4 import eautifulSoup 사용법 import requests from bs4 import BeautifulSoup url = 'https://naver.com' res = requests.get(url) if res.status_code == 200: html = res.text soup = BeautifulSoup(html, 'html.parser') print(soup) else : print(res... 2022. 3. 12.
반응형