IT/Python

[Streamlit] ํด๋” ๊ตฌ์กฐ ์ •๋ฆฌ (feat. LLM ๋ฒ•๋ฅ  ์„œ๋น„์Šค ํ”„๋กœ์ ํŠธ ๋ฆฌํŒฉํ† ๋ง)

zi0_0 2025. 4. 5. 23:05

 

์กฐ์›๊ณผ ํ•จ๊ป˜ 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
Copy