260819

u·2026년 8월 19일

TIL

목록 보기
6/30

Streamlit

  • 열 때: uv run streamlit run 파일명
  • 종료할 때: ctrl+c => 종료 꼭 해줘야됨
  • st.write : 만능 출력
  • st : 재실행모델, 위젯 조작 -> 스크립트 전체 재실행
  • pandas 코드랑 st코드랑 다 같이 쓸 수 있음
  • dataframe -> 인터랙티브
  • table -> 증감
  • st.session_state: 재실행에도 값 유지(카운터·대화 이력)
  • @st.cache_data : 데이터·계산 캐싱(CSV·API·집계)
  • @st.cache_resource : 자원(모델·연결·검색 인덱스) 한 번만 만들어 공유
  • ttl=초 로 오래된 캐시를 자동 폐기, 함수.clear() 로 즉시 비우기
  1. st.fragment => 조각만 실행. 전체 실행 x 버벅거림을 줄여줌

챗봇 연동

:=
: 대입하겠다


with st.container(): # 화면 맨 밑으로 입력창이 가는걸 방지
if prompt := st.chat_input("메시지를 입력하세요"):
st.write(f"입력한 내용: {prompt}")

(1)
prompt := st.chat_input("메시지를 입력하세요"):
if prompt :
(2)
if prompt := st.chat_input("메시지를 입력하세요"):


Yield ; 제너레이터

  • 일반 함수 -> 다 만들어서 한번에 건네줌

  • 제너레이터 -> 만드는 대로 바로바로 건네줌

  • gen -> 호출해도 실행 x
    ㄴnext(gen) 으로 ~..

  • 제너레이터는 소진됨.
    ㄴ다시 호출하려면 다시 선언해줘야함

리스트 컴프리헨션과 제너레이터 표현식

  • squares_list = [i * i for i in range(5)] # 리스트 컴프리헨션: 값 5개를 지금 다 만든다

  • squares_gen = (i * i for i in range(5)) # 제너레이터 표현식: 아직 아무것도 안 만들었다
    ㄴ표현식은 리스트를 반환x list()를 씌워줘야함.

  • sum, max, any, all ==> 제너레이터 사용
    ㄴwhy?
    ex. sum을 사용했을 때:
    - 리스트 -> 리스트를 만든 뒤 sum 사용 => 시간, 메모리 많이 사용
    - 제너레이터 -> 숫자를 바로바로 sum => 시간, 메모리 사용 적음
    =>> 제너레이터 사용이 유리.


  • 로직(core)과 UI 따로 만드는 것이 용이

  • 협업할 때 필요한 것: 규약 !!

  • 함수 이름 만들 때 앞에 _언더바 -> 그 파일(?)내에서만 쓰는 함수. 공유하지않는 함수.

  • 임베딩 벡터 만들?지 말고 저장해서 불러오는 방식 쓸 것 ...

  • sidebar -> 어차피 다 들어가니까 main에

0개의 댓글