day 023 KPMG Future Academy

sottuggung·2024년 12월 24일
0

KPMG-future-academy

목록 보기
23/41

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

오전에는 miniconda 가상환경을 설정한 후 streamlit 개발 컴포넌트를 간단히 다루어보았다.

  1. AI 활용
    1.1. miniconda 가상환경
    1.2. streamlit

1. AI 활용

수업을 시작하며 다같이 간단히 AI 뉴스 등을 확인하였다.
일리야 수츠케버 전 오픈AI 최고과학자의 말에 따르면 AI가 지성을 갖추고 자의식을 갖추는 수준이 되었다.

최근 개인적으로 AI가 정말로 살아있는 유기체처럼 작동할 수 있다면 그 반대로 죽음이라는 가능성도 있어야하지 않을까하는 생각을 했었는데, 전 구글 회장 에릭슈미트가 '킬 버튼'을 논의할 시기라고 밝힌 것을 알게 되었다.

https://www.aitimes.com/news/articleView.html?idxno=166252

그래서 문득 현존 인류가 바이러스를 아직까지 완벽히 통제할 수 없는 것처럼 AI도 독립된 구성체가 아닌 생태계로서 자연계처럼 순환 가능한 원리가 존재할 수 있으리라는 생각을 하였다.

Streamlit 등의 프론트엔드 프레임워크를 사용해보았다.

1.1. miniconda 가상환경

miniconda 가상환경을 설치하면 select interpreter의 목록에서 확인 가능하다.
https://www.anaconda.com/download/success

터미널을 열어서 power shell이 아닌 command prompt로 설정

가상환경을 생성. 이름은 streamlit

생성 확인됨.

가상환경 cmd에 진입.

설치되어 있는 패키지 확인

비활성화

가상환경 활성화

1.2. streamlit

streamlit은 데이터 과학, 머신러닝, 분석 대시보드 개발에 최적화된 Python 기반 웹 애플리케이션 프레임워크이다. 내장 서버를 제공하고 실시간 데이터 반영에 강점이 있다.

streamlit 설치

cd streamlit로 경로 이동
파일 run
steamlit run 1.text.py

로컬 호스트 설정 완료

HTML

미니콘다, 어떻게 쓸 것인가

가상환경 관리 비결

프로그램마다 버전차이로 의존성 문제가 복잡해질 수 있으므로 관리시 중요함.

파이썬 터미널 사용 방향

text elements
https://docs.streamlit.io/develop/api-reference/text
불릿

수학식 마크다운

string

media elements
https://docs.streamlit.io/develop/api-reference/media
랜덤 이미지 불러오기

버튼으로 랜덤이미지

오디오, 비디오

data elements
기온 표시

여러개 표시

갭 표시

카드형식 표시

pandas 판다스 라이브러리로 데이터 출력하기

numpy 넘파이 라이브러리로 데이터 출력하기

위젯

라디오 버튼 클릭시 값 보여주기

체크박스 클릭시 값 보여주기

셀렉트박스 클릭시 값 보여주기

멀티셀렉트 클릭시 값 보여주기

텍스트 및 숫자 입력하고 값 보여주기

날짜

슬라이더

이어서 오후에 streamlit을 이어서 공부하였다.

csv 데이터 불러오기
먼저 pandas 불러오기

레이아웃, 컨테이너
사이드바

선택된 값에 따른 출력

컬럼마다 이미지 출력


페이지
세개 페이지 구성

연습
페이지 세개 만들어서 메인페이지에 사진, 페이지 2에 컬럼 3개에 사진, 페이지 3에 탭 3개에 사진 출력하기

비주얼 스튜디오 코딩 설정

생성형 AI와 streamlit으로 제품 홍보 포스터 만들기
openai 설치

openAI api 키 파일을 .toml로 저장

중간에 사용자가 전송 전에 enter키를 눌러서 keyword 변수의 값을 간이 출력해볼 수 있는 코드를 추가했다.
해당 입력값을 브라우저 콘솔에서 확인해보고 싶었다.

근데 브라우저 콘솔에 안나옴.
streamlit에서 iframe으로 랜더링하여 그렇다고 한다.

streamlit.components를 써서 인풋폼을 html로 새로 만듦.
값을 입력하고 엔터를 누르면 콘솔에서 확인할 수 있다.

그 값을 이제 openAI api로 보내서 값을 받아와야 한다.
쿼리 파라미터로 가능함.

ChatGPT가 고안해낸 방법들.

양방향 데이터 흐름을 시도하기에는 귀갓길이 너무 멀다.
iframe의 URL 변경 제한은 존중되어야한다.
우선은 백엔드 언어인 파이썬을 사용해서 디버그 로깅하는 방법을 먼저 시도하기로 했다.

파이썬 디버그 콘솔에 나오게 설정시도하였다. 아래 세 코드를 추가하여 시도하였으나 마찬가지로 현재 내가 작업중인 파이썬 콘솔이 아닌 streamlit의 서버에 로그가 남기 때문에 파이썬 디버그 콘솔에서는 나오지 않음 이슈...
현재 가상환경에서 작업중이므로 그냥 터미널에서 확인하면 된다는 선생님의 말씀이 이제서야 어렴풋이 기억이 났다.

아래 세 코드를 추가하여 파이썬 디버그 콘솔이 아닌 터미널에서 디버그 로그를 확인 가능함.

import logging
# 로깅 레벨 설정: DEBUG 메시지도 콘솔에 표시
logging.basicConfig(level=logging.DEBUG)
# 매번 rerun될 때마다 현재 keyword 값을 디버그 로그로 출력
logging.debug(f"현재 keyword 값: {keyword}")

run하면 터미널에서 최초에는 값이 없는 형태로 출력.
enter로 값을 보냈을 때와 버튼을 눌러 보냈을 때 둘 다 정상적으로 터미널에서 입력된 키워드 값을 포함한 내용의 로그 확인이 가능하였다.

추후에 사용자 입력값을 브라우저 콘솔에서 확인하는 과정 포함하여 streamlit을 활용한 양방향 데이터 흐름을 더 알아보면 될 것 같다.

stremlit 디버그 로그가 파이썬 디버그 콘솔에 나오지 않는 이유 참고

profile
hello world

0개의 댓글