AI 부트캠프/챕터3(11.08~12.04)

TIL 52

musukie 2024. 11. 29. 21:27

도전 과제

실시간 데이터 업데이트

대화 내역을 저장하고 이를 통해 실시간으로 모델의 성능이 개선될 수 있게 만들어야 했다. 현재는 대화 내역이 세션마다 저장되고 있긴 하지만, csv 파일로 저장되고 있기 때문에, 대화 내역이 모델의 성능을 개선시키는 부분에 적용되기 위해서는 txt 파일로 변환되어야 할 필요가 있었다. 따라서 streamlit으로 대화 내역을 txt 파일로 저장하는 버튼을 생성했다.

# 사이드바에 '대화 저장' 버튼 추가
if st.sidebar.button('대화 저장'):
    # 대화 내용을 TXT 파일로 저장 (탭으로 구분)
    chat_history_df.to_csv("chat_history.txt", sep="\t", index=False)
    st.sidebar.write("대화가 TXT 파일로 저장되었습니다.")

 

 

 

다국어 지원 기능 업데이트

sidebar에 언어를 선택할 수 있는 버튼을 생성했다. 언어는 '한국어', '영어', '일본어' 중에 하나만 선택할 수 있게 했다. 기존에 주제와 교재를 선택할 때는 selectbox를 사용했다. 그러나 새로운 기능을 사용하고 싶어서 이번에는 segmented_control로 버튼을 만들었다.

# 언어 선택
    language_list = ["한국어", "영어", "일본어"]
    selection = st.sidebar.segmented_control("언어", language_list, selection_mode="single", default="한국어", key="language", on_change=update_language)
    st.sidebar.markdown(f"**{selection}**가 선택되었습니다.")

 

음성 입력 및 출력 기능

아직 기능은 구현하지 않았지만, streamlit ui로 버튼만 먼저 구현해보았다. 녹음 버튼을 누르면 녹음이 시작되고, 녹음된 음성은 바로 실행해서 들어볼 수 있으며, 다운로드 버튼으로 녹음 파일을 저장할 수 있다. 그러나 새로 녹음을 시작하면, 이전 녹음은 사라지게 된다.

# 녹음 기능
    audio_value = st.sidebar.audio_input("음성으로 대화해보세요.")
    
    if audio_value:
        st.sidebar.audio(audio_value)

 

모든 코드는 구글링과 공식 문서를 참고하여 만들었다.

https://docs.streamlit.io/

 

Streamlit Docs

Join the community Streamlit is more than just a way to make data apps, it's also a community of creators that share their apps and ideas and help each other make their work better. Please come join us on the community forum. We love to hear your questions

docs.streamlit.io

 

아래의 이미지에서 만들어진 기능들을 확인할 수 있다.

 

'AI 부트캠프 > 챕터3(11.08~12.04)' 카테고리의 다른 글

TIL 54  (0) 2024.12.03
TIL 53  (0) 2024.12.02
TIL 51  (1) 2024.11.28
TIL 50  (1) 2024.11.27
TIL 49  (0) 2024.11.26