first_chatbot / README.md
fkt
refactor code
0e3780a

A newer version of the Streamlit SDK is available: 1.48.0

Upgrade
metadata
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์˜ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๊ณ , ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ๋ฆ„์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ