챗봇 연동
:=
: 대입하겠다
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에