๐Ÿ“š Insurance RAG ํ•™์Šต - ์„ธ์…˜ 3 ์™„๋ฃŒ ์š”์•ฝ

๋ฌธ๊ฑดํฌยท2025๋…„ 7์›” 31์ผ

insurance-rag

๋ชฉ๋ก ๋ณด๊ธฐ
2/3

๐ŸŽฏ ์„ธ์…˜ 3 ์ฃผ์ œ: ํ™˜๊ฒฝ๋ณ€์ˆ˜์™€ ์„ค์ • ๊ด€๋ฆฌ

๐Ÿ“– ํ•ต์‹ฌ ๊ฐœ๋… ํ•™์Šต
1๏ธโƒฃ ํ™˜๊ฒฝ๋ณ€์ˆ˜ (Environment Variables)

์ •์˜: ์šด์˜์ฒด์ œ์— ์ €์žฅ๋˜๋Š” ์„ค์ •๊ฐ’
๋ชฉ์ : ์ฝ”๋“œ์™€ ์„ค์ • ๋ถ„๋ฆฌ๋กœ ๋ณด์•ˆ์„ฑ ํ–ฅ์ƒ
์‹ค์ƒํ™œ ๋น„์œ : ์ง‘ ์—ด์‡ ๋ฅผ ์•ˆ์ „ํ•œ ์„œ๋ž์— ๋ณด๊ด€ํ•˜๋Š” ๊ฒƒ

๋ณด์•ˆ ๋ ˆ๋ฒจ๋ณ„ ๋ถ„๋ฅ˜:

๐Ÿ”ด ๋†’์€ ๋ณด์•ˆ: API ํ‚ค, ๋น„๋ฐ€๋ฒˆํ˜ธ โ†’ ์ ˆ๋Œ€ ์ฝ”๋“œ์— ์“ฐ์ง€ ์•Š์Œ
๐ŸŸก ์ค‘๊ฐ„ ๋ณด์•ˆ: ํ˜ธ์ŠคํŠธ, ํฌํŠธ โ†’ ๊ธฐ๋ณธ๊ฐ’ ์ œ๊ณตํ•˜๋˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ฎ์–ด์“ฐ๊ธฐ ๊ฐ€๋Šฅ

2๏ธโƒฃ Pydantic & BaseSettings

Pydantic: ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ ์ž๋™ํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
BaseSettings: ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ž๋™ ๋งคํ•‘ + ํƒ€์ž… ๊ฒ€์ฆ
๋™์ž‘์›๋ฆฌ: db_password โ†’ DB_PASSWORD ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ž๋™ ์ฐพ๊ธฐ

๐Ÿ”ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‹ฌํ™” ๋ถ„์„
pathlib

์šฉ๋„: ํ˜„๋Œ€์  ํŒŒ์ผ ๊ฒฝ๋กœ ์ฒ˜๋ฆฌ
ํ•ต์‹ฌ ๊ธฐ๋Šฅ: Path(file).parent.parent.resolve() - ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ์ฐพ๊ธฐ
์žฅ์ : ์ง๊ด€์ ์ธ / ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ

typing

์šฉ๋„: ํƒ€์ž… ํžŒํŠธ ์ œ๊ณต
Optional[str]: str ๋˜๋Š” None ๊ฐ€๋Šฅ
์žฅ์ : IDE ์ž๋™์™„์„ฑ, ํƒ€์ž… ์—๋Ÿฌ ์‚ฌ์ „ ๋ฐœ๊ฒฌ

pydantic_settings

์šฉ๋„: ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ž๋™ ๋กœ๋”ฉ + ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ
BaseSettings ํŠน์ง•:

ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ด๋ฆ„ ์ž๋™ ๋ณ€ํ™˜ (snake_case โ†’ UPPER_CASE)
ํƒ€์ž… ์ž๋™ ๋ณ€ํ™˜ ("3306" โ†’ 3306)
.env ํŒŒ์ผ ์ž๋™ ๋กœ๋”ฉ

๐Ÿ’ก ์‹ค๋ฌด ์ธ์‚ฌ์ดํŠธ
ํƒ€์ž… ์„ ํƒ ๊ฐ€์ด๋“œ๋ผ์ธ

str: ํ˜ธ์ŠคํŠธ๋ช…, ๋น„๋ฐ€๋ฒˆํ˜ธ, ๊ฒฝ๋กœ
int: ํฌํŠธ๋ฒˆํ˜ธ, ํƒ€์ž„์•„์›ƒ, ๊ฐœ์ˆ˜ (์ˆซ์ž ๊ณ„์‚ฐ ํ•„์š”)
bool: ๋””๋ฒ„๊ทธ ๋ชจ๋“œ, ๊ธฐ๋Šฅ ํ™œ์„ฑํ™” ์—ฌ๋ถ€

๋ณด์•ˆ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค
python# โœ… ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹
db_host: str = "localhost" # ๊ณต๊ฐœ ์ •๋ณด โ†’ ๊ธฐ๋ณธ๊ฐ’ ์ œ๊ณต
db_password: str # ๋ฏผ๊ฐ ์ •๋ณด โ†’ ๊ธฐ๋ณธ๊ฐ’ ์—†์Œ
Pydantic ์šฐ์„ ์ˆœ์œ„

ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ฐ’ (์ตœ์šฐ์„ )
.env ํŒŒ์ผ ๊ฐ’
์ฝ”๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’ (๋ฐฑ์—…)

0๊ฐœ์˜ ๋Œ“๊ธ€