Spaces:
Sleeping
A newer version of the Streamlit SDK is available:
1.48.0
title: First Chatbot
emoji: ๐ค
colorFrom: indigo
colorTo: pink
sdk: streamlit
sdk_version: 1.44.0
app_file: app.py
pinned: false
short_description: A simple chatbot using Streamlit and Hugging Face.
๐ค ๋๋ง์ ๊ฐ์ธ ์ฑ๋ด
Hugging Face ๋ชจ๋ธ๊ณผ Streamlit์ ์ฌ์ฉํ์ฌ ๋ง๋ ๊ฐ๋จํ ๋ํํ ์ฑ๋ด์ ๋๋ค. ์ฌ์ด๋๋ฐ์์ AI์ ์ฑ๊ฒฉ, ์์ ๋ฉ์์ง, ์๋ฐํ ๋ฑ์ ์ง์ ์ค์ ํ๊ณ AI์ ๋ํ๋ฅผ ๋๋ ์ ์์ต๋๋ค.
โจ ์ฃผ์ ๊ธฐ๋ฅ
- ๐ฌ ์ค์๊ฐ ์ฑํ ์ธํฐํ์ด์ค: ์ฌ์ฉ์์ AI๊ฐ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊น๋ํ UI.
- ๐ง ์์ฌ์ด ์ค์ : ์ฌ์ด๋๋ฐ์์ ์์คํ ๋ฉ์์ง, ์์ ๋ฉ์์ง, ์ต๋ ์๋ต ๊ธธ์ด๋ฅผ ์ฝ๊ฒ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- ๐จ ์ปค์คํ ์๋ฐํ: ์ฌ์ฉ์์ AI์ ์๋ฐํ๋ฅผ ์ํ๋ ์ด๋ชจํฐ์ฝ์ผ๋ก ์ ํํ ์ ์์ต๋๋ค.
- ๐ง ์ ์ฐํ ๋ชจ๋ธ ์ฌ์ฉ: Hugging Face์ ์๋ ๋ค์ํ ์ธ์ด ๋ชจ๋ธ(
MODEL_ID
๋ณ๊ฒฝ)์ ํ์ฉํ ์ ์์ต๋๋ค. - ๐ ๋ํ ์ด๊ธฐํ: ๋ฒํผ ํด๋ฆญ ํ ๋ฒ์ผ๋ก ๋ํ ๊ธฐ๋ก์ ์ด๊ธฐํํ๊ณ ์ ๋ํ๋ฅผ ์์ํ ์ ์์ต๋๋ค.
๐ ๏ธ ์์ํ๊ธฐ
1. ํ๊ฒฝ ์ค์
์ด ํ๋ก์ ํธ๋ uv
์ ๊ฐ์ ๊ฐ์ ํ๊ฒฝ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
๋จผ์ , ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ์ธ์.
uv pip install -r requirements.txt
2. Hugging Face ํ ํฐ ์ค์
ํ๋ก์ ํธ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ์ .env
ํ์ผ์ ์์ฑํ๊ณ , ์ฌ๋ฌ๋ถ์ Hugging Face API ํ ํฐ์ ์ถ๊ฐํ์ธ์. ํ ํฐ์ Hugging Face ์ค์ ์์ ๋ฐ๊ธ๋ฐ์ ์ ์์ต๋๋ค.
HF_TOKEN="ใใใซHugging Faceใฎใใผใฏใณใ่ฒผใไปใใฆใใ ใใ"
3. ์ ํ๋ฆฌ์ผ์ด์ ์คํ
ํฐ๋ฏธ๋์์ ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ Streamlit ์ฑ์ ์์ํ์ธ์.
uv run streamlit run app.py
์ฑ์ด ์คํ๋๋ฉด ์น ๋ธ๋ผ์ฐ์ ์์ ๋ก์ปฌ ์ฃผ์(์: http://localhost:8501
)๊ฐ ์ด๋ฆฝ๋๋ค.
๐ ์ฝ๋ ๊ตฌ์กฐ
app.py
ํ์ผ์ ๊ฐ๋
์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ด๊ธฐ ์ํด ๊ธฐ๋ฅ๋ณ๋ก ๋ชจ๋ํ๋์์ต๋๋ค.
- ์์ ์ ์:
MODEL_ID
,PROMPT_TEMPLATE
๋ฑ ์ฃผ์ ์ค์ ๊ฐ์ ํ์ผ ์๋จ์์ ๊ด๋ฆฌํฉ๋๋ค. - LLM ๋ฐ ์ฒด์ธ ์ค์ (
get_llm
,get_chain
): Hugging Face ๋ชจ๋ธ์ ๋ก๋ํ๊ณ , LangChain์ผ๋ก ํ๋กฌํํธ์ ๋ชจ๋ธ์ ์ฐ๊ฒฐํ๋ ์ฒด์ธ์ ์์ฑํฉ๋๋ค. - UI ๋ ๋๋ง (
initialize_session_state
,setup_sidebar
,display_chat_history
): Streamlit์ ์ธ์ ์ํ๋ฅผ ์ด๊ธฐํํ๊ณ , ์ฌ์ด๋๋ฐ์ ์ฑํ ๊ธฐ๋ก UI๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. - ๋ฉ์ธ ๋ก์ง (
generate_response
,main
): ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ์ AI์ ์๋ต์ ์์ฑํ๊ณ , ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ฆ์ ์ ์ดํฉ๋๋ค.