--- 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`์™€ ๊ฐ™์€ ๊ฐ€์ƒ ํ™˜๊ฒฝ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ €, ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜์„ธ์š”. ```bash uv pip install -r requirements.txt ``` ### 2. Hugging Face ํ† ํฐ ์„ค์ • ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— `.env` ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ , ์—ฌ๋Ÿฌ๋ถ„์˜ Hugging Face API ํ† ํฐ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ํ† ํฐ์€ [Hugging Face ์„ค์ •](https://huggingface.co/settings/tokens)์—์„œ ๋ฐœ๊ธ‰๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ``` HF_TOKEN="ใ“ใ“ใซHugging Faceใฎใƒˆใƒผใ‚ฏใƒณใ‚’่ฒผใ‚Šไป˜ใ‘ใฆใใ ใ•ใ„" ``` ### 3. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Streamlit ์•ฑ์„ ์‹œ์ž‘ํ•˜์„ธ์š”. ```bash 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์˜ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๊ณ , ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ๋ฆ„์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ## ๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ - [Creating Your Personal Chatbot Using Hugging Face Spaces and Streamlit](https://medium.com/@james.irving.phd/creating-your-personal-chatbot-using-hugging-face-spaces-and-streamlit-596a54b9e3ed) - [Hugging Face Spaces Configuration Reference](https.huggingface.co/docs/hub/spaces-config-reference)