day 024 KPMG Future Academy

sottuggung·2024년 12월 26일
0

KPMG-future-academy

목록 보기
24/41

KPMG Future Academy AI 활용 데이터 분석가 3기 24일차 수업을 2024년 12월 19일에 참석했다.

  1. 챗봇 만들기
  2. RAG, LangChain

지난 시간 streamlit 마무리
로딩 스피너 추가

이미지 생성기 추가

1. 챗봇 만들기

비주얼스튜디오 주석처리
ctrl + k, ctrl + c

포트 하나 더 열기

이제 개발환경에서 여러 터미널 상에 동시 작업할 수 있다.

챗봇 중간 작업

답변 글자 스트리밍되게 설정

답변을 OpenAI로 받아오도록 설정

키 설정 완료하니 OpenAI가 답변함

chunk 단위로 답변 출력을 해도 된다.

문맥을 기억하는 작업 추가

이제 나만의 챗봇으로 좀 더 디벨롭을 진행하였다.
게임속 NPC로 설정된 멍챗봇

2. RAG, LangChain

RAG 검색 증강 생성

인덱싱 = 나만의 데이터 구축
Load -> Split -> Embed -> Store

Embed : 데이터를 모두 숫자로 변형
Store : 벡터 데이터베이스 3차원 형태로 저장

사용자 맞춤형 답변을 받을 수 있음.

(점심시간 전까지 1차 프로젝트 관련하여 30분 간 논의하는 시간을 가졌다.)

실습
RAG 활용 뉴스 분석

커널에 연결

base가 아닌 streamlit 커널에서 작업중인지 확인

가상환경 터미널에 LangChain, LangChain-community, LangChain-openai, pypdf, tiktoken, FAISS, BS4 설치

pip install LangChain LangChain-community LangChain-openai pypdf tiktoken faiss-cpu bs4

tiktoken : openAI 토큰 계산 및 관리 라이브러리
faiss-cpu : 벡터 검색 라이브러리, facebook AI 연구팀에서 개발
bs4 : beautiful soup 웹 스크래핑 라이브러리

.env 파일에 OpenAI 키 저장

  1. LOAD

  1. SPLIT

  2. EMBED, STORE

  3. QUESTION

  4. RETRIEVE

  5. RESULT

LangChain document
https://python.langchain.com/docs/introduction/

참고 서적
https://wikidocs.net/book/14314

부영기업의 출산 부흥 정책에 대한 기사에 '해당 기간에 연년생과 쌍둥이 자녀가 있으면 총 2억원을 받게 됩니다.'라는 모호한 기사문이 있어 이에 대해 ChatGPT에게 물어보았다.

기사 발췌 : https://n.news.naver.com/article/437/0000378416

아래부터 질문 및 답변.

마지막 답변에 대한 나의 질문 : 쌍둥이는 자정에 걸쳐서 태어나면 '한해에 태어난 쌍둥이'라는 개념에 포함시키면서, 연년생은 왜 '한해에 태어난 연년생' 개념에 포함 안 시키는지...?

기사의 원래 글이 주장하는 바는 추정하건데 다음과 같다.
해당 기간 동안에 자녀가 태어날 때마다 각각 1억원을 주고, 쌍둥이나 연년생도 각각 1억원씩 준다는 내용 같다. (이 경우 연년생은 왜 굳이 언급한 것인지 모르겠다.) 혹은, 쌍둥이이기도 하고 그 쌍둥이가 먼저 태어난 자녀와 연년생이기도 한 경우(즉 총 3명) 그 쌍둥이에 대해 2억원을 준다(원래는 쌍둥이여도 1억원)는 것을 말하고 싶었던 것일까?

결론은 어떠한 경우에도 자녀 1명 당 1억원을 준다는 뜻 같은데 굳이 언급해서 혼란만 키운 문구 같다. 하지만 저 공식 기사로 인해 아래와 같은 주장을 해볼 수는 있다.

2020년 12월 31일과 2021년 1월 1일 사이 자정에 각각 쌍둥이 첫째, 둘째를 낳은 경우 2억원을 받을 수 있다.

반대로 주최측은 아래와 같이 주장할 수도 있다.

연년생과 쌍둥이 총 3명이 태어난 경우에 총 2억원을 지급한다.

이후 시간에는 1차 팀 프로젝트 의논 및 조사를 진행했다.

번외
클라우드 서비스(예: google colab)에서 로컬 환경의 가상환경에 원격 접속하기
: 로컬 환경의 가상환경을 Google Colab에서 직접 사용하는 것은 불가능하지만 SSH 터널링이나 pyngrok을 사용하여 로컬 서버를 Google Colab에서 접근하는 방법을 사용할 수 있음. 가장 추천되는 방법은 로컬 환경에서 pyngrok을 통해 Jupyter 서버를 외부에 노출시키는 방법. 이 방법으로 직접적인 가상 환경 연결이 가능함.

참고
가상환경에서 작업하면 좋은 점 : 의존성 (다른 버전 등) 관리에 용이
각 가상환경마다 별도의 라이브러리 환경을 만들 수 있음

profile
hello world

0개의 댓글