์กฐ์๊ณผ ํจ๊ป LLM๊ณผ Streamlit์ ํ์ฉํ ๋ฒ๋ฅ ์๋น์ค ํ๋ก์ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌํ ํ,
๋ฆฌํฉํ ๋ง ๊ฒฝํ๊น์ง ์์๋ณด๋ฉด ์ข๊ฒ ๋ค๊ณ ์๊ฐํ์ฌ ๋ค ํจ๊ป ๋ฆฌํฉํ ๋ง์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์๋ค.
ํ๋ก ํธ์๋ ๊ต์๋๊ป์ ์ด๋ค ์ธ์ด๋ ์ฒด๊ณํ๋ ํด๋ ๊ตฌ์กฐ๊ฐ ์๋ค๊ณ ๋ง์ํ์ ์
๋จผ์ Streamlit์ ํด๋ ๊ตฌ์กฐ๋ฅผ ์ฐพ์๋ณด์๋ค.
์ผ๋จ ๊ณต์ ๋ฌธ์์์์ ๊ถ์ฅํ๋ ๊ตฌ์กฐ๋ ๋ฐ๋ก ๋์์์ง ์๋ ๊ฒ ๊ฐ์,
๊ตฌ๊ธ๊ณผ ์ ํ๋ธ์ `streamlit structure`๋ `streamlit app structure` ๋ฑ.. ์ด๋ฐ ์์ผ๋ก ๊ฒ์ํ์ฌ ์ฐพ์๋ณด์๋ค.
๊ทธ์ค์์ ์๋์ ๋ธ๋ก๊ทธ ๊ธ๊ณผ ์ ํ๋ธ ์์์ ์ฐพ์ ์ ์์๋ค.
How to Structure and Organise a Streamlit App
Bringing Order to a Python Streamlit App Through an Organised Project Folder Structure
medium.com
๋ํ, chatGPT๋ Perplexity ๋ฑ์ ํตํด์๋ ์ฌ๋ฌ ํด๋ ๊ตฌ์กฐ๋ฅผ ์ถ์ฒ๋ฐ์๊ณ ,
์ฌ๋ฌ ์ฌ์ดํธ์ ์ ๋ณด๋ฅผ ์กฐํฉํด์ ์๋์ ๊ฐ์ด ํด๋ ๊ตฌ์กฐ๋ฅผ ์ ๋ฆฌํ์๋ค.
law-chatbot/
โ
โโโ app/ # Streamlit ์คํ ๋ฐ ํ์ด์ง ๊ตฌ์ฑ
โ โโโ main.py # Streamlit ๋ฉ์ธ
โ โโโ pages/ # ์๋ธ ํ์ด์ง ๊ตฌ์ฑ
โ โโโ page1.py
โ โโโ page2.py
โ
โโโ src/ # ํต์ฌ ๋ก์ง ๋ฐ ๊ธฐ๋ฅ ๊ตฌ์ฑ
โ โโโ models/ # ๋ชจ๋ธ ๊ด๋ จ ์ฝ๋ (LLM ํธ์ถ, ํ๋ผ๋ฏธํฐ ๋ฑ)
โ โโโ prompts/ # ํ๋กฌํํธ ํ
ํ๋ฆฟ, ์์คํ
๋ฉ์์ง ๋ฑ
โ โโโ components/ # ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI ์์ (์ฌ์ด๋๋ฐ, ์นด๋ ๋ฑ)
โ
โโโ assets/ # ์ ์ ์์ (์ด๋ฏธ์ง, CSS ๋ฑ)
โ โโโ images/ # ๋ก๊ณ , ์์ด์ฝ ๋ฑ
โ โโโ css/ # ์ปค์คํ
CSS (Streamlit ํ
๋ง ์คํ์ผ๋ง)
โ
โโโ data/ # ์
๋ ฅ ๋ฐ์ดํฐ ๋๋ ๋ฌธ์ ์ ์ฅ์
โ โโโ ๋ฒ์ .pdf
โ
โโโ tests/ # ์ ๋ ํ
์คํธ, ํตํฉ ํ
์คํธ
โ โโโ test_example.py # ์์ ํ
์คํธ ํ์ผ
โ
โโโ .gitignore # Git ์ปค๋ฐ ์ ์ธ ํ์ผ ์ ์
โโโ requirements.txt # ์์กด ํจํค์ง ๋ชฉ๋ก
โโโ setup.py # ํจํค์ง ์ค์น/๋ฐฐํฌ ์ค์
โโโ README.md # ํ๋ก์ ํธ ์ค๋ช
๋ฌธ์
์ผ๋จ ์์ ๊ตฌ์กฐ๋ฅผ ํ์๋ค์๊ฒ ์ ์ํ์๊ณ ,
๋ฆฌํฉํ ๋ง์ด ๋ง๋ฌด๋ฆฌ๋ ํ ์ต์ข ์ ์ผ๋ก ๊ฒฐ์ ํ ํด๋ ๊ตฌ์กฐ๋ฅผ ๋ค์ ์ฌ๋ฆด ์์ ์ด๋ค~!
'IT > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Python ๊ธฐ๋ณธ ๋ฌธ๋ฒ ์ ๋ฆฌ (0) | 2025.02.09 |
---|