๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐ŸŒ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ตฌ์„ฑ

๊ฐœ์š”โ€‹

Open WebUI๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹ค์–‘ํ•œ ์ธก๋ฉด์„ ์‚ฌ์šฉ์žํ™”ํ•˜๊ณ  ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ด‘๋ฒ”์œ„ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํฌ๊ด„์ ์œผ๋กœ ์ฐธ์กฐํ•˜๋ฉฐ, ๋ณ€์ˆ˜์˜ ์œ ํ˜•, ๊ธฐ๋ณธ๊ฐ’ ๋ฐ ์„ค๋ช…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜๊ฐ€ ๋„์ž…๋  ๋•Œ๋งˆ๋‹ค ์ด ํŽ˜์ด์ง€๋Š” ์ฆ๊ฐ€ํ•˜๋Š” ์„ค์ • ์˜ต์…˜์„ ๋ฐ˜์˜ํ•˜์—ฌ ์—…๋ฐ์ดํŠธ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ •๋ณด

์ด ํŽ˜์ด์ง€๋Š” Open WebUI ๋ฆด๋ฆฌ์Šค ๋ฒ„์ „ v0.6.9์— ๋งž๊ฒŒ ์ตœ์‹  ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ดํ›„์—๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋” ์ •ํ™•ํ•œ ์„ค๋ช…, ๊ธฐ๋ณธ๊ฐ’ ๋ฐ ์˜ต์…˜๋“ค์„ ๋‚˜์—ดํ•˜๊ณ  ์„ค๋ช…์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

PersistentConfig ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญโ€‹

๋…ธํŠธ

Open WebUI๋ฅผ ์ฒ˜์Œ ์‹คํ–‰ํ•  ๋•Œ ๋ชจ๋“  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ๋™์ผํ•˜๊ฒŒ ์ทจ๊ธ‰๋˜๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ PersistentConfig๋กœ ํ‘œ์‹œ๋œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ฐ’์€ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ณด๊ด€๋˜๊ณ  ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์ตœ์ดˆ ์‹คํ–‰ ํ›„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋ฉด PersistentConfig ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ๋” ์ด์ƒ ์™ธ๋ถ€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ๋‚ด๋ถ€์ ์œผ๋กœ ์ €์žฅ๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด์— ์ผ๋ฐ˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์ดํ›„ ์žฌ์‹œ์ž‘ ์‹œ ๊ณ„์† ์—…๋ฐ์ดํŠธ๋˜์–ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

Open WebUI ๋‚ด๋ถ€์—์„œ ์ง์ ‘ PersistentConfig ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‚ด๋ถ€์ ์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ ๋…๋ฆฝ์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์„ค์ •์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PersistentConfig ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์•„๋ž˜ ๋ฌธ์„œ์—์„œ ๋ช…ํ™•ํžˆ ํ‘œ์‹œ๋˜๋ฏ€๋กœ ๊ทธ ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์ธ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜/๋ฐฑ์—”๋“œโ€‹

๋‹ค์Œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” backend/open_webui/config.py์—์„œ Open WebUI ์‹œ์ž‘ ๊ตฌ์„ฑ ์ œ๊ณต์„ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋ณ€์ˆ˜๋Š” Open WebUI๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ Docker๋ฅผ ํ†ตํ•ด ์‹คํ–‰ํ•  ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊น… ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋กœ๊ทธ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ผ๋ฐ˜โ€‹

WEBUI_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: http://localhost:3000
  • ์„ค๋ช…: Open WebUI์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฒ€์ƒ‰ ์—”์ง„ ์ง€์›์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_SIGNUPโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ณ„์ • ์ƒ์„ฑ ์—ฌ๋ถ€๋ฅผ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_LOGIN_FORMโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ, ๋กœ๊ทธ์ธ ๋ฐ "๋˜๋Š”"(๋‹จ, ENABLE_OAUTH_SIGNUP์ด True๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ) ์š”์†Œ๋“ค์„ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
์œ„ํ—˜

์ด ์„ค์ •์€ ENABLE_OAUTH_SIGNUP๊ฐ€ ์‚ฌ์šฉ ์ค‘์ด๋ฉฐ True๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ False๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

DEFAULT_LOCALEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: en
  • ์„ค๋ช…: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋ณธ ๋กœ์ผ€์ผ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

DEFAULT_MODELSโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด (' '), ์ฆ‰ None.
  • ์„ค๋ช…: ๊ธฐ๋ณธ ์–ธ์–ด ๋ชจ๋ธ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

DEFAULT_USER_ROLEโ€‹

  • ์œ ํ˜•: str
  • ์˜ต์…˜:
    • pending - ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž๋Š” ๊ด€๋ฆฌ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ๊ณ„์ •์„ ํ™œ์„ฑํ™”ํ•  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.
    • user - ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž๋Š” ์ •๊ทœ ์‚ฌ์šฉ์ž ๊ถŒํ•œ์œผ๋กœ ์ž๋™ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
    • admin - ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž๋Š” ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์ž๋™ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ๊ฐ’: pending
  • ์„ค๋ช…: ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹น๋˜๋Š” ๊ธฐ๋ณธ ์—ญํ• ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

PENDING_USER_OVERLAY_TITLEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด (' ')
  • ์„ค๋ช…: ๋Œ€๊ธฐ ์‚ฌ์šฉ์ž ์˜ค๋ฒ„๋ ˆ์ด์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ์ œ๋ชฉ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

PENDING_USER_OVERLAY_CONTENTโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด (' ')
  • ์„ค๋ช…: ๋Œ€๊ธฐ ์‚ฌ์šฉ์ž ์˜ค๋ฒ„๋ ˆ์ด์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ํ…์ŠคํŠธ ์ฝ˜ํ…์ธ ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_CHANNELSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์ฑ„๋„ ์ง€์›์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

WEBHOOK_URLโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Discord/Slack/Microsoft Teams์™€์˜ ํ†ตํ•ฉ์„ ์œ„ํ•œ ์›นํ›…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_ADMIN_EXPORTโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ๊ด€๋ฆฌ์ž ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

ENABLE_ADMIN_CHAT_ACCESSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ๊ด€๋ฆฌ์ž ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋“  ์ฑ„ํŒ…์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

ENABLE_USER_WEBHOOKSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ์›นํ›…์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RESPONSE_WATERMARKโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด ( )
  • ์„ค๋ช…: ์ฑ„ํŒ… ๋ฉ”์‹œ์ง€๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ ํฌํ•จ๋  ์‚ฌ์šฉ์ž ์ •์˜ ํ…์ŠคํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: "์ด ํ…์ŠคํŠธ๋Š” AI ์ƒ์„ฑ์ž…๋‹ˆ๋‹ค" -> ๋ณต์‚ฌ ์‹œ ๋ชจ๋“  ๋ฉ”์‹œ์ง€์— "์ด ํ…์ŠคํŠธ๋Š” AI ์ƒ์„ฑ์ž…๋‹ˆ๋‹ค"๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

THREAD_POOL_SIZEโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 0
  • ์„ค๋ช…: FastAPI/AnyIO ์ฐจ๋‹จ ํ˜ธ์ถœ์„ ์œ„ํ•œ ์Šค๋ ˆ๋“œ ํ’€ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ (0์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ) FastAPI/AnyIO๋Š” 40๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ์ธ์Šคํ„ด์Šค์™€ ๋งŽ์€ ๋™์‹œ ์‚ฌ์šฉ์ž ๊ฒฝ์šฐ, ์ฐจ๋‹จ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด THREAD_POOL_SIZE๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SHOW_ADMIN_DETAILSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๊ด€๋ฆฌ์ž ์‚ฌ์šฉ์ž ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ํ† ๊ธ€ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ADMIN_EMAILโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: SHOW_ADMIN_DETAILS์— ์˜ํ•ด ํ‘œ์‹œ๋˜๋Š” ๊ด€๋ฆฌ์ž ์ด๋ฉ”์ผ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENVโ€‹

  • ์œ ํ˜•: str
  • ์˜ต์…˜:
    • dev - /docs์—์„œ FastAPI API ๋ฌธ์„œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
    • prod - ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ๊ฐ’:
    • ๋ฐฑ์—”๋“œ ๊ธฐ๋ณธ๊ฐ’: dev
    • Docker ๊ธฐ๋ณธ๊ฐ’: prod
  • ์„ค๋ช…: ํ™˜๊ฒฝ ์„ค์ •.

ENABLE_PERSISTENT_CONFIGโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: False๋กœ ์„ค์ •ํ•˜๋ฉด ๋ชจ๋“  PersistentConfig ๋ณ€์ˆ˜๋ฅผ ์ผ๋ฐ˜ ๋ณ€์ˆ˜๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

CUSTOM_NAMEโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: api.openwebui.com์—์„œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ WEBUI_NAME์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

WEBUI_NAMEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: Open WebUI
  • ์„ค๋ช…: ์ฃผ์š” WebUI ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฎ์–ด์“ด ๊ฒฝ์šฐ (Open WebUI)๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

PORTโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 8080
  • ์„ค๋ช…: Open WebUI๋ฅผ ์‹คํ–‰ํ•  ํฌํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์ •๋ณด

Python์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ณ  open-webui serve ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, PORT ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํฌํŠธ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  --port ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์ค„ ์ธ์ˆ˜๋กœ ์ง์ ‘ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ:

open-webui serve --port 9999

์ด๋Š” Open WebUI๋ฅผ ํฌํŠธ 9999์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ์—์„œ๋Š” PORT ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

ENABLE_REALTIME_CHAT_SAVEโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ํ™œ์„ฑํ™”๋˜๋ฉด ์ „์†ก ์ŠคํŠธ๋ฆผ ์ฑ„ํŒ… ๋ฐ์ดํ„ฐ๋ฅผ ์ตœ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ง€์†์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ๊ฐ•๋ ฅํ•œ ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ์ •ํ™•ํ•œ ์„ธ์…˜ ์ถ”์ ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ๋ฐ ์ง€์—ฐ์ด ์ƒ๊ธด๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜๊ณ  ์ง€์—ฐ ์‹œ๊ฐ„์ด ์ค„์–ด๋“ค์ง€๋งŒ, ์‹œ์Šคํ…œ ์˜ค๋ฅ˜ ๋˜๋Š” ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์†์‹ค ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•œ ์ ˆ์ถฉ์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

BYPASS_MODEL_ACCESS_CONTROLโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ๋ชจ๋ธ ์ ‘๊ทผ ์ œ์–ด๋ฅผ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค.

WEBUI_BUILD_HASHโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: dev-build
  • ์„ค๋ช…: ๋ฆด๋ฆฌ์Šค๋ฅผ ์œ„ํ•œ Git SHA ์‹๋ณ„์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

WEBUI_BANNERSโ€‹

  • ์œ ํ˜•: list of dict
  • ๊ธฐ๋ณธ๊ฐ’: []
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œํ•  ๋ฐฐ๋„ˆ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ๋ฐฐ๋„ˆ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
[{"id": "string", "type": "string [info, success, warning, error]", "title": "string", "content": "string", "dismissible": false, "timestamp": 1000}]
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
์ •๋ณด

.env ํŒŒ์ผ์—์„œ ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ๋•Œ ๋”ฐ์˜ดํ‘œ๋ฅผ ์ด์Šค์ผ€์ดํ”„ํ•˜์—ฌ ์ „์ฒด ๊ฐ’์„ ์ด์ค‘ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ๊ณ  ๋‚ด๋ถ€ ๋”ฐ์˜ดํ‘œ๋ฅผ ์ด์Šค์ผ€์ดํ”„๋œ ๋”ฐ์˜ดํ‘œ (\")๋กœ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์˜ˆ:

WEBUI_BANNERS="[{\"id\": \"1\", \"type\": \"warning\", \"title\": \"Your messages are stored.\", \"content\": \"Your messages are stored and may be reviewed by human people. LLMs are prone to hallucinations, check sources.\", \"dismissible\": true, \"timestamp\": 1000}]"

USE_CUDA_DOCKERโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: NVIDIA CUDA ์ง€์›์œผ๋กœ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ Whisper ๋ฐ ์ž„๋ฒ ๋”ฉ์„ ์œ„ํ•œ GPU ๊ฐ€์†์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

EXTERNAL_PWA_MANIFEST_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด ( ), ๊ธฐ๋ณธ๊ฐ’์€ None์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ค๋ช…: ์™„์ „ํžˆ ์ •์˜๋œ URL๋กœ ์„ค์ •๋˜์—ˆ์„ ๊ฒฝ์šฐ (์˜ˆ: https://path/to/manifest.webmanifest), /manifest.json์œผ๋กœ ์ „์†ก๋˜๋Š” ์š”์ฒญ์€ ์™ธ๋ถ€ manifest ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ manifest.json ํŒŒ์ผ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ENABLE_TITLE_GENERATIONโ€‹

  • ํƒ€์ž…: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์ฑ„ํŒ… ์ œ๋ชฉ ์ƒ์„ฑ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LICENSE_KEYโ€‹

  • ํƒ€์ž…: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋ผ์ด์„ผ์Šค ํ‚ค ์ง€์ •(Enterprise ์‚ฌ์šฉ์ž ์ „์šฉ).
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

SSL_ASSERT_FINGERPRINTโ€‹

  • ํƒ€์ž…: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด(' '), ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ None ์„ค์ •๋จ.
  • ์„ค๋ช…: ์‚ฌ์šฉํ•  SSL ์ธ์ฆ ์ง€๋ฌธ ์ง€์ •.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

DEFAULT_PROMPT_SUGGESTIONSโ€‹

  • ํƒ€์ž…: list of dict
  • ๊ธฐ๋ณธ๊ฐ’: [](๊ธฐ๋ณธ ๋‚ด์žฅ๋œ ํ”„๋กฌํ”„ํŠธ ์ œ์•ˆ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ)
  • ์„ค๋ช…: ํ”„๋กฌํ”„ํŠธ ์ œ์•ˆ ๋ชฉ๋ก. ํ”„๋กฌํ”„ํŠธ ์ œ์•ˆ์˜ ํ˜•์‹์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค:
[{"title": ["Title part 1", "Title part 2"], "content": "prompt"}]

AIOHTTP ํด๋ผ์ด์–ธํŠธโ€‹

AIOHTTP_CLIENT_TIMEOUTโ€‹

  • ํƒ€์ž…: int
  • ๊ธฐ๋ณธ๊ฐ’: 300
  • ์„ค๋ช…: AIOHTTP ํด๋ผ์ด์–ธํŠธ์˜ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ธฐ๊ฐ„(์ดˆ)์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Ollama ๋ฐ OpenAI ์—”๋“œํฌ์ธํŠธ์™€์˜ ์—ฐ๊ฒฐ๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.
์ •๋ณด

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ตœ๋Œ€ ์‹œ๊ฐ„์ด ์ด ๋ณ€์ˆ˜๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๋นˆ ๋ฌธ์ž์—ด(' ')์„ ์„ค์ •ํ•˜๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ None์œผ๋กœ ์„ค์ •๋˜๋ฉฐ, ์ด๋Š” ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฌด๊ธฐํ•œ ๋Œ€๊ธฐํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

AIOHTTP_CLIENT_TIMEOUT_MODEL_LISTโ€‹

  • ํƒ€์ž…: int
  • ๊ธฐ๋ณธ๊ฐ’: 10
  • ์„ค๋ช…: ๋ชจ๋ธ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ์‹œ๊ฐ„์œผ๋กœ ์ธํ•ด ๋ชจ๋ธ ๋ชฉ๋ก์„ ์„ฑ๊ณต์ ์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ๋” ๊ธด ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋…ธํŠธ

AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 10์ดˆ๋กœ ์„ค์ •๋˜์–ด ์›น UI๋ฅผ ์—ด ๋•Œ ํ•„์š”ํ•œ ๋ชจ๋“  ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ง€์† ์‹œ๊ฐ„์€ ๋„คํŠธ์›Œํฌ ์ง€์—ฐ์ด ๋” ๋†’์€ ๊ฒฝ์šฐ์—๋„ ๋ชจ๋ธ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋” ๋น ๋ฅธ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ์„ ํ˜ธ๋˜๋ฉด ์ด ๊ฐ’์„ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋„คํŠธ์›Œํฌ ์ƒํƒœ์— ๋”ฐ๋ผ ์ผ๋ถ€ ์—ฐ๊ฒฐ์ด ๋Š์–ด์งˆ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.

AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LISTโ€‹

  • ํƒ€์ž…: int
  • ์„ค๋ช…: ๋ชจ๋ธ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ์‹œ๊ฐ„์œผ๋กœ ์ธํ•ด ๋ชจ๋ธ ๋ชฉ๋ก์„ ์„ฑ๊ณต์ ์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ๋” ๊ธด ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋””๋ ‰ํ„ฐ๋ฆฌโ€‹

DATA_DIRโ€‹

  • ํƒ€์ž…: str
  • ๊ธฐ๋ณธ๊ฐ’: ./data
  • ์„ค๋ช…: ์—…๋กœ๋“œ, ์บ์‹œ, ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ์„ ํฌํ•จํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ง€์ •.

FONTS_DIRโ€‹

  • ํƒ€์ž…: str
  • ์„ค๋ช…: ํฐํŠธ์— ๋Œ€ํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ง€์ •.

FRONTEND_BUILD_DIRโ€‹

  • ํƒ€์ž…: str
  • ๊ธฐ๋ณธ๊ฐ’: ../build
  • ์„ค๋ช…: ๋นŒ๋“œ๋œ ํ”„๋ŸฐํŠธ์—”๋“œ ํŒŒ์ผ์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

STATIC_DIRโ€‹

  • ํƒ€์ž…: str
  • ๊ธฐ๋ณธ๊ฐ’: ./static
  • ์„ค๋ช…: ํŒŒ๋น„์ฝ˜๊ณผ ๊ฐ™์€ ์ •์  ํŒŒ์ผ์— ๋Œ€ํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ง€์ •.

Ollamaโ€‹

ENABLE_OLLAMA_APIโ€‹

  • ํƒ€์ž…: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: Ollama API ์‚ฌ์šฉ ํ™œ์„ฑํ™”.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OLLAMA_BASE_URL (OLLAMA_API_BASE_URL๋Š” ์‚ฌ์šฉ ์ค‘์ง€๋จ)โ€‹

  • ํƒ€์ž…: str
  • ๊ธฐ๋ณธ๊ฐ’: http://localhost:11434
  • Docker ๊ธฐ๋ณธ๊ฐ’:
    • K8S_FLAG๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ: http://ollama-service.open-webui.svc.cluster.local:11434
    • USE_OLLAMA_DOCKER=True์ธ ๊ฒฝ์šฐ: http://localhost:11434
    • ๊ทธ ์™ธ: http://host.docker.internal:11434
  • ์„ค๋ช…: Ollama ๋ฐฑ์—”๋“œ URL ๊ตฌ์„ฑ.

OLLAMA_BASE_URLSโ€‹

  • ํƒ€์ž…: str
  • ์„ค๋ช…: ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ๋œ Ollama ๋ฐฑ์—”๋“œ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. OLLAMA_BASE_URL ์ฐธ์กฐ. OLLAMA_BASE_URL๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ: http://host-one:11434;http://host-two:11434
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USE_OLLAMA_DOCKERโ€‹

  • ํƒ€์ž…: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ๋ฒˆ๋“ค๋œ Ollama ์ธ์Šคํ„ด์Šค์™€ ํ•จ๊ป˜ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

K8S_FLAGโ€‹

  • ํƒ€์ž…: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์„ค์ •๋œ ๊ฒฝ์šฐ, Helm ์ฐจํŠธ ๋ฐฐํฌ๋ฅผ ๊ฐ€์ •ํ•˜๊ณ  OLLAMA_BASE_URL์„ http://ollama-service.open-webui.svc.cluster.local:11434๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

OpenAIโ€‹

ENABLE_OPENAI_APIโ€‹

  • ํƒ€์ž…: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: OpenAI API ์‚ฌ์šฉ ํ™œ์„ฑํ™”.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OPENAI_API_BASE_URLโ€‹

  • ํƒ€์ž…: str
  • ๊ธฐ๋ณธ๊ฐ’: https://api.openai.com/v1
  • ์„ค๋ช…: OpenAI ๊ธฐ๋ณธ API URL ๊ตฌ์„ฑ.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OPENAI_API_BASE_URLSโ€‹

  • ํƒ€์ž…: str
  • ์„ค๋ช…: ์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๋ถ„๋ฆฌ๋œ ๊ท ํ˜• ์žกํžŒ OpenAI ๊ธฐ๋ณธ API URL ์ง€์›.
  • ์˜ˆ: http://host-one:11434;http://host-two:11434
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OPENAI_API_KEYโ€‹

  • ํƒ€์ž…: str
  • ์„ค๋ช…: OpenAI API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์‹œ: sk-124781258123
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OPENAI_API_KEYSโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์—ฌ๋Ÿฌ OpenAI API ํ‚ค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์‹œ: sk-124781258123;sk-4389759834759834
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž‘์—…โ€‹

TASK_MODELโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ์ œ๋ชฉ ๋ฐ ์›น ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ ์ƒ์„ฑ๊ณผ ๊ฐ™์€ ์ž‘์—…์— ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๋ชจ๋ธ Ollama ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ๋•Œ.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

TASK_MODEL_EXTERNALโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ์ œ๋ชฉ ๋ฐ ์›น ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ ์ƒ์„ฑ๊ณผ ๊ฐ™์€ ์ž‘์—…์— ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๋ชจ๋ธ OpenAI ํ˜ธํ™˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

TITLE_GENERATION_PROMPT_TEMPLATEโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ๋Œ€ํ™” ์ œ๋ชฉ์„ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กฌํ”„ํŠธ.
  • ๊ธฐ๋ณธ๊ฐ’: DEFAULT_TITLE_GENERATION_PROMPT_TEMPLATE ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ฐ’.

DEFAULT_TITLE_GENERATION_PROMPT_TEMPLATE:

### ์ž‘์—…:
๋Œ€ํ™” ๊ธฐ๋ก์„ ์š”์•ฝํ•˜๋Š” ๊ฐ„๊ฒฐํ•œ 3-5๋‹จ์–ด ์ œ๋ชฉ๊ณผ ์ด๋ชจ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
### ์ง€์นจ:
- ์ œ๋ชฉ์€ ๋Œ€ํ™”์˜ ์ฃผ์š” ํ…Œ๋งˆ ๋˜๋Š” ์ฃผ์ œ๋ฅผ ๋ช…ํ™•ํžˆ ๋‚˜ํƒ€๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
- ์ฃผ์ œ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ์ด๋ชจ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋˜, ์ธ์šฉ ๋ถ€ํ˜ธ๋‚˜ ํŠน๋ณ„ํ•œ ์„œ์‹์„ ํ”ผํ•˜์‹ญ์‹œ์˜ค.
- ์ œ๋ชฉ์€ ๋Œ€ํ™”์˜ ์ฃผ์š” ์–ธ์–ด๋กœ ์ž‘์„ฑํ•˜๋˜, ๋‹ค๊ตญ์–ด์ผ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์˜์–ด๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
- ๊ณผ๋„ํ•œ ์ฐฝ์˜์„ฑ๋ณด๋‹ค ์ •ํ™•์„ฑ์„ ์šฐ์„ ์œผ๋กœ ํ•˜๋ฉฐ, ๊ฐ„๋‹จํ•˜๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.
### ์ถœ๋ ฅ:
JSON ํ˜•์‹: { "title": "์—ฌ๊ธฐ์— ๊ฐ„๊ฒฐํ•œ ์ œ๋ชฉ ์ž‘์„ฑ" }
### ์˜ˆ์ œ:
- { "title": "๐Ÿ“‰ ์ฃผ์‹ ์‹œ์žฅ ๋™ํ–ฅ" },
- { "title": "๐Ÿช ์™„๋ฒฝํ•œ ์ดˆ์ฝœ๋ฆฟ ์นฉ ๋ ˆ์‹œํ”ผ" },
- { "title": "์Œ์•… ์ŠคํŠธ๋ฆฌ๋ฐ์˜ ์ง„ํ™”" },
- { "title": "์›๊ฒฉ ๊ทผ๋ฌด ์ƒ์‚ฐ์„ฑ ํŒ" },
- { "title": "ํ—ฌ์Šค์ผ€์–ด์˜ ์ธ๊ณต์ง€๋Šฅ" },
- { "title": "๐ŸŽฎ ๋น„๋””์˜ค ๊ฒŒ์ž„ ๊ฐœ๋ฐœ ํ†ต์ฐฐ" }
### ๋Œ€ํ™” ๊ธฐ๋ก:
<chat_history>
{{MESSAGES:END:2}}
</chat_history>
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATEโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กฌํ”„ํŠธ.
  • ๊ธฐ๋ณธ๊ฐ’: DEFAULT_TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ฐ’.

DEFAULT_TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE:

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ: {{TOOLS}}

์ฟผ๋ฆฌ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ๋‹น์‹ ์˜ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์ง€์นจ์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค:

- ์ถ”๊ฐ€ ํ…์ŠคํŠธ ๋˜๋Š” ์„ค๋ช… ์—†์ด JSON ๊ฐ์ฒด๋งŒ ๋ฐ˜ํ™˜ํ•˜์‹ญ์‹œ์˜ค.

- ์ฟผ๋ฆฌ์— ํ•ด๋‹นํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋นˆ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜์‹ญ์‹œ์˜ค:
{
"tool_calls": []
}

- ํ•˜๋‚˜ ์ด์ƒ์˜ ๋„๊ตฌ๊ฐ€ ์ฟผ๋ฆฌ์™€ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ, "tool_calls" ๋ฐฐ์—ด์„ ํฌํ•จํ•˜๋Š” JSON ์‘๋‹ต์„ ๊ตฌ์„ฑํ•˜์‹ญ์‹œ์˜ค. ๋ฐฐ์—ด ๋‚ด ๊ฐ์ฒด๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:
- "name": ๋„๊ตฌ์˜ ์ด๋ฆ„.
- "parameters": ํ•„์š”ํ•œ ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ํ•ด๋‹น ๊ฐ’์„ ํฌํ•จํ•˜๋Š” ์‚ฌ์ „.

JSON ์‘๋‹ต์˜ ํ˜•์‹์€ ์—„๊ฒฉํ•˜๊ฒŒ:
{
"tool_calls": [
{"name": "toolName1", "parameters": {"key1": "value1"}},
{"name": "toolName2", "parameters": {"key2": "value2"}}
]
}
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์ฝ”๋“œ ์‹คํ–‰โ€‹

ENABLE_CODE_EXECUTIONโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์ฝ”๋“œ ์‹คํ–‰์˜ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_EXECUTION_ENGINEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: pyodide
  • ์„ค๋ช…: ์‚ฌ์šฉํ•  ์ฝ”๋“œ ์‹คํ–‰ ์—”์ง„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_EXECUTION_JUPYTER_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ์ฝ”๋“œ ์‹คํ–‰์— ์‚ฌ์šฉํ•  Jupyter URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_EXECUTION_JUPYTER_AUTHโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ์ฝ”๋“œ ์‹คํ–‰์— ์‚ฌ์šฉํ•  Jupyter ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_EXECUTION_JUPYTER_AUTH_TOKENโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ์ฝ”๋“œ ์‹คํ–‰์— ์‚ฌ์šฉํ•  Jupyter ์ธ์ฆ ํ† ํฐ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_EXECUTION_JUPYTER_AUTH_PASSWORDโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ์ฝ”๋“œ ์‹คํ–‰์— ์‚ฌ์šฉํ•  Jupyter ์ธ์ฆ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_EXECUTION_JUPYTER_TIMEOUTโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด(' '), ๊ธฐ๋ณธ๊ฐ’์€ None์ž…๋‹ˆ๋‹ค.
  • ์„ค๋ช…: Jupyter ์ฝ”๋“œ ์‹คํ–‰์˜ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์ฝ”๋“œ ์ธํ„ฐํ”„๋ฆฌํ„ฐโ€‹

ENABLE_CODE_INTERPRETERโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์ฝ”๋“œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_INTERPRETER_ENGINEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: pyodide
  • ์„ค๋ช…: ์‚ฌ์šฉํ•˜๋ ค๋Š” ์ฝ”๋“œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์—”์ง„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_INTERPRETER_PROMPT_TEMPLATEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ์ฝ”๋“œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์— ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_INTERPRETER_JUPYTER_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด ( ), None์ด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Œ.
  • ์„ค๋ช…: ์ฝ”๋“œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์— ์‚ฌ์šฉ๋˜๋Š” Jupyter URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_INTERPRETER_JUPYTER_AUTHโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด ( ), None์ด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Œ.
  • ์„ค๋ช…: ์ฝ”๋“œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์œ„ํ•œ Jupyter ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_INTERPRETER_JUPYTER_AUTH_TOKENโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด ( ), None์ด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Œ.
  • ์„ค๋ช…: ์ฝ”๋“œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์œ„ํ•œ Jupyter ์ธ์ฆ ํ† ํฐ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_INTERPRETER_JUPYTER_AUTH_PASSWORDโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด ( ), None์ด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Œ.
  • ์„ค๋ช…: ์ฝ”๋“œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์œ„ํ•œ Jupyter ์ธ์ฆ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CODE_INTERPRETER_JUPYTER_TIMEOUTโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด ( ), None์ด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Œ.
  • ์„ค๋ช…: Jupyter ์ฝ”๋“œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ํƒ€์ž„์•„์›ƒ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์ง์ ‘ ์—ฐ๊ฒฐ (OpenAPI/MCPO Tool Servers)โ€‹

ENABLE_DIRECT_CONNECTIONSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์ง์ ‘ ์—ฐ๊ฒฐ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž๋™์™„์„ฑโ€‹

ENABLE_AUTOCOMPLETE_GENERATIONโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์ž๋™์™„์„ฑ ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

:::์ •๋ณด

ENABLE_AUTOCOMPLETE_GENERATION์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH ๋ฐ AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE์„ ์ ์ ˆํžˆ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

:::

AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTHโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: -1
  • ์„ค๋ช…: ์ž๋™์™„์„ฑ ์ƒ์„ฑ์— ๋Œ€ํ•œ ์ตœ๋Œ€ ์ž…๋ ฅ ๊ธธ์ด๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: DEFAULT_AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ฐ’.

DEFAULT_AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE:

### ์ž‘์—…:
๋‹น์‹ ์€ ์ž๋™์™„์„ฑ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. `<text>`์™€ ์ฃผ์–ด์ง„ ์–ธ์–ด์˜ **์™„์„ฑ ์œ ํ˜•** ์œ ํ˜•์— ๋”ฐ๋ผ ํ…์ŠคํŠธ๋ฅผ ๊ณ„์†ํ•ด ์ฃผ์„ธ์š”.

### **์ง€์นจ**:
1. `<text>`์˜ ๋ฌธ๋งฅ๊ณผ ์˜๋ฏธ๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.
2. `<type>`์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค:
- **์ผ๋ฐ˜**: ์ž์—ฐ์Šค๋Ÿฝ๊ณ  ๊ฐ„๊ฒฐํ•œ ๊ณ„์†์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
- **๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ**: ํ˜„์‹ค์ ์ธ ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์™„์„ฑํ•ฉ๋‹ˆ๋‹ค.
3. `<text>`๋ฅผ ๋ฐ”๋กœ ๊ณ„์†ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. ํ…์ŠคํŠธ๋ฅผ ๋ฐ˜๋ณตํ•˜๊ฑฐ๋‚˜, ๋ฐ”๊พธ๊ฑฐ๋‚˜, ๋ชจ๋ธ๋กœ์„œ ์‘๋‹ตํ•˜์ง€ ๋งˆ์„ธ์š”. ๋‹จ์ˆœํžˆ ํ…์ŠคํŠธ๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.
4. ๊ณ„์†ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ์„ ๋ณด์žฅํ•˜์„ธ์š”:
- `<text>`์—์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ด์–ด์ง‘๋‹ˆ๋‹ค.
- ๋ฐ˜๋ณต, ๊ณผ๋„ํ•œ ์„ค๋ช… ๋˜๋Š” ๊ด€๋ จ ์—†๋Š” ์•„์ด๋””์–ด๋ฅผ ํ”ผํ•ฉ๋‹ˆ๋‹ค.
5. ํ™•์‹คํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฐ˜ํ™˜ํ•˜์„ธ์š”: `{ "text": "" }`.

### **์ถœ๋ ฅ ๊ทœ์น™**:
- JSON ํ˜•์‹์œผ๋กœ๋งŒ ์‘๋‹ตํ•˜์„ธ์š”: `{ "text": "<your_completion>" }`.

### **์˜ˆ์‹œ**:
#### ์˜ˆ์‹œ 1:
์ž…๋ ฅ:
<type>General</type>
<text>The sun was setting over the horizon, painting the sky</text>
์ถœ๋ ฅ:
{ "text": "with vibrant shades of orange and pink." }

#### ์˜ˆ์‹œ 2:
์ž…๋ ฅ:
<type>Search Query</type>
<text>Top-rated restaurants in</text>
์ถœ๋ ฅ:
{ "text": "New York City for Italian cuisine." }

---
### ๋ฌธ๋งฅ:
<chat_history>
{{MESSAGES:END:6}}
</chat_history>
<type>{{TYPE}}</type>
<text>{{PROMPT}}</text>
#### ์ถœ๋ ฅ:
  • ์„ค๋ช…: ์ž๋™์™„์„ฑ ์ƒ์„ฑ์„ ์œ„ํ•œ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ํ‰๊ฐ€ ์•„๋ ˆ๋‚˜ ๋ชจ๋ธโ€‹

ENABLE_EVALUATION_ARENA_MODELSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ํ‰๊ฐ€ ์•„๋ ˆ๋‚˜ ๋ชจ๋ธ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_MESSAGE_RATINGโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ๋ฉ”์‹œ์ง€ ํ‰๊ฐ€ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜๊ตฌ์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_COMMUNITY_SHARINGโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž๊ฐ€ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ณต์œ  ๋ฒ„ํŠผ์„ ํ‘œ์‹œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ํƒœ๊ทธ ์ƒ์„ฑโ€‹

ENABLE_TAGS_GENERATIONโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ํƒœ๊ทธ ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

TAGS_GENERATION_PROMPT_TEMPLATEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: DEFAULT_TAGS_GENERATION_PROMPT_TEMPLATE ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ฐ’.

DEFAULT_TAGS_GENERATION_PROMPT_TEMPLATE:

### ์ž‘์—…:
๋Œ€ํ™” ๊ธฐ๋ก์˜ ์ฃผ์š” ์ฃผ์ œ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” 1-3๊ฐœ์˜ ๋„“์€ ํƒœ๊ทธ์™€ 1-3๊ฐœ์˜ ๋” ๊ตฌ์ฒด์ ์ธ ํ•˜์œ„ ์ฃผ์ œ ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

### ๊ฐ€์ด๋“œ๋ผ์ธ:
- ์ƒ์œ„ ์ˆ˜์ค€ ๋„๋ฉ”์ธ์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: ๊ณผํ•™, ๊ธฐ์ˆ , ์ฒ ํ•™, ์˜ˆ์ˆ , ์ •์น˜, ๋น„์ฆˆ๋‹ˆ์Šค, ๊ฑด๊ฐ•, ์Šคํฌ์ธ , ์—”ํ„ฐํ…Œ์ธ๋จผํŠธ, ๊ต์œก)
- ๋Œ€ํ™”์—์„œ ๊ฐ•ํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚˜๋Š” ๊ด€๋ จ ํ•˜์œ„ ๋ถ„์•ผ/๋„๋ฉ”์ธ์„ ํฌํ•จํ•˜๋„๋ก ๊ณ ๋ คํ•˜์„ธ์š”.
- ๋‚ด์šฉ์ด ๋„ˆ๋ฌด ์งง๊ฑฐ๋‚˜ (3๊ฐœ ์ดํ•˜ ๋ฉ”์‹œ์ง€) ๋„ˆ๋ฌด ๋‹ค์–‘ํ•œ ๊ฒฝ์šฐ ["์ผ๋ฐ˜"]๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
- ๋Œ€ํ™”์˜ ์ฃผ์š” ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค; ๋‹ค๊ตญ์–ด๋ผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜์–ด๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
- ์ •ํ™•์„ฑ์„ ์šฐ์„ ์œผ๋กœ ํ•˜๊ณ  ๊ตฌ์ฒด์„ฑ์€ ๊ทธ๋‹ค์Œ์ž…๋‹ˆ๋‹ค.

### ์ถœ๋ ฅ:
JSON ํ˜•์‹: { "tags": ["tag1", "tag2", "tag3"] }

### ๋Œ€ํ™” ๊ธฐ๋ก:
<chat_history>
{{MESSAGES:END:6}}
</chat_history>
  • ์„ค๋ช…: ํƒœ๊ทธ ์ƒ์„ฑ์„ ์œ„ํ•œ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

API ํ‚ค ์—”๋“œํฌ์ธํŠธ ์ œํ•œโ€‹

ENABLE_API_KEYโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: API ํ‚ค ์ธ์ฆ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_API_KEY_ENDPOINT_RESTRICTIONSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์ถ”๊ฐ€ ๋ณด์•ˆ ๋ฐ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ์„ฑ์„ ์œ„ํ•ด API ํ‚ค ์—”๋“œํฌ์ธํŠธ ์ œํ•œ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

API_KEY_ALLOWED_ENDPOINTSโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: API ํ‚ค ์—”๋“œํฌ์ธํŠธ ์ œํ•œ์ด ํ™œ์„ฑํ™”๋˜์—ˆ์„ ๋•Œ ํ—ˆ์šฉ๋œ API ์—”๋“œํฌ์ธํŠธ์˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

:::์ฐธ๊ณ 

API_KEY_ALLOWED_ENDPOINTS ๊ฐ’์€ /api/v1/messages, /api/v1/channels์™€ ๊ฐ™์€ ์—”๋“œํฌ์ธํŠธ URL์˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

:::

JWT_EXPIRES_INโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: -1
  • ์„ค๋ช…: JWT ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์œ ํšจํ•œ ์‹œ๊ฐ„ ๋‹จ์œ„: s, m, h, d, w ๋˜๋Š” ๋งŒ๋ฃŒ ์—†์Œ์˜ ๊ฒฝ์šฐ์—๋Š” -1.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

๋ณด์•ˆ ๋ณ€์ˆ˜โ€‹

ENABLE_FORWARD_USER_INFO_HEADERSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ์ •๋ณด(์ด๋ฆ„, ID, ์ด๋ฉ”์ผ, ์—ญํ• )๋ฅผ X-ํ—ค๋”๋กœ OpenAI API ๋ฐ Ollama API์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๋‹ค์Œ ํ—ค๋”๊ฐ€ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค:
    • X-OpenWebUI-User-Name
    • X-OpenWebUI-User-Id
    • X-OpenWebUI-User-Email
    • X-OpenWebUI-User-Role

ENABLE_WEB_LOADER_SSL_VERIFICATIONโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์›น์‚ฌ์ดํŠธ์—์„œ SSL ์ธ์ฆ์„ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ์œ ํ˜•: str
  • ์˜ต์…˜:
    • lax - SameSite ์†์„ฑ์„ lax๋กœ ์„ค์ •ํ•˜์—ฌ ์ œ3์ž ์›น์‚ฌ์ดํŠธ์—์„œ ์‹œ์ž‘๋œ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • strict - SameSite ์†์„ฑ์„ strict๋กœ ์„ค์ •ํ•˜์—ฌ ์ œ3์ž ์›น์‚ฌ์ดํŠธ์—์„œ ์‹œ์ž‘๋œ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
    • none - SameSite ์†์„ฑ์„ none์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์ œ3์ž ์›น์‚ฌ์ดํŠธ์—์„œ ์‹œ์ž‘๋œ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋˜, HTTPS๋กœ๋งŒ ์ „์†ก๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ๊ฐ’: lax
  • ์„ค๋ช…: ์„ธ์…˜ ์ฟ ํ‚ค์˜ SameSite ์†์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

:::๊ฒฝ๊ณ 

ENABLE_OAUTH_SIGNUP์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ WEBUI_SESSION_COOKIE_SAME_SITE๋ฅผ strict๋กœ ์„ค์ •ํ•˜๋ฉด ๋กœ๊ทธ์ธ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” Open WebUI๊ฐ€ OAuth ๊ณต๊ธ‰์ž์—์„œ์˜ ์ฝœ๋ฐฑ์„ ์œ ํšจํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋จ์œผ๋กœ ์ธํ•ด CSRF ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ  ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ strict ์„ธ์…˜ ์ฟ ํ‚ค๋Š” ์ฝœ๋ฐฑ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์ „์†ก๋˜์ง€ ์•Š์•„ ๋กœ๊ทธ์ธ ๋ฌธ์ œ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ๊ฒฝํ—˜ํ•œ๋‹ค๋ฉด ๊ธฐ๋ณธ ๊ฐ’์ธ lax๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

:::

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: Secure ์†์„ฑ์„ ์„ธ์…˜ ์ฟ ํ‚ค์— ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค (True๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ).
  • ์œ ํ˜•: str
  • ์˜ต์…˜:
    • lax - SameSite ์†์„ฑ์„ lax๋กœ ์„ค์ •ํ•˜์—ฌ ์ œ3์ž ์›น์‚ฌ์ดํŠธ์—์„œ ์‹œ์ž‘๋œ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์ธ์ฆ ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • strict - SameSite ์†์„ฑ์„ strict๋กœ ์„ค์ •ํ•˜์—ฌ ์ œ3์ž ์›น์‚ฌ์ดํŠธ์—์„œ ์‹œ์ž‘๋œ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์ธ์ฆ ์ฟ ํ‚ค๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
    • none - SameSite ์†์„ฑ์„ none์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์ œ3์ž ์›น์‚ฌ์ดํŠธ์—์„œ ์‹œ์ž‘๋œ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์ธ์ฆ ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋˜, HTTPS๋กœ๋งŒ ์ „์†ก๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ๊ฐ’: lax
  • ์„ค๋ช…: ์ธ์ฆ ์ฟ ํ‚ค์˜ SameSite ์†์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

:::์ฐธ๊ณ 

๊ฐ’์ด ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ WEBUI_SESSION_COOKIE_SAME_SITE๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

:::

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: True๋กœ ์„ค์ •ํ•˜๋ฉด ์ธ์ฆ ์ฟ ํ‚ค์— Secure ์†์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

:::์ •๋ณด

๊ฐ’์ด ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, WEBUI_SESSION_COOKIE_SECURE๊ฐ€ ๋Œ€์ฒด๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

:::

WEBUI_AUTHโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์ด ์„ค์ •์€ ์ธ์ฆ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

:::์œ„ํ—˜

False๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, Open WebUI ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ธ์ฆ์ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ธ์ฆ์„ ๋„๋Š” ๊ฒƒ์€ ๊ธฐ์กด ์‚ฌ์šฉ์ž๊ฐ€ ์—†๋Š” ์ƒˆ๋กœ ์„ค์น˜๋œ ์ƒํ™ฉ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ์ง์ ‘์ ์œผ๋กœ ์ธ์ฆ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์„ ๋„๋Š” ๋ชฉ์ ์ด๋ผ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฌ์šฉ์ž๊ฐ€ ์ถ”๊ฐ€๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

:::

WEBUI_SECRET_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: t0p-s3cr3t
  • ๋„์ปค ๊ธฐ๋ณธ๊ฐ’: ์ฒซ ์‹คํ–‰ ์‹œ ๋žœ๋ค์œผ๋กœ ์ƒ์„ฑ
  • ์„ค๋ช…: JSON Web Token์— ์‚ฌ์šฉ๋˜๋Š” ๋žœ๋ค ๋ฌธ์ž์—ด์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

:::์ •๋ณด

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์žˆ๋Š” ๋‹ค์ค‘ ๋…ธ๋“œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ Open-WebUI๋ฅผ ๋ฐฐํฌํ•  ๋•Œ, ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์—์„œ ๋™์ผํ•œ WEBUI_SECRET_KEY ๊ฐ’์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ๋…ธ๋“œ๊ฐ€ ๊ต์ฒด๋˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ์„ธ์…˜์ด ์ „๋‹ฌ๋  ๊ฒฝ์šฐ์—๋„ ์ž‘์—…์„ ๊ณ„์† ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋…ธ๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

:::

OFFLINE_MODEโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์˜คํ”„๋ผ์ธ ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

RESET_CONFIG_ON_STARTโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์‹œ์ž‘ ์‹œ config.json ํŒŒ์ผ์„ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

SAFE_MODEโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์•ˆ์ „ ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ž ์žฌ์ ์œผ๋กœ ์œ„ํ—˜ํ•œ ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

CORS_ALLOW_ORIGINโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: *
  • ์„ค๋ช…: Cross-Origin Resource Sharing (CORS) ํ—ˆ์šฉ ์ถœ์ฒ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODEโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์ž์ฒด ๋ชจ๋ธ๋ง ํŒŒ์ผ์— Hub์—์„œ ์ •์˜๋œ ์‚ฌ์šฉ์ž ์ง€์ • ๋ชจ๋ธ์„ ํ—ˆ์šฉํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

RAG_RERANKING_MODEL_TRUST_REMOTE_CODEโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ๋‹ค์‹œ ๋žญํ‚น์„ ์œ„ํ•œ ํ—ˆ๋ธŒ์—์„œ ์ž์ฒด ๋ชจ๋ธ๋ง ํŒŒ์ผ์— ์ •์˜๋œ ์‚ฌ์šฉ์ž ์ง€์ • ๋ชจ๋ธ์„ ํ—ˆ์šฉํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

RAG_EMBEDDING_MODEL_AUTO_UPDATEโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: Sentence-Transformer ๋ชจ๋ธ์˜ ์ž๋™ ์—…๋ฐ์ดํŠธ๋ฅผ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

RAG_RERANKING_MODEL_AUTO_UPDATEโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ๋‹ค์‹œ ๋žญํ‚น ๋ชจ๋ธ์˜ ์ž๋™ ์—…๋ฐ์ดํŠธ๋ฅผ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šคโ€‹

VECTOR_DBโ€‹

  • ์œ ํ˜•: str
  • ์˜ต์…˜:
  • chroma, elasticsearch, milvus, opensearch, pgvector, qdrant, pinecone
  • ๊ธฐ๋ณธ๊ฐ’: chroma
  • ์„ค๋ช…: ์‚ฌ์šฉํ•  ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ ์ž„๋ฒ ๋”ฉ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ๋ฒกํ„ฐ ์ €์žฅ ์‹œ์Šคํ…œ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

ChromaDBโ€‹

CHROMA_TENANTโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: chromadb.DEFAULT_TENANT ( chromadb ๋ชจ๋“ˆ์˜ ์ƒ์ˆ˜๊ฐ’)
  • ์„ค๋ช…: RAG ์ž„๋ฒ ๋”ฉ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•  ChromaDB ํ…Œ๋„ŒํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

CHROMA_DATABASEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: chromadb.DEFAULT_DATABASE ( chromadb ๋ชจ๋“ˆ์˜ ์ƒ์ˆ˜๊ฐ’)
  • ์„ค๋ช…: RAG ์ž„๋ฒ ๋”ฉ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•  ChromaDB ํ…Œ๋„ŒํŠธ ๋‚ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

CHROMA_HTTP_HOSTโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ์›๊ฒฉ ChromaDB ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋กœ์ปฌ ChromaDB ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

CHROMA_HTTP_PORTโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 8000
  • ์„ค๋ช…: ์›๊ฒฉ ChromaDB ์„œ๋ฒ„์˜ ํฌํŠธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

CHROMA_HTTP_HEADERSโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ๋ชจ๋“  ChromaDB ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ํฌํ•จ๋  HTTP ํ—ค๋”์˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก.
  • ์˜ˆ์‹œ: Authorization=Bearer heuhagfuahefj,User-Agent=OpenWebUI.

CHROMA_HTTP_SSLโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ChromaDB ์„œ๋ฒ„ ์—ฐ๊ฒฐ์— SSL์„ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

CHROMA_CLIENT_AUTH_PROVIDERโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ์›๊ฒฉ ChromaDB ์„œ๋ฒ„์šฉ ์ธ์ฆ ๊ณต๊ธ‰์ž๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์‹œ: chromadb.auth.basic_authn.BasicAuthClientProvider

CHROMA_CLIENT_AUTH_CREDENTIALSโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ์›๊ฒฉ ChromaDB ์„œ๋ฒ„์šฉ ์ธ์ฆ ์ž๊ฒฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์‹œ: username:password

Elasticsearchโ€‹

ELASTICSEARCH_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด (' '), ๊ธฐ๋ณธ๊ฐ’์€ None์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
  • ์„ค๋ช…: Elasticsearch API ํ‚ค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ELASTICSEARCH_CA_CERTSโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด (' '), ๊ธฐ๋ณธ๊ฐ’์€ None์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
  • ์„ค๋ช…: Elasticsearch ์ธ์ฆ ๊ธฐ๊ด€ ์ธ์ฆ์„œ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ELASTICSEARCH_CLOUD_IDโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด (' '), ๊ธฐ๋ณธ๊ฐ’์€ None์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
  • ์„ค๋ช…: Elasticsearch ํด๋ผ์šฐ๋“œ ID๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ELASTICSEARCH_INDEX_PREFIXโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: open_webui_collections
  • Description: Elasticsearch ์ธ๋ฑ์Šค์˜ ์ ‘๋‘์‚ฌ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ELASTICSEARCH_PASSWORDโ€‹

  • Type: str
  • Default: ๊ธฐ๋ณธ๊ฐ’์€ ๋นˆ ๋ฌธ์ž์—ด ( )์ด๋ฉฐ, None์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
  • Description: Elasticsearch์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ELASTICSEARCH_URLโ€‹

  • Type: str
  • Default: https://localhost:9200
  • Description: Elasticsearch ์ธ์Šคํ„ด์Šค์˜ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ELASTICSEARCH_USERNAMEโ€‹

  • Type: str
  • Default: ๊ธฐ๋ณธ๊ฐ’์€ ๋นˆ ๋ฌธ์ž์—ด ( )์ด๋ฉฐ, None์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
  • Description: Elasticsearch์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

Milvusโ€‹

MILVUS_URIโ€‹

  • Type: str
  • Default: ${DATA_DIR}/vector_db/milvus.db
  • Description: Milvus ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•  URI๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐฐํฌ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ๋กœ์ปฌ ๋˜๋Š” ์›๊ฒฉ Milvus ์„œ๋ฒ„๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MILVUS_DBโ€‹

  • Type: str
  • Default: default
  • Description: Milvus ์ธ์Šคํ„ด์Šค ๋‚ด์—์„œ ์—ฐ๊ฒฐํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

MILVUS_TOKENโ€‹

  • Type: str
  • Default: None
  • Description: Milvus์— ์‚ฌ์šฉ๋  ์„ ํƒ์  ์—ฐ๊ฒฐ ํ† ํฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

MILVUS_INDEX_TYPEโ€‹

  • Type: str
  • Default: HNSW
  • Options: AUTOINDEX, FLAT, IVF_FLAT, HNSW
  • Description: Milvus์—์„œ ์ƒˆ ์ปฌ๋ ‰์…˜์„ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ๋  ์ธ๋ฑ์Šค ์œ ํ˜•์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. AUTOINDEX๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Milvus ๋‹จ๋…ํ˜•์— ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. HNSW๋Š” ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋œ Milvus ์„ค์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

MILVUS_METRIC_TYPEโ€‹

  • Type: str
  • Default: COSINE
  • Options: COSINE, IP, L2
  • Description: Milvus์—์„œ ๋ฒกํ„ฐ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ๋ฉ”ํŠธ๋ฆญ ์œ ํ˜•์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

MILVUS_HNSW_Mโ€‹

  • Type: int
  • Default: 16
  • Description: Milvus์—์„œ HNSW ์ธ๋ฑ์Šค ์œ ํ˜•์˜ M ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ƒ์„ฑ ์ค‘ ์ƒˆ ์š”์†Œ๋งˆ๋‹ค ์ƒ์„ฑ๋˜๋Š” ์–‘๋ฐฉํ–ฅ ๋งํฌ ์ˆ˜์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. MILVUS_INDEX_TYPE์ด HNSW์ผ ๊ฒฝ์šฐ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

MILVUS_HNSW_EFCONSTRUCTIONโ€‹

  • Type: int
  • Default: 100
  • Description: Milvus์—์„œ HNSW ์ธ๋ฑ์Šค ์œ ํ˜•์˜ efConstruction ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ธ๋ฑ์Šค ์ƒ์„ฑ ์ค‘ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ด์›ƒ์„ ์œ„ํ•œ ๋™์  ๋ชฉ๋ก ํฌ๊ธฐ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. MILVUS_INDEX_TYPE์ด HNSW์ผ ๊ฒฝ์šฐ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

MILVUS_IVF_FLAT_NLISTโ€‹

  • Type: int
  • Default: 128
  • Description: Milvus์—์„œ IVF_FLAT ์ธ๋ฑ์Šค ์œ ํ˜•์˜ nlist ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์œ ๋‹› ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. MILVUS_INDEX_TYPE์ด IVF_FLAT์ผ ๊ฒฝ์šฐ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OpenSearchโ€‹

OPENSEARCH_CERT_VERIFYโ€‹

  • Type: bool
  • Default: False
  • Description: OpenSearch ์ธ์ฆ์„œ ๊ฒ€์ฆ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

OPENSEARCH_PASSWORDโ€‹

  • Type: str
  • Default: None
  • Description: OpenSearch ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

OPENSEARCH_SSLโ€‹

  • Type: bool
  • Default: True
  • Description: OpenSearch SSL์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

OPENSEARCH_URIโ€‹

  • Type: str
  • Default: https://localhost:9200
  • Description: OpenSearch์˜ URI๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

OPENSEARCH_USERNAMEโ€‹

  • Type: str
  • Default: None
  • Description: OpenSearch ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

PGVectorโ€‹

PGVECTOR_DB_URLโ€‹

  • Type: str
  • Default: DATABASE_URL ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ฐ’
  • Description: ๋ชจ๋ธ ์ €์žฅ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

PGVECTOR_INITIALIZE_MAX_VECTOR_LENGTHโ€‹

  • Type: str
  • Default: 1536
  • Description: PGVector ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•œ ์ตœ๋Œ€ ๋ฒกํ„ฐ ๊ธธ์ด๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Qdrantโ€‹

QDRANT_API_KEYโ€‹

  • Type: str
  • Description: Qdrant API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

QDRANT_URIโ€‹

  • Type: str
  • Description: Qdrant์˜ URI๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

QDRANT_ON_DISKโ€‹

  • Type: bool
  • Default: False
  • Description: ๋ฉ”๋ชจ๋ฆฌ ๋งคํ•‘(์˜จ๋””์Šคํฌ) ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

QDRANT_PREFER_GRPCโ€‹

  • Type: bool
  • Default: False
  • Description: ๊ฐ€๋Šฅํ•˜๋ฉด gRPC ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

QDRANT_GRPC_PORTโ€‹

  • Type: int
  • Default: 6334
  • Description: Qdrant์˜ gRPC ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

ENABLE_QDRANT_MULTITENANCY_MODEโ€‹

  • Type: bool
  • Default: False
  • Description: Qdrant ์ปฌ๋ ‰์…˜ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ฉ€ํ‹ฐํ…Œ๋„Œ์‹œ ํŒจํ„ด์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์œ ์‚ฌ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ฉํ•จ์œผ๋กœ์จ RAM ์‚ฌ์šฉ๋Ÿ‰๊ณผ ์ปดํ“จํŒ… ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๋Œ€ํญ ์ค„์ž…๋‹ˆ๋‹ค. ํ™œ์„ฑํ™”๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.
์ •๋ณด

์ด ์„ค์ •์€ ์ด์ „ ํŒจํ„ด(๋น„๋ฉ€ํ‹ฐํ…Œ๋„Œ์‹œ)์œผ๋กœ ์ƒ์„ฑ๋œ ๋ชจ๋“  Qdrant ์ปฌ๋ ‰์…˜ ์—ฐ๊ฒฐ์„ ๋Š์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ์ง€์‹์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๋ฉด Admin Settings > Documents > Reindex Knowledge Base๋กœ ์ด๋™ํ•˜์‹ญ์‹œ์˜ค.

์ด์ „ ํŒจํ„ด์—์„œ ์ƒ์„ฑ๋œ Qdrant ์ปฌ๋ ‰์…˜์€ ์—ฌ์ „ํžˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ UI์— ๋ฒกํ„ฐ DB๋งŒ ๋ฆฌ์…‹ํ•˜๋Š” ๋ฒ„ํŠผ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ง€์‹์„ ๋ฉ€ํ‹ฐ ํ…Œ๋„Œ์‹œ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๋ฉด:

  • ๋„ค์ดํ‹ฐ๋ธŒ Qdrant ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ open_webui-knowledge ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ์ปฌ๋ ‰์…˜ (๋˜๋Š” Open WebUI์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ปฌ๋ ‰์…˜์„ ์ œ๊ฑฐํ•˜๋ ค๋ฉด open_webui ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ์ปฌ๋ ‰์…˜)์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • ๊ด€๋ฆฌ ์„ค์ • > ๋ฌธ์„œ > ์ง€์‹ ๋ฒ ์ด์Šค ์žฌ์ƒ‰์ธ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๊ธฐ์กด ์ง€์‹ ๋ฒ ์ด์Šค๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

์ง€์‹ ๋ฒ ์ด์Šค ์žฌ์ƒ‰์ธ์€ ๊ธฐ์กด ์ง€์‹ ๋ฒ ์ด์Šค๋งŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

:::์œ„ํ—˜

๋ฉ€ํ‹ฐ ํ…Œ๋„Œ์‹œ ํŒจํ„ด์„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๊ณ  ์ด์ „ ์ง€์‹์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋ฉด, ๊ด€๋ฆฌ ์„ค์ • > ๋ฌธ์„œ์—์„œ ๋ฒกํ„ฐ์™€ ์ง€์‹์„ ๋ฆฌ์…‹ํ•˜์—ฌ open_webui ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ์ปฌ๋ ‰์…˜ ๋ฐ ์ €์žฅ๋œ ๋ชจ๋“  ์ง€์‹์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

:::

Pineconeโ€‹

Pinecone์„ ๋ฒกํ„ฐ ์Šคํ† ์–ด๋กœ ์‚ฌ์šฉํ•  ๋•Œ ๋‹ค์Œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ž‘์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€์ˆ˜๋“ค์„ .env ํŒŒ์ผ ๋˜๋Š” ๋ฐฐํฌ ํ™˜๊ฒฝ์— ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PINECONE_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ์—†์Œ
  • ์„ค๋ช…: Pinecone ์„œ๋น„์Šค์— ์ธ์ฆํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

PINECONE_ENVIRONMENTโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ์—†์Œ
  • ์„ค๋ช…: ์—ฐ๊ฒฐํ•  Pinecone ํ™˜๊ฒฝ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: us-west1-gcp, gcp-starter ๋“ฑ).

PINECONE_INDEX_NAMEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: open-webui-index
  • ์„ค๋ช…: ๋ฒกํ„ฐ ์ž„๋ฒ ๋”ฉ์„ ์ €์žฅํ•˜๊ณ  ์ฟผ๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  Pinecone ์ธ๋ฑ์Šค์˜ ์ด๋ฆ„์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

PINECONE_DIMENSIONโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 1536
  • ์„ค๋ช…: ๋ฒกํ„ฐ ์ž„๋ฒ ๋”ฉ์˜ ์ฐจ์›์ž…๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค์—์„œ ์˜ˆ์ƒํ•˜๋Š” ์ฐจ์›๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค (๋Œ€๊ฐœ ์‚ฌ์šฉ๋œ ๋ชจ๋ธ์— ๋”ฐ๋ผ 768, 1024, 1536 ๋˜๋Š” 3072).

PINECONE_METRICโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: cosine
  • ์˜ต์…˜: cosine, dotproduct, euclidean
  • ์„ค๋ช…: Pinecone ์ธ๋ฑ์Šค ๋‚ด์—์„œ ๋ฒกํ„ฐ ๋น„๊ต๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์œ ์‚ฌ์„ฑ ๋ฉ”ํŠธ๋ฆญ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

PINECONE_CLOUDโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: aws
  • ์˜ต์…˜: aws, gcp, azure
  • ์„ค๋ช…: Pinecone ์ธ๋ฑ์Šค๊ฐ€ ํ˜ธ์ŠคํŒ…๋œ ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

RAG ์ฝ˜ํ…์ธ  ์ถ”์ถœ ์—”์ง„โ€‹

CONTENT_EXTRACTION_ENGINEโ€‹

  • ์œ ํ˜•: str
  • ์˜ต์…˜:
    • ๊ธฐ๋ณธ๊ฐ’ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋น„์›Œ ๋‘๊ธฐ
    • external - ์™ธ๋ถ€ ๋กœ๋” ์‚ฌ์šฉ
    • tika - ๋กœ์ปฌ Apache Tika ์„œ๋ฒ„ ์‚ฌ์šฉ
    • docling - Docling ์—”์ง„ ์‚ฌ์šฉ
    • document_intelligence - Document Intelligence ์—”์ง„ ์‚ฌ์šฉ
    • mistral_ocr - Mistral OCR ์—”์ง„ ์‚ฌ์šฉ
  • ์„ค๋ช…: ๋ฌธ์„œ ์ˆ˜์ง‘์„ ์œ„ํ•œ ์ฝ˜ํ…์ธ  ์ถ”์ถœ ์—”์ง„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

MISTRAL_OCR_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ์—†์Œ
  • ์„ค๋ช…: Mistral OCR API ํ‚ค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

EXTERNAL_DOCUMENT_LOADER_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ์—†์Œ
  • ์„ค๋ช…: ์™ธ๋ถ€ ๋ฌธ์„œ ๋กœ๋” ์„œ๋น„์Šค์˜ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

EXTERNAL_DOCUMENT_LOADER_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ์—†์Œ
  • ์„ค๋ช…: ์™ธ๋ถ€ ๋ฌธ์„œ ๋กœ๋” ์„œ๋น„์Šค์— ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•œ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

TIKA_SERVER_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: http://localhost:9998
  • ์„ค๋ช…: Apache Tika ์„œ๋ฒ„์˜ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

DOCLING_SERVER_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: http://docling:5001
  • ์„ค๋ช…: Docling ์„œ๋ฒ„์˜ URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

DOCLING_OCR_ENGINEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: tesseract
  • ์„ค๋ช…: Docling์—์„œ ์‚ฌ์šฉํ•˜๋Š” OCR ์—”์ง„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ๊ฐ’: tesseract (๊ธฐ๋ณธ๊ฐ’), easyocr, ocrmac, rapidocr, tesserocr.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

DOCLING_OCR_LANGโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: eng,fra,deu,spa (๊ธฐ๋ณธ tesseract ์—”์ง„ ์‚ฌ์šฉ ์‹œ)
  • ์„ค๋ช…: ์„ค์ •๋œ DOCLING_OCR_ENGINE๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  OCR ์–ธ์–ด(s)๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ˜•์‹ ๋ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์–ธ์–ด ์ฝ”๋“œ๋Š” ์„ ํƒ๋œ OCR ์—”์ง„์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์ •๋ณด ๊ฒ€์ƒ‰ ์ฆ๊ฐ• ์ƒ์„ฑ (RAG)โ€‹

RAG_EMBEDDING_ENGINEโ€‹

  • ์œ ํ˜•: str
  • ์˜ต์…˜:
    • ๋น„์›Œ ๋‘ฌ์„œ ๊ธฐ๋ณธ๊ฐ’ (SentenceTransformers) ์‚ฌ์šฉ - SentenceTransformers๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ.
    • ollama - Ollama API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ.
    • openai - OpenAI API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ.
  • ์„ค๋ช…: RAG์— ์‚ฌ์šฉํ•  ์ž„๋ฒ ๋”ฉ ์—”์ง„์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_EMBEDDING_MODELโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: sentence-transformers/all-MiniLM-L6-v2
  • ์„ค๋ช…: ์ž„๋ฒ ๋”ฉ์— ์‚ฌ์šฉํ•  ๋ชจ๋ธ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ๋Š” Sentence-Transformer ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: BM25 + ChromaDB๋ฅผ ์‚ฌ์šฉํ•œ ์•™์ƒ๋ธ” ๊ฒ€์ƒ‰์„ ํ™œ์„ฑํ™”ํ•˜๋ฉฐ, sentence_transformers ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ๋‹ค์‹œ ์ˆœ์œ„๋ฅผ ๋งค๊น๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_TOP_Kโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 3
  • ์„ค๋ช…: RAG ์‚ฌ์šฉ ์‹œ ์ž„๋ฒ ๋”ฉ์— ์‚ฌ์šฉ๋  ๊ฒฐ๊ณผ์˜ ๊ธฐ๋ณธ ๊ฐœ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_TOP_K_RERANKERโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 3
  • ์„ค๋ช…: RAG ์‚ฌ์šฉ ์‹œ ๋‹ค์‹œ ์ˆœ์œ„๋ฅผ ๋งค๊ธธ ๊ฒฐ๊ณผ์˜ ๊ธฐ๋ณธ ๊ฐœ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_RELEVANCE_THRESHOLDโ€‹

  • ์œ ํ˜•: float
  • ๊ธฐ๋ณธ๊ฐ’: 0.0
  • ์„ค๋ช…: ๋‹ค์‹œ ์ˆœ์œ„๋ฅผ ๋งค๊ธธ ๋•Œ ๋ฌธ์„œ๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๊ด€๋ จ๋„ ์ž„๊ณ„๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_HYBRID_BM25_WEIGHTโ€‹

  • ์œ ํ˜•: float
  • ๊ธฐ๋ณธ๊ฐ’: 0.5
  • ์„ค๋ช…: ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰ ์ค‘ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ (BM25)์— ๋ถ€์—ฌ๋œ ๊ฐ€์ค‘์น˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. 1์€ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰๋งŒ, 0์€ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰๋งŒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_TEMPLATEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: DEFAULT_RAG_TEMPLATE ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ฐ’

DEFAULT_RAG_TEMPLATE:

### ์ž‘์—…:
์ฃผ์–ด์ง„ context๋ฅผ ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ์ž ์งˆ๋ฌธ์— ์‘๋‹ตํ•˜๋˜, `<source>` ํƒœ๊ทธ์— ๋ช…์‹œ์ ์ธ id ์†์„ฑ(์˜ˆ: <source id="1">)์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ์—๋งŒ [id] ํ˜•์‹์œผ๋กœ ์ธ์šฉ์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

### ๊ฐ€์ด๋“œ๋ผ์ธ:
- ๋‹ต๋ณ€์„ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ, ๊ทธ ์‚ฌ์‹ค์„ ๋ช…ํ™•ํžˆ ๋ฐํž™๋‹ˆ๋‹ค.
- ์งˆ๋ฌธ์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถ”๊ฐ€ ์งˆ๋ฌธ์„ ์š”์ฒญํ•˜์„ธ์š”.
- ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์ด ์ž‘์„ฑ๋œ ์–ธ์–ด๋กœ ๋‹ต๋ณ€ํ•ฉ๋‹ˆ๋‹ค.
- context๊ฐ€ ์ฝ๊ธฐ ์–ด๋ ต๊ฑฐ๋‚˜ ํ’ˆ์งˆ์ด ๋‚ฎ์€ ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆฌ๊ณ  ์ตœ์„ ์˜ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
- ๋‹ต๋ณ€์ด context์— ์—†์ง€๋งŒ ์ง€์‹์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์ด๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์ž์‹ ์˜ ์ดํ•ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
- **์˜ค์ง `<source>` ํƒœ๊ทธ์— id ์†์„ฑ์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ์—๋งŒ [id] ํ˜•์‹์œผ๋กœ ์ธ์šฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.**
- `<source>` ํƒœ๊ทธ์— id ์†์„ฑ์ด ํฌํ•จ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ธ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
- ์‘๋‹ต์— XML ํƒœ๊ทธ๋ฅผ ํฌํ•จํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
- ์ธ์šฉ์ด ์ œ๊ณต๋œ ์ •๋ณด์™€ ์ง์ ‘์ ์œผ๋กœ ๊ด€๋ จ๋˜๋„๋ก ๊ตฌ์„ฑํ•˜๊ณ  ๊ฐ„๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

### ์ธ์šฉ ์˜ˆ์ œ:
์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ์ฃผ์ œ์— ๋Œ€ํ•ด ์งˆ๋ฌธํ•˜๊ณ , ์ •๋ณด๊ฐ€ id ์†์„ฑ์ด ์žˆ๋Š” ์ถœ์ฒ˜์—์„œ ์ œ๊ณต๋œ ๊ฒฝ์šฐ, ๋‹ค์Œ ์˜ˆ์ œ์™€ ๊ฐ™์ด ์ธ์šฉ์ด ํฌํ•จ๋œ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:
* "์—ฐ๊ตฌ์— ๋”ฐ๋ฅด๋ฉด, ์ œ์•ˆ๋œ ๋ฐฉ๋ฒ•์€ ํšจ์œจ์„ฑ์„ 20% ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค [1]."

### ์ถœ๋ ฅ:
context์— id ์†์„ฑ์ด ์žˆ๋Š” `<source>` ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ [id] ํ˜•์‹์œผ๋กœ ์ธ์šฉ์„ ํฌํ•จํ•˜์—ฌ ์‚ฌ์šฉ์ž ์งˆ๋ฌธ์— ๋ช…ํ™•ํ•˜๊ณ  ์ง์ ‘์ ์œผ๋กœ ๋‹ต๋ณ€ํ•˜์‹ญ์‹œ์˜ค.

<context>
{{CONTEXT}}
</context>

<user_query>
{{QUERY}}
</user_query>
  • ์„ค๋ช…: RAG ๋ฌธ์„œ๋ฅผ ์ฑ„ํŒ… ์‘๋‹ต์— ์‚ฝ์ž…ํ•  ๋•Œ ์‚ฌ์šฉํ•  ํ…œํ”Œ๋ฆฟ
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_TEXT_SPLITTERโ€‹

  • ์œ ํ˜•: str
  • ์˜ต์…˜:
    • character
    • token
  • ๊ธฐ๋ณธ๊ฐ’: character
  • ์„ค๋ช…: RAG ๋ชจ๋ธ์˜ ํ…์ŠคํŠธ ๋ถ„ํ• ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

TIKTOKEN_CACHE_DIRโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: {CACHE_DIR}/tiktoken
  • ์„ค๋ช…: TikToken ์บ์‹œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

TIKTOKEN_ENCODING_NAMEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: cl100k_base
  • ์„ค๋ช…: TikToken์˜ ์ธ์ฝ”๋”ฉ ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CHUNK_SIZEโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 1000
  • ์„ค๋ช…: ์ž„๋ฒ ๋”ฉ์„ ์œ„ํ•œ ๋ฌธ์„œ ์ฒญํฌ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

CHUNK_OVERLAPโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 100
  • ์„ค๋ช…: ์ฒญํฌ ๊ฐ„ ์ค‘์ฒฉ์˜ ์–‘์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

PDF_EXTRACT_IMAGESโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ๋ฌธ์„œ๋ฅผ ๋กœ๋“œํ•  ๋•Œ PDF์—์„œ OCR์„ ์‚ฌ์šฉํ•ด ์ด๋ฏธ์ง€๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_FILE_MAX_SIZEโ€‹

  • ์œ ํ˜•: int
  • ์„ค๋ช…: ๋ฌธ์„œ ์‚ฝ์ž…์„ ์œ„ํ•ด ์—…๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ(MB)๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_FILE_MAX_COUNTโ€‹

  • ์œ ํ˜•: int
  • ์„ค๋ช…: ๋ฌธ์„œ ์‚ฝ์ž…์„ ์œ„ํ•ด ํ•œ ๋ฒˆ์— ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

:::์ •๋ณด

RAG_FILE_MAX_SIZE ๋ฐ RAG_FILE_MAX_COUNT๋ฅผ ์„ค์ •ํ•  ๋•Œ ๊ณผ๋„ํ•œ ํŒŒ์ผ ์—…๋กœ๋“œ์™€ ์ž ์žฌ์  ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ’์ด ์ ์ ˆํ•œ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

:::

RAG_ALLOWED_FILE_EXTENSIONSโ€‹

  • ์„ค๋ช…: ์—…๋กœ๋“œ๊ฐ€ ํ—ˆ์šฉ๋˜๋Š” ํŒŒ์ผ ํ™•์žฅ์ž๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
["pdf,docx,txt"]
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_RERANKING_MODELโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ๊ฒฐ๊ณผ๋ฅผ ์žฌ์ˆœ์œ„ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ธ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ๋Š” Sentence-Transformer ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_OPENAI_API_BASE_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ${OPENAI_API_BASE_URL}
  • ์„ค๋ช…: RAG ์ž„๋ฒ ๋”ฉ์— ์‚ฌ์šฉํ•  OpenAI ๊ธฐ๋ณธ API URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_OPENAI_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ${OPENAI_API_KEY}
  • ์„ค๋ช…: RAG ์ž„๋ฒ ๋”ฉ์— ์‚ฌ์šฉํ•  OpenAI API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_EMBEDDING_OPENAI_BATCH_SIZEโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 1
  • ์„ค๋ช…: OpenAI ์ž„๋ฒ ๋”ฉ์— ๋Œ€ํ•œ ๋ฐฐ์น˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

RAG_EMBEDDING_BATCH_SIZEโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 1
  • ์„ค๋ช…: RAG (Retrieval-Augmented Generator) ๋ชจ๋ธ์˜ ์ž„๋ฒ ๋”ฉ ๋ฐฐ์น˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_OLLAMA_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: RAG ๋ชจ๋ธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” Ollama API์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_OLLAMA_BASE_URLโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: RAG ๋ชจ๋ธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” Ollama API์˜ ๊ธฐ๋ณธ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_RETRIEVAL_QUERY_GENERATIONโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

QUERY_GENERATION_PROMPT_TEMPLATEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: DEFAULT_QUERY_GENERATION_PROMPT_TEMPLATE ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ฐ’.

DEFAULT_QUERY_GENERATION_PROMPT_TEMPLATE:

### ์ž‘์—…:
์ฃผ์–ด์ง„ ์–ธ์–ด๋กœ ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ํ•„์š”์„ฑ์„ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด ์ฑ„ํŒ… ๋‚ด์—ญ์„ ๋ถ„์„ํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ์ ์œผ๋กœ, **1-3๊ฐœ์˜ ํฌ๊ด„์ ์ด๊ณ  ๊ด€๋ จ์„ฑ ์žˆ๋Š” ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ ์ƒ์„ฑ์„ ์šฐ์„ ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค** ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํ•„์š” ์—†๋‹ค๊ณ  ์ ˆ๋Œ€์ ์œผ๋กœ ํ™•์‹ ํ•˜์ง€ ์•Š๋Š” ํ•œ. ์ตœ์†Œํ•œ์˜ ๋ถˆํ™•์‹ค์„ฑ์ด ์žˆ์–ด๋„ ํฌ๊ด„์ , ์ตœ์‹ , ๊ฐ€์น˜์žˆ๋Š” ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•ด๋‚ด๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์ด ํ™•์‹คํžˆ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋นˆ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•˜์‹ญ์‹œ์˜ค.

### ์ง€์นจ:
- **JSON ๊ฐ์ฒด๋กœ๋งŒ** ์‘๋‹ตํ•˜์‹ญ์‹œ์˜ค. ์–ด๋–ค ํ˜•ํƒœ์˜ ์ถ”๊ฐ€ ์„ค๋ช…, ํ•ด์„ค, ๋ฌธ์ž๋Š” ์—„๊ฒฉํžˆ ๊ธˆ์ง€๋ฉ๋‹ˆ๋‹ค.
- ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ, ์‘๋‹ต ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: { "queries": ["query1", "query2"] }. ๊ฐ ์ฟผ๋ฆฌ๋Š” ๋…ํŠนํ•˜๊ณ  ๊ฐ„๊ฒฐํ•˜๋ฉฐ ์ฃผ์ œ์™€ ๊ด€๋ จ์„ฑ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
- ์œ ์šฉํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€์ƒ‰์œผ๋กœ ์–ป์„ ์ˆ˜ ์—†๋‹ค๊ณ  ํ™•์‹คํžˆ ํ™•์‹ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์Œ์„ ๋ฐ˜ํ™˜ํ•˜์‹ญ์‹œ์˜ค: { "queries": [] }.
- ์œ ์šฉํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ๋œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ๊ฐ€๋Šฅ์„ฑ์ด **์กฐ๊ธˆ์ด๋ผ๋„** ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ ์ƒ์„ฑ์„ ์ถ”์ฒœํ•˜์‹ญ์‹œ์˜ค.
- ๋ถˆํ•„์š”ํ•œ ์ƒ์„ธ ์„ค๋ช…, ์ฃผ์„, ๊ฐ€์ •์€ ํ”ผํ•˜๊ณ  ๊ณ ํ’ˆ์งˆ ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•˜์‹ญ์‹œ์˜ค.
- ์˜ค๋Š˜ ๋‚ ์งœ๋Š”: {{CURRENT_DATE}} ์ž…๋‹ˆ๋‹ค.
- ์ •๋ณด๋ฅผ ์ตœ๋Œ€ํ•œ ํฌ๊ด„ํ•˜๋ฉฐ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ์šฐ์„ ์‹œํ•˜์‹ญ์‹œ์˜ค.

### ์ถœ๋ ฅ:
์—„๊ฒฉํžˆ JSON ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜:
{
"queries": ["query1", "query2"]
}

### ์ฑ„ํŒ… ๋‚ด์—ญ:
<chat_history>
{{MESSAGES:END:6}}
</chat_history>
  • ์„ค๋ช…: ์ฟผ๋ฆฌ ์ƒ์„ฑ์„ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

BYPASS_EMBEDDING_AND_RETRIEVALโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์ž„๋ฒ ๋”ฉ ๋ฐ ๊ฒ€์ƒ‰ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

DOCUMENT_INTELLIGENCE_ENDPOINTโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ๋ฌธ์„œ ์ธํ…”๋ฆฌ์ „์Šค์˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

DOCUMENT_INTELLIGENCE_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ๋ฌธ์„œ ์ธํ…”๋ฆฌ์ „์Šค๋ฅผ ์œ„ํ•œ ํ‚ค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_RAG_LOCAL_WEB_FETCHโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: RAG์˜ ๋กœ์ปฌ ์›น ํŒจ์น˜ ํ™œ์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_EMBEDDING_CONTENT_PREFIXโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: RAG ์ž„๋ฒ ๋”ฉ ์ฝ˜ํ…์ธ ์˜ ์ ‘๋‘์‚ฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_EMBEDDING_PREFIX_FIELD_NAMEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: RAG ์ž„๋ฒ ๋”ฉ ์ ‘๋‘์‚ฌ ํ•„๋“œ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_EMBEDDING_QUERY_PREFIXโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: RAG ์ž„๋ฒ ๋”ฉ ์ฟผ๋ฆฌ ์ ‘๋‘์‚ฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

RAG_FULL_CONTEXTโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: RAG์˜ ์ „์ฒด ์ปจํ…์ŠคํŠธ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

Google ๋“œ๋ผ์ด๋ธŒโ€‹

ENABLE_GOOGLE_DRIVE_INTEGRATIONโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: Google Drive ํ†ตํ•ฉ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. true๋กœ ์„ค์ •๋˜๊ณ  GOOGLE_DRIVE_CLIENT_ID ๋ฐ GOOGLE_DRIVE_API_KEY๊ฐ€ ๋ชจ๋‘ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ, Google Drive๊ฐ€ ์ฑ„ํŒ… UI์—์„œ ์—…๋กœ๋“œ ์˜ต์…˜์œผ๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
์ •๋ณด

GOOGLE_DRIVE_INTEGRATION์„ ํ™œ์„ฑํ™”ํ•  ๋•Œ, GOOGLE_DRIVE_CLIENT_ID ๋ฐ GOOGLE_DRIVE_API_KEY๋ฅผ ์ •ํ™•ํžˆ ๊ตฌ์„ฑํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  Google์˜ ์„œ๋น„์Šค ์ด์šฉ ์•ฝ๊ด€ ๋ฐ ์‚ฌ์šฉ ์ง€์นจ์„ ๊ฒ€ํ† ํ•˜์‹ญ์‹œ์˜ค.

GOOGLE_DRIVE_CLIENT_IDโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Google Drive๋ฅผ ์œ„ํ•œ ํด๋ผ์ด์–ธํŠธ ID๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค(ํด๋ผ์ด์–ธํŠธ๊ฐ€ Drive API ๋ฐ Picker API๋ฅผ ํ™œ์„ฑํ™”ํ•œ ์ƒํƒœ์—์„œ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•จ).
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

GOOGLE_DRIVE_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Google Drive ํ†ตํ•ฉ์„ ์œ„ํ•œ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OneDriveโ€‹

ENABLE_ONEDRIVE_INTEGRATIONโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: OneDrive ํ†ตํ•ฉ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ONEDRIVE_CLIENT_IDโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: OneDrive ํ†ตํ•ฉ์„ ์œ„ํ•œ ํด๋ผ์ด์–ธํŠธ ID๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์›น ๊ฒ€์ƒ‰โ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์›น ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_SEARCH_QUERY_GENERATIONโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

WEB_SEARCH_TRUST_ENVโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์›น ๊ฒ€์ƒ‰ ์ฝ˜ํ…์ธ  ๊ฐ€์ ธ์˜ค๊ธฐ ์‹œ http_proxy ๋ฐ https_proxy์—์„œ ์„ค์ •ํ•œ ํ”„๋ก์‹œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

WEB_SEARCH_RESULT_COUNTโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 3
  • ์„ค๋ช…: ์ˆ˜์ง‘ํ•  ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ตœ๋Œ€ ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

WEB_SEARCH_CONCURRENT_REQUESTSโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 10
  • ์„ค๋ช…: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์—์„œ ๋ฐ˜ํ™˜๋œ ์›นํŽ˜์ด์ง€๋ฅผ ํฌ๋กค๋งํ•  ๋•Œ ๋™์‹œ ์š”์ฒญ ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

WEB_SEARCH_ENGINEโ€‹

  • ์œ ํ˜•: str
  • ์˜ต์…˜:
    • searxng - SearXNG ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • google_pse - Google Programmable Search Engine์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • brave - Brave ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • kagi - Kagi ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • mojeek - Mojeek ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • bocha - Bocha ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • serpstack - Serpstack ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • serper - Serper ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • serply - Serply ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • searchapi - SearchAPI ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • serpapi - SerpApi ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • duckduckgo - DuckDuckGo ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • tavily - Tavily ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • jina - Jina ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • bing - Bing ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • exa - Exa ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • perplexity - Perplexity AI ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • sougou - Sougou ๊ฒ€์ƒ‰ ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVALโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์›น ๊ฒ€์ƒ‰ ์ž„๋ฒ ๋”ฉ ๋ฐ ๊ฒ€์ƒ‰ ๊ณผ์ •์„ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

SEARXNG_QUERY_URLโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: JSON ์ถœ๋ ฅ์„ ์ง€์›ํ•˜๋Š” SearXNG ๊ฒ€์ƒ‰ API URL์ž…๋‹ˆ๋‹ค. <query>๋Š” ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ์˜ˆ: http://searxng.local/search?q=<query>
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

GOOGLE_PSE_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Google Programmable Search Engine(PSE) ์„œ๋น„์Šค์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

GOOGLE_PSE_ENGINE_IDโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Google Programmable Search Engine (PSE) ์„œ๋น„์Šค์˜ ์—”์ง„ ID์ž…๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

BRAVE_SEARCH_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Brave Search API์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

KAGI_SEARCH_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Kagi Search API์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

MOJEEK_SEARCH_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Mojeek Search API์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

SERPSTACK_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Serpstack ๊ฒ€์ƒ‰ API์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

SERPSTACK_HTTPSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: Serpstack ์š”์ฒญ์— HTTPS ์‚ฌ์šฉ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ ๋“ฑ๊ธ‰ ์š”์ฒญ์€ HTTP๋กœ๋งŒ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

SERPER_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Serper ๊ฒ€์ƒ‰ API์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

SERPLY_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Serply ๊ฒ€์ƒ‰ API์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

SEARCHAPI_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: SearchAPI์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

SEARCHAPI_ENGINEโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: SearchAPI ์—”์ง„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

TAVILY_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Tavily ๊ฒ€์ƒ‰ API์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

JINA_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Jina์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

BING_SEARCH_V7_ENDPOINTโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Bing ๊ฒ€์ƒ‰ API์˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

BING_SEARCH_V7_SUBSCRIPTION_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: https://api.bing.microsoft.com/v7.0/search
  • ์„ค๋ช…: Bing ๊ฒ€์ƒ‰ API์˜ ๊ตฌ๋… ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

BOCHA_SEARCH_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: Bocha ๊ฒ€์ƒ‰ API์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

EXA_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: Exa ๊ฒ€์ƒ‰ API์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

SERPAPI_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: SerpAPI์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

SERPAPI_ENGINEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: SerpAPI์— ์‚ฌ์šฉํ•  ๊ฒ€์ƒ‰ ์—”์ง„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

SOUGOU_API_SIDโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: Sogou API SID๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

SOUGOU_API_SKโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: Sogou API SK๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

TAVILY_EXTRACT_DEPTHโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: basic
  • ์„ค๋ช…: Tavily ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์ถ”์ถœ ๊นŠ์ด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์›น ๋กœ๋” ์„ค์ •โ€‹

WEB_LOADER_ENGINEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: safe_web
  • ์„ค๋ช…: ์›น ์ฝ˜ํ…์ธ ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ๋”๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ต์…˜:
    • requests - ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ–ฅ์ƒ๋œ Requests ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • playwright - ๋” ๊ณ ๊ธ‰ ์›น ํŽ˜์ด์ง€ ๋ Œ๋”๋ง ๋ฐ ์ƒํ˜ธ ์ž‘์šฉ์„ ์œ„ํ•ด Playwright๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
์ •๋ณด

Playwright๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  1. PLAYWRIGHT_WS_URI๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, Chromium ์ข…์†์„ฑ์„ ํฌํ•จํ•œ Playwright๊ฐ€ Open WebUI ์ปจํ…Œ์ด๋„ˆ์— ๋Ÿฐ์นญ ์‹œ ์ž๋™ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
  2. PLAYWRIGHT_WS_URI๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ, Open WebUI๋Š” ๋กœ์ปฌ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ์›๊ฒฉ ๋ธŒ๋ผ์šฐ์ € ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

PLAYWRIGHT_WS_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ์›๊ฒฉ Playwright ๋ธŒ๋ผ์šฐ์ € ์ธ์Šคํ„ด์Šค์˜ WebSocket URI๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •๋œ ๊ฒฝ์šฐ Open WebUI๋Š” ๋กœ์ปฌ์— ๋ธŒ๋ผ์šฐ์ € ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๋Š” ๋Œ€์‹  ์ด ์›๊ฒฉ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ Open WebUI ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฒฝ๋Ÿ‰ํ™”ํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์™€์˜ ๋ถ„๋ฆฌ๋ฅผ ์œ ์ง€ํ•˜๋ ค๋Š” ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์—์„œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: ws://playwright:3000
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

:::ํŒ

PLAYWRIGHT_WS_URL์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ Playwright ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•œ ๊ฒฝ์šฐ:

  • Open WebUI ์ปจํ…Œ์ด๋„ˆ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋ ค๋Š” ๊ฒฝ์šฐ
  • ๊ธฐ๋ณธ ๋ธŒ๋ผ์šฐ์ €์ธ Chromium์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ
  • ๋น„-ํ—ค๋“œ๋ฆฌ์Šค(GUI) ๋ธŒ๋ผ์šฐ์ €์— ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ๊ฒฝ์šฐ

:::

FIRECRAWL_API_BASE_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: https://api.firecrawl.dev
  • ์„ค๋ช…: Firecrawl API์˜ ๊ธฐ๋ณธ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

FIRECRAWL_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: Firecrawl API์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

PERPLEXITY_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: Perplexity API์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

PLAYWRIGHT_TIMEOUTโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด (' '), ๊ธฐ๋ณธ๊ฐ’์€ None์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ค๋ช…: Playwright ์š”์ฒญ์˜ ํƒ€์ž„์•„์›ƒ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

YouTube ๋กœ๋”โ€‹

YOUTUBE_LOADER_PROXY_URLโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: YouTube ๋กœ๋”์— ๋Œ€ํ•œ ํ”„๋ก์‹œ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

YOUTUBE_LOADER_LANGUAGEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: en
  • ์„ค๋ช…: YouTube ๋น„๋””์˜ค ์ „์‚ฌ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‹œ๋„ํ•  ์–ธ์–ด ์ฝ”๋“œ๋ฅผ ์šฐ์„  ์ˆœ์œ„์— ๋”ฐ๋ผ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•œ ๋ชฉ๋ก์œผ๋กœ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ: es,de๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ, ๋จผ์ € ์ŠคํŽ˜์ธ์–ด ์ „์‚ฌ๋ฅผ ์‹œ๋„ํ•œ ํ›„ ์ŠคํŽ˜์ธ์–ด๊ฐ€ ์—†์œผ๋ฉด ๋…์ผ์–ด ์ „์‚ฌ๋ฅผ ์‹œ๋„ํ•˜๋ฉฐ, ๋งˆ์ง€๋ง‰์œผ๋กœ ์˜์–ด๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ : ์ง€์ •๋œ ์–ธ์–ด ์ค‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๊ฐ€ ์—†๊ณ  en์ด ๋ชฉ๋ก์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ, ์‹œ์Šคํ…œ์€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์˜์–ด๋ฅผ ์ž๋™์œผ๋กœ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์˜ค๋””์˜คโ€‹

Whisper ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜ (๋กœ์ปฌ)โ€‹

WHISPER_MODELโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: base
  • ์„ค๋ช…: ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜์„ ์œ„ํ•ด ์‚ฌ์šฉํ•  Whisper ๋ชจ๋ธ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๋Š” int8๋กœ ์–‘์žํ™”๋œ faster_whisper๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

WHISPER_MODEL_DIRโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ${DATA_DIR}/cache/whisper/models
  • ์„ค๋ช…: Whisper ๋ชจ๋ธ ํŒŒ์ผ์„ ์ €์žฅํ•  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

WHISPER_VAD_FILTERโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: Whisper ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜์— ์Œ์„ฑ ํ™œ๋™ ๊ฐ์ง€(VAD) ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

WHISPER_MODEL_AUTO_UPDATEโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: Whisper ๋ชจ๋ธ์˜ ์ž๋™ ์—…๋ฐ์ดํŠธ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

WHISPER_LANGUAGEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ISO 639-1 ์–ธ์–ด ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Whisper๊ฐ€ ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜์— ์‚ฌ์šฉํ•  ์–ธ์–ด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค (ํ•˜์™€์ด์–ด์™€ ๊ด‘๋‘ฅ์–ด์˜ ๊ฒฝ์šฐ ISO 639-2 ์‚ฌ์šฉ). Whisper๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์–ธ์–ด๋ฅผ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.

์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜ (OpenAI)โ€‹

AUDIO_STT_ENGINEโ€‹

  • ์œ ํ˜•: str
  • ์˜ต์…˜:
    • ๋น„์›Œ ๋‘๋ฉด ๋กœ์ปฌ Whisper ์—”์ง„์„ ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • openai - OpenAI ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • deepgram - Deepgram ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • azure - Azure ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์„ค๋ช…: ์‚ฌ์šฉํ•  ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜ ์—”์ง„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUDIO_STT_MODELโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: whisper-1
  • ์„ค๋ช…: OpenAI ํ˜ธํ™˜ ์—”๋“œํฌ์ธํŠธ์— ์‚ฌ์šฉํ•  ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜ ๋ชจ๋ธ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUDIO_STT_OPENAI_API_BASE_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ${OPENAI_API_BASE_URL}
  • ์„ค๋ช…: ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜์— ์‚ฌ์šฉํ•  OpenAI ํ˜ธํ™˜ ๊ธฐ๋ณธ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUDIO_STT_OPENAI_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ${OPENAI_API_KEY}
  • ์„ค๋ช…: ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜์— ์‚ฌ์šฉํ•  OpenAI API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜ (Azure)โ€‹

AUDIO_STT_AZURE_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜์— ์‚ฌ์šฉํ•  Azure API ํ‚ค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUDIO_STT_AZURE_REGIONโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜์— ์‚ฌ์šฉํ•  Azure ์ง€์—ญ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUDIO_STT_AZURE_LOCALESโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: Azure ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜์— ์‚ฌ์šฉํ•  ๋กœ์ผ€์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜ (Deepgram)โ€‹

DEEPGRAM_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜์— ์‚ฌ์šฉํ•  Deepgram API ํ‚ค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์Œ์„ฑ ํ•ฉ์„ฑโ€‹

AUDIO_TTS_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ์Œ์„ฑ ํ•ฉ์„ฑ์„ ์œ„ํ•œ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUDIO_TTS_ENGINEโ€‹

  • ์œ ํ˜•: str
  • ์˜ต์…˜:
    • ๊ธฐ๋ณธ ์›นAPI ์—”์ง„ ์Œ์„ฑ ํ•ฉ์„ฑ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋น„์›Œ ๋‘์‹ญ์‹œ์˜ค.
    • azure - Azure ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ์Œ์„ฑ ํ•ฉ์„ฑ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    • elevenlabs - ElevenLabs ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ์Œ์„ฑ ํ•ฉ์„ฑ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    • openai - OpenAI ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ์Œ์„ฑ ํ•ฉ์„ฑ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    • transformers - SentenceTransformers๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Œ์„ฑ ํ•ฉ์„ฑ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์„ค๋ช…: ์‚ฌ์šฉํ•  ์Œ์„ฑ ํ•ฉ์„ฑ ์—”์ง„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUDIO_TTS_MODELโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: tts-1
  • ์„ค๋ช…: ์‚ฌ์šฉํ•  OpenAI ์Œ์„ฑ ํ•ฉ์„ฑ ๋ชจ๋ธ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUDIO_TTS_VOICEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: alloy
  • ์„ค๋ช…: ์‚ฌ์šฉํ•  OpenAI ์Œ์„ฑ ํ•ฉ์„ฑ ์Œ์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUDIO_TTS_SPLIT_ONโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: punctuation
  • ์„ค๋ช…: ์‚ฌ์šฉํ•  OpenAI ์Œ์„ฑ ํ•ฉ์„ฑ ๋ถ„ํ•  ๊ธฐ์ค€์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

Azure ์Œ์„ฑ ํ•ฉ์„ฑโ€‹

AUDIO_TTS_AZURE_SPEECH_REGIONโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Azure ์Œ์„ฑ ํ•ฉ์„ฑ ์ง€์—ญ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUDIO_TTS_AZURE_SPEECH_OUTPUT_FORMATโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Azure ์Œ์„ฑ ํ•ฉ์„ฑ์˜ ์ถœ๋ ฅ ํ˜•์‹์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OpenAI ์Œ์„ฑ ํ•ฉ์„ฑโ€‹

AUDIO_TTS_OPENAI_API_BASE_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ${OPENAI_API_BASE_URL}
  • ์„ค๋ช…: ํ…์ŠคํŠธ๋ฅผ ์Œ์„ฑ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  OpenAI ํ˜ธํ™˜ ๊ธฐ๋ณธ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUDIO_TTS_OPENAI_API_KEYโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ${OPENAI_API_KEY}
  • ์„ค๋ช…: ์Œ์„ฑ ํ•ฉ์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•  API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ์ƒ์„ฑโ€‹

IMAGE_GENERATION_ENGINEโ€‹

  • ์œ ํ˜•: str
  • ์˜ต์…˜:
    • openai - OpenAI DALL-E๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ์ƒ์„ฑ.
    • comfyui - ComfyUI ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ์ƒ์„ฑ.
    • automatic1111 - AUTOMATIC1111 ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ์ƒ์„ฑ.
    • gemini - Gemini๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ์ƒ์„ฑ.
  • ๊ธฐ๋ณธ๊ฐ’: openai
  • ์„ค๋ช…: ์ด๋ฏธ์ง€ ์ƒ์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์—”์ง„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_IMAGE_GENERATIONโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_IMAGE_PROMPT_GENERATIONโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์ด๋ฏธ์ง€ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ์„ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

IMAGE_PROMPT_GENERATION_PROMPT_TEMPLATEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ์ด๋ฏธ์ง€ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ์„ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

DEFAULT_IMAGE_PROMPT_GENERATION_PROMPT_TEMPLATE:

### ์ž‘์—…:
์ฃผ์–ด์ง„ ์–ธ์–ด์™€ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ์ž‘์—…์„ ์œ„ํ•œ ์ž์„ธํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค. ๋งˆ์น˜ ๋ณผ ์ˆ˜ ์—†๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ด๋ฏธ์ง€ ์š”์†Œ๋ฅผ ์„ค๋ช…ํ•˜์‹ญ์‹œ์˜ค. ๊ด€๋ จ๋œ ์„ธ๋ถ€ ์ •๋ณด, ์ƒ‰์ƒ, ๋ชจ์–‘ ๋ฐ ๊ธฐํƒ€ ์ค‘์š”ํ•œ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜์‹ญ์‹œ์˜ค.

### ์ง€์นจ:
- ์ด๋ฏธ์ง€์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ธก๋ฉด์— ์ง‘์ค‘ํ•˜์—ฌ ์„ค๋ช…์ ์ด๊ณ  ์ž์„ธํžˆ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.
- ์ด๋ฏธ์ง€์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ •๋ณด ์ถ”๊ฐ€๋‚˜ ๊ฐ€์ •์„ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
- ๋Œ€ํ™”์˜ ์ฃผ์š” ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋‹ค๊ตญ์–ด๋ผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜์–ด๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
- ์ด๋ฏธ์ง€๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๋‹ค๋ฉด ๊ฐ€์žฅ ๋‘๋“œ๋Ÿฌ์ง„ ์š”์†Œ์— ์ง‘์ค‘ํ•˜์‹ญ์‹œ์˜ค.

### ์ถœ๋ ฅ:
์—„๊ฒฉํžˆ JSON ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜์‹ญ์‹œ์˜ค:
{
"prompt": "์ž์„ธํ•œ ์„ค๋ช…์„ ์—ฌ๊ธฐ์— ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค."
}

### ์ฑ„ํŒ… ๊ธฐ๋ก:
<chat_history>
{{MESSAGES:END:6}}
</chat_history>

IMAGE_SIZEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: 512x512
  • ์„ค๋ช…: ์ƒ์„ฑํ•  ๊ธฐ๋ณธ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

IMAGE_STEPSโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 50
  • ์„ค๋ช…: ComfyUI ๋ฐ AUTOMATIC1111์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฏธ์ง€ ์ƒ์„ฑ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๋ฐ˜๋ณต ๋‹จ๊ณ„๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

IMAGE_GENERATION_MODELโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ์ด๋ฏธ์ง€ ์ƒ์„ฑ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ๋ชจ๋ธ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUTOMATIC1111โ€‹

AUTOMATIC1111_BASE_URLโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: AUTOMATIC1111์˜ Stable Diffusion API URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUTOMATIC1111_API_AUTHโ€‹

  • ์œ ํ˜•: str
  • Description: AUTOMATIC1111 API ์ธ์ฆ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUTOMATIC1111_CFG_SCALEโ€‹

  • Type: float
  • Description: AUTOMATIC1111 ์ถ”๋ก ์˜ ์Šค์ผ€์ผ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUTOMATIC1111_SAMPLERโ€‹

  • Type: str
  • Description: AUTOMATIC1111 ์ถ”๋ก ์˜ ์ƒ˜ํ”Œ๋Ÿฌ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

AUTOMATIC1111_SCHEDULERโ€‹

  • Type: str
  • Description: AUTOMATIC1111 ์ถ”๋ก ์˜ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ComfyUIโ€‹

COMFYUI_BASE_URLโ€‹

  • Type: str
  • Description: ComfyUI ์ด๋ฏธ์ง€ ์ƒ์„ฑ API์˜ URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

COMFYUI_API_KEYโ€‹

  • Type: str
  • Description: ComfyUI์˜ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

COMFYUI_WORKFLOWโ€‹

  • Type: str
  • Default:
{
"3": {
"inputs": {
"seed": 0,
"steps": 20,
"cfg": 8,
"sampler_name": "euler",
"scheduler": "normal",
"denoise": 1,
"model": [
"4",
0
],
"positive": [
"6",
0
],
"negative": [
"7",
0
],
"latent_image": [
"5",
0
]
},
"class_type": "KSampler",
"_meta": {
"title": "KSampler"
}
},
"4": {
"inputs": {
"ckpt_name": "model.safetensors"
},
"class_type": "CheckpointLoaderSimple",
"_meta": {
"title": "Load Checkpoint"
}
},
"5": {
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
},
"class_type": "EmptyLatentImage",
"_meta": {
"title": "Empty Latent Image"
}
},
"6": {
"inputs": {
"text": "Prompt",
"clip": [
"4",
1
]
},
"class_type": "CLIPTextEncode",
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"7": {
"inputs": {
"text": "",
"clip": [
"4",
1
]
},
"class_type": "CLIPTextEncode",
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"8": {
"inputs": {
"samples": [
"3",
0
],
"vae": [
"4",
2
]
},
"class_type": "VAEDecode",
"_meta": {
"title": "VAE Decode"
}
},
"9": {
"inputs": {
"filename_prefix": "ComfyUI",
"images": [
"8",
0
]
},
"class_type": "SaveImage",
"_meta": {
"title": "Save Image"
}
}
}
  • Description: ComfyUI ์›Œํฌํ”Œ๋กœ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

Geminiโ€‹

GEMINI_API_BASE_URLโ€‹

  • Type: str
  • Default: None
  • Description: Gemini์˜ API URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

GEMINI_API_KEYโ€‹

  • Type: str
  • Default: None
  • Description: Gemini API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

IMAGES_GEMINI_API_BASE_URLโ€‹

  • Type: str
  • Default: None
  • Description: Gemini ์ด๋ฏธ์ง€ ์ƒ์„ฑ API์˜ URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

IMAGES_GEMINI_API_KEYโ€‹

  • Type: str
  • Default: None
  • Description: ์ด๋ฏธ์ง€ ์ƒ์„ฑ์šฉ Gemini API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OpenAI DALL-Eโ€‹

IMAGES_OPENAI_API_BASE_URLโ€‹

  • Type: str
  • Default: ${OPENAI_API_BASE_URL}
  • Description: DALL-E ์ด๋ฏธ์ง€ ์ƒ์„ฑ์„ ์œ„ํ•œ OpenAI ํ˜ธํ™˜ ๊ธฐ๋ณธ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

IMAGES_OPENAI_API_KEYโ€‹

  • Type: str
  • Default: ${OPENAI_API_KEY}
  • Description: DALL-E ์ด๋ฏธ์ง€ ์ƒ์„ฑ์„ ์œ„ํ•œ API ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAuthโ€‹

ENABLE_OAUTH_SIGNUPโ€‹

  • Type: bool
  • Default: False
  • Description: OAuth๋ฅผ ํ†ตํ•œ ๊ฐ€์ž… ์‹œ ๊ณ„์ • ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ENABLE_SIGNUP๊ณผ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
์œ„ํ—˜

ENABLE_OAUTH_SIGNUP์ด True๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ ENABLE_LOGIN_FORM์„ ๋ฐ˜๋“œ์‹œ False๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

OAUTH_MERGE_ACCOUNTS_BY_EMAILโ€‹

  • Type: bool
  • Default: False
  • Description: ํ™œ์„ฑํ™”๋˜๋ฉด ๋™์ผํ•œ ์ด๋ฉ”์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด ๊ณ„์ •๊ณผ OAuth ๊ณ„์ •์„ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ผ๋ถ€ OAuth ์ œ๊ณต์ž๊ฐ€ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์•ˆ์ „ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ณ„์ • ๋„์šฉ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Persistence: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_UPDATE_PICTURE_ON_LOGINโ€‹

  • Type: bool
  • Default: False
  • ์„ค๋ช…: ํ™œ์„ฑํ™”๋˜๋ฉด ๋กœ๊ทธ์ธ ์‹œ OAuth์—์„œ ์ œ๊ณต๋œ ์‚ฌ์ง„์œผ๋กœ ๋กœ์ปฌ ์‚ฌ์šฉ์ž ํ”„๋กœํ•„ ์‚ฌ์ง„์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

WEBUI_AUTH_TRUSTED_EMAIL_HEADERโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ์ธ์ฆ์„ ์œ„ํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ ํ—ค๋”๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. SSO ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

WEBUI_AUTH_TRUSTED_NAME_HEADERโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: WEBUI_AUTH_TRUSTED_EMAIL_HEADER ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋“ฑ๋กํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„์— ๋Œ€ํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ ํ—ค๋”๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. SSO ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Googleโ€‹

https://support.google.com/cloud/answer/6158849?hl=en์„ ์ฐธ์กฐํ•˜์„ธ์š”.

GOOGLE_CLIENT_IDโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Google OAuth์˜ ํด๋ผ์ด์–ธํŠธ ID๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

GOOGLE_CLIENT_SECRETโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Google OAuth์˜ ํด๋ผ์ด์–ธํŠธ ๋น„๋ฐ€์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

GOOGLE_OAUTH_SCOPEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: openid email profile
  • ์„ค๋ช…: Google OAuth ์ธ์ฆ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

GOOGLE_REDIRECT_URIโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: <backend>/oauth/google/callback
  • ์„ค๋ช…: Google OAuth์˜ ๋ฆฌ๋””๋ ‰์…˜ URI๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

Microsoftโ€‹

https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

MICROSOFT_CLIENT_IDโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Microsoft OAuth์˜ ํด๋ผ์ด์–ธํŠธ ID๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

MICROSOFT_CLIENT_SECRETโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Microsoft OAuth์˜ ํด๋ผ์ด์–ธํŠธ ๋น„๋ฐ€์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

MICROSOFT_CLIENT_TENANT_IDโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Microsoft OAuth์˜ ํ…Œ๋„ŒํŠธ ID๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

MICROSOFT_OAUTH_SCOPEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: openid email profile
  • ์„ค๋ช…: Microsoft OAuth ์ธ์ฆ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

MICROSOFT_REDIRECT_URIโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: <backend>/oauth/microsoft/callback
  • ์„ค๋ช…: Microsoft OAuth์˜ ๋ฆฌ๋””๋ ‰์…˜ URI๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

GitHubโ€‹

https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

GITHUB_CLIENT_IDโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: GitHub OAuth์˜ ํด๋ผ์ด์–ธํŠธ ID๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

GITHUB_CLIENT_SECRETโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: GitHub OAuth์˜ ํด๋ผ์ด์–ธํŠธ ๋น„๋ฐ€์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

GITHUB_CLIENT_SCOPEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: user:email
  • ์„ค๋ช…: GitHub OAuth ์ธ์ฆ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

GITHUB_CLIENT_REDIRECT_URIโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: <backend>/oauth/github/callback
  • ์„ค๋ช…: GitHub OAuth์˜ ๋ฆฌ๋””๋ ‰์…˜ URI๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OpenID (OIDC)โ€‹

OAUTH_CLIENT_IDโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: OIDC์˜ ํด๋ผ์ด์–ธํŠธ ID๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_CLIENT_SECRETโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: OIDC์˜ ํด๋ผ์ด์–ธํŠธ ๋น„๋ฐ€์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OPENID_PROVIDER_URLโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: .well-known/openid-configuration ์—”๋“œํฌ์ธํŠธ์˜ ๊ฒฝ๋กœ
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OPENID_REDIRECT_URIโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: <backend>/oauth/oidc/callback
  • ์„ค๋ช…: OIDC์˜ ๋ฆฌ๋””๋ ‰์…˜ URI๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_SCOPESโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: openid email profile
  • ์„ค๋ช…: OIDC ์ธ์ฆ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. openid์™€ email์€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_CODE_CHALLENGE_METHODโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด( ), ๊ธฐ๋ณธ์œผ๋กœ None์ด ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ค๋ช…: OAuth ์ธ์ฆ์„ ์œ„ํ•œ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_PROVIDER_NAMEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: SSO
  • ์„ค๋ช…: OIDC ์ œ๊ณต์ž ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_USERNAME_CLAIMโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: name
  • ์„ค๋ช…: OpenID ์‚ฌ์šฉ์ž ์ด๋ฆ„ claim์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_EMAIL_CLAIMโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: email
  • ์„ค๋ช…: OpenID์šฉ ์ด๋ฉ”์ผ ํด๋ ˆ์ž„ ์„ค์ •ํ•˜๊ธฐ.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_PICTURE_CLAIMโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: picture
  • ์„ค๋ช…: OpenID์šฉ ์ด๋ฏธ์ง€(์•„๋ฐ”ํƒ€) ํด๋ ˆ์ž„ ์„ค์ •ํ•˜๊ธฐ.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_GROUP_CLAIMโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: groups
  • ์„ค๋ช…: OAuth ์ธ์ฆ์— ์‚ฌ์šฉ๋˜๋Š” ๊ทธ๋ฃน ํด๋ ˆ์ž„ ์ง€์ •.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_OAUTH_ROLE_MANAGEMENTโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: OAuth ์œ„์ž„ ์—ญํ•  ๊ด€๋ฆฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ENABLE_OAUTH_GROUP_MANAGEMENTโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: OAuth ๊ทธ๋ฃน ๊ด€๋ฆฌ๋ฅผ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_ROLES_CLAIMโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: roles
  • ์„ค๋ช…: OIDC ํ† ํฐ์—์„œ ์—ญํ•  ํด๋ ˆ์ž„์„ ํ™•์ธํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_ALLOWED_ROLESโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: user,admin
  • ์„ค๋ช…: ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๊ฐ€ ํ—ˆ์šฉ๋˜๋Š” ์—ญํ• ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_ADMIN_ROLESโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: admin
  • ์„ค๋ช…: ๊ด€๋ฆฌ์ž๋กœ ๊ฐ„์ฃผ๋˜๋Š” ์—ญํ• ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

OAUTH_ALLOWED_DOMAINSโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: *
  • ์„ค๋ช…: OAuth ์ธ์ฆ์— ํ—ˆ์šฉ๋˜๋Š” ๋„๋ฉ”์ธ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: "example1.com,example2.com")
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAPโ€‹

ENABLE_LDAPโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: LDAP ์ธ์ฆ์„ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_SERVER_LABELโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: LDAP ์„œ๋ฒ„์˜ ๋ผ๋ฒจ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_SERVER_HOSTโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: localhost
  • ์„ค๋ช…: LDAP ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_SERVER_PORTโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 389
  • ์„ค๋ช…: LDAP ์„œ๋ฒ„์˜ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_ATTRIBUTE_FOR_MAILโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: LDAP ์ธ์ฆ์—์„œ ๋ฉ”์ผ๋กœ ์‚ฌ์šฉํ•  ์†์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_ATTRIBUTE_FOR_USERNAMEโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: LDAP ์ธ์ฆ์—์„œ ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•  ์†์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_APP_DNโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: LDAP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ณ ์œ  ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_APP_PASSWORDโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: LDAP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_SEARCH_BASEโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: LDAP ์ธ์ฆ์— ๊ฒ€์ƒ‰ํ•  ๊ธฐ์ค€์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_SEARCH_FILTERโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: LDAP ๊ฒ€์ƒ‰์— ์‚ฌ์šฉํ•  ๋‹จ์ผ ํ•„ํ„ฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. LDAP_SEARCH_FILTERS์˜ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_SEARCH_FILTERSโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: LDAP ๊ฒ€์ƒ‰์— ์‚ฌ์šฉํ•  ํ•„ํ„ฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_USE_TLSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: LDAP ์—ฐ๊ฒฐ์— TLS๋ฅผ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_CA_CERT_FILEโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: LDAP CA ์ธ์ฆ์„œ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_VALIDATE_CERTโ€‹

  • ์œ ํ˜•: bool
  • ์„ค๋ช…: LDAP CA ์ธ์ฆ์„œ ์œ ํšจ์„ฑ์„ ๊ฒ€์ฆํ• ์ง€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

LDAP_CIPHERSโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: ALL
  • ์„ค๋ช…: LDAP ์—ฐ๊ฒฐ์— ์‚ฌ์šฉํ•  ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ๊ถŒํ•œโ€‹

์ฑ„ํŒ… ๊ถŒํ•œโ€‹

USER_PERMISSIONS_CHAT_CONTROLSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž๊ฐ€ ์ฑ„ํŒ… ์ œ์–ด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_CHAT_FILE_UPLOADโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ฑ„ํŒ…์— ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_CHAT_DELETEโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ฑ„ํŒ…์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_CHAT_EDITโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ฑ„ํŒ…์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_CHAT_STTโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ฑ„ํŒ…์—์„œ ์Œ์„ฑ์„ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_CHAT_TTSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ฑ„ํŒ…์—์„œ ํ…์ŠคํŠธ๋ฅผ ์Œ์„ฑ์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_CHAT_CALLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ฑ„ํŒ…์—์„œ ํ†ตํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_CHAT_MULTIPLE_MODELSโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ฑ„ํŒ…์—์„œ ์—ฌ๋Ÿฌ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_CHAT_TEMPORARYโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ž„์‹œ ์ฑ„ํŒ…์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_CHAT_TEMPORARY_ENFORCEDโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์ž„์‹œ ์ฑ„ํŒ…์ด ๊ฐ•์ œ ์ ์šฉ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ ๊ถŒํ•œโ€‹

USER_PERMISSIONS_FEATURES_DIRECT_TOOL_SERVERSโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ง์ ‘ ๋„๊ตฌ ์„œ๋ฒ„์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์›น ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_FEATURES_IMAGE_GENERATIONโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_FEATURES_CODE_INTERPRETERโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ฝ”๋“œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ถŒํ•œโ€‹

USER_PERMISSIONS_WORKSPACE_MODELS_ACCESSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋ชจ๋ธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_WORKSPACE_KNOWLEDGE_ACCESSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ง€์‹์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_WORKSPACE_PROMPTS_ACCESSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์›Œํฌ์ŠคํŽ˜์ด์Šค ํ”„๋กฌํ”„ํŠธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_WORKSPACE_TOOLS_ACCESSโ€‹

  • ์œ ํ˜•: bool
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋„๊ตฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_WORKSPACE_MODELS_ALLOW_PUBLIC_SHARINGโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋ชจ๋ธ์„ ๊ณต๊ฐœ์ ์œผ๋กœ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_WORKSPACE_KNOWLEDGE_ALLOW_PUBLIC_SHARINGโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ง€์‹์„ ๊ณต๊ฐœ์ ์œผ๋กœ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_WORKSPACE_PROMPTS_ALLOW_PUBLIC_SHARINGโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์›Œํฌ์ŠคํŽ˜์ด์Šค ํ”„๋กฌํ”„ํŠธ๋ฅผ ๊ณต๊ฐœ์ ์œผ๋กœ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

USER_PERMISSIONS_WORKSPACE_TOOLS_ALLOW_PUBLIC_SHARINGโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋„๊ตฌ๋ฅผ ๊ณต๊ฐœ์ ์œผ๋กœ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์†์„ฑ: ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” PersistentConfig ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

๊ธฐํƒ€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜โ€‹

์ด ๋ณ€์ˆ˜๋“ค์€ Open WebUI์— ํŠน์ •๋˜์ง€ ์•Š์ง€๋งŒ ํŠน์ • ์ƒํ™ฉ์—์„œ ์—ฌ์ „ํžˆ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€โ€‹

STORAGE_PROVIDERโ€‹

  • ์œ ํ˜•: str
  • ์„ ํƒ ๊ฐ€๋Šฅ ์˜ต์…˜:
    • s3 - S3 ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ Amazon S3 ์Šคํ† ๋ฆฌ์ง€์— ์–ธ๊ธ‰๋œ ๊ด€๋ จ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉ
    • gcs - GCS ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ Google Cloud Storage์— ์–ธ๊ธ‰๋œ ๊ด€๋ จ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉ
    • azure - Azure ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ Microsoft Azure Storage์— ์–ธ๊ธ‰๋œ ๊ด€๋ จ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉ
  • ๊ธฐ๋ณธ๊ฐ’: ๋นˆ ๋ฌธ์ž์—ด( ), ์ด๋Š” local๋กœ ๊ธฐ๋ณธ ์„ค์ •๋ฉ๋‹ˆ๋‹ค
  • ์„ค๋ช…: ์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ธ‰์ž๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Amazon S3 ์Šคํ† ๋ฆฌ์ง€โ€‹

S3_ACCESS_KEY_IDโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: S3 ์Šคํ† ๋ฆฌ์ง€์˜ ์•ก์„ธ์Šค ํ‚ค ID๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

S3_ADDRESSING_STYLEโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: S3 ์Šคํ† ๋ฆฌ์ง€์— ์‚ฌ์šฉํ•  ์ฃผ์†Œ ์ง€์ • ์Šคํƒ€์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: path, virtual).

S3_BUCKET_NAMEโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: S3 ์Šคํ† ๋ฆฌ์ง€์˜ ๋ฒ„ํ‚ท ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

S3_ENDPOINT_URLโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: S3 ์Šคํ† ๋ฆฌ์ง€์˜ ์—”๋“œํฌ์ธํŠธ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

S3_KEY_PREFIXโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: S3 ๊ฐ์ฒด์˜ ํ‚ค ์ ‘๋‘์–ด๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

S3_REGION_NAMEโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: S3 ์Šคํ† ๋ฆฌ์ง€์˜ ์ง€์—ญ ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

S3_SECRET_ACCESS_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: S3 ์Šคํ† ๋ฆฌ์ง€์˜ ๋น„๋ฐ€ ์•ก์„ธ์Šค ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

S3_USE_ACCELERATE_ENDPOINTโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: S3 ์Šคํ† ๋ฆฌ์ง€์˜ ๊ฐ€์†ํ™”๋œ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

S3_ENABLE_TAGGINGโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: False
  • ์„ค๋ช…: ๋” ๋‚˜์€ ์กฐ์งํ™”, ๊ฒ€์ƒ‰ ๋ฐ ํŒŒ์ผ ๊ด€๋ฆฌ ์ •์ฑ…๊ณผ์˜ ํ†ตํ•ฉ์„ ์œ„ํ•ด ์—…๋กœ๋“œ ํ›„ S3 ๊ฐ์ฒด ํƒœ๊ทธ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. Cloudflare R2๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ•ญ์ƒ False๋กœ ์„ค์ •๋˜๋ฉฐ, R2๋Š” ๊ฐ์ฒด ํƒœ๊ทธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Google Cloud ์Šคํ† ๋ฆฌ์ง€โ€‹

GOOGLE_APPLICATION_CREDENTIALS_JSONโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Google ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž๊ฒฉ์ฆ๋ช… JSON ํŒŒ์ผ์˜ ๋‚ด์šฉ.
    • ์„ ํƒ์‚ฌํ•ญ - ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฉด ์ž๊ฒฉ์ฆ๋ช…์€ ํ™˜๊ฒฝ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ž๊ฒฉ ์ฆ๋ช…, Google Compute Engine์—์„œ ์‹คํ–‰ํ•˜๋ฉด Google ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์„œ๋ฒ„์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
    • ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•œ ํŒŒ์ผ ์ƒ์„ฑ์€ ์ด ๊ฐ€์ด๋“œ์— ๋”ฐ๋ผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GCS_BUCKET_NAMEโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Google Cloud ์Šคํ† ๋ฆฌ์ง€์˜ ๋ฒ„ํ‚ท ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„ํ‚ท์€ ์ด๋ฏธ ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Microsoft Azure ์Šคํ† ๋ฆฌ์ง€โ€‹

AZURE_STORAGE_ENDPOINTโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Azure ์Šคํ† ๋ฆฌ์ง€์˜ ์—”๋“œํฌ์ธํŠธ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

AZURE_STORAGE_CONTAINER_NAMEโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Azure ์Šคํ† ๋ฆฌ์ง€์˜ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

AZURE_STORAGE_KEYโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: Azure ์Šคํ† ๋ฆฌ์ง€์˜ ์•ก์„ธ์Šค ํ‚ค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ์„ ํƒ์‚ฌํ•ญ - ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฉด ์ž๊ฒฉ์ฆ๋ช…์€ ํ™˜๊ฒฝ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ž๊ฒฉ ์ฆ๋ช…, Azure ์„œ๋น„์Šค์—์„œ ์‹คํ–‰ํ•˜๋ฉด Managed Identity๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€โ€‹

DATABASE_URLโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: sqlite:///${DATA_DIR}/webui.db
  • ์„ค๋ช…: ์—ฐ๊ฒฐํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ •๋ณด

SQLite์™€ Postgres๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. URL์„ ๋ณ€๊ฒฝํ•ด๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. URL ์Šคํ‚ค๋งˆ์— ๋Œ€ํ•œ ๋ฌธ์„œ๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

DATABASE_SCHEMAโ€‹

  • ์œ ํ˜•: str
  • ๊ธฐ๋ณธ๊ฐ’: None
  • ์„ค๋ช…: ์—ฐ๊ฒฐํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

DATABASE_POOL_SIZEโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 0
  • ์„ค๋ช…: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. 0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ํ’€๋ง์ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

DATABASE_POOL_MAX_OVERFLOWโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 0
  • ์„ค๋ช…: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€ ์ตœ๋Œ€ ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ •๋ณด

์ด ์„ค์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DATABASE_POOL_TIMEOUTโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 30
  • ์„ค๋ช…: ์—ฐ๊ฒฐ์„ ์–ป๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€ ํƒ€์ž„์•„์›ƒ(์ดˆ)์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ •๋ณด

์ด ์„ค์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DATABASE_POOL_RECYCLEโ€‹

  • ์œ ํ˜•: int
  • ๊ธฐ๋ณธ๊ฐ’: 3600
  • ์„ค๋ช…: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€ ์žฌํ™œ์šฉ ์‹œ๊ฐ„(์ดˆ)์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ •๋ณด

์ด ์„ค์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Redisโ€‹

REDIS_URLโ€‹

  • ์œ ํ˜•: str
  • ์˜ˆ: redis://localhost:6379/0
  • ์„ค๋ช…: ์•ฑ ์ƒํƒœ๋ฅผ ์œ„ํ•œ Redis ์ธ์Šคํ„ด์Šค์˜ URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ •๋ณด

Open-WebUI๋ฅผ ๋ฉ€ํ‹ฐ ๋…ธ๋“œ/์ž‘์—…์ž ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๋ฐฐํฌํ•  ๋•Œ, REDIS_URL ๊ฐ’์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ž‘์—…์ž๋“ค์ด ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์—†์–ด ์„ธ์…˜, ์ง€์†์„ฑ ๋ฐ ์•ฑ ์ƒํƒœ์˜ ์ผ๊ด€์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

REDIS_SENTINEL_HOSTSโ€‹

  • ์œ ํ˜•: str
  • ์„ค๋ช…: ์•ฑ ์ƒํƒœ๋ฅผ ์œ„ํ•œ Redis Sentinel์˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์ง€์ •๋œ ๊ฒฝ์šฐ, REDIS_URL์˜ "hostname"์€ Sentinel ์„œ๋น„์Šค ์ด๋ฆ„์œผ๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค.

REDIS_SENTINEL_PORTโ€‹

  • ํƒ€์ž…: int
  • ๊ธฐ๋ณธ๊ฐ’: 26379
  • ์„ค๋ช…: ์•ฑ ์ƒํƒœ Redis๋ฅผ ์œ„ํ•œ Sentinel ํฌํŠธ์ž…๋‹ˆ๋‹ค.

ENABLE_WEBSOCKET_SUPPORTโ€‹

  • ํƒ€์ž…: bool
  • ๊ธฐ๋ณธ๊ฐ’: True
  • ์„ค๋ช…: Open WebUI์—์„œ ์›น์†Œ์ผ“ ์ง€์›์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ •๋ณด

Open-WebUI๋ฅผ ๋‹ค์ค‘ ๋…ธ๋“œ/์ž‘์—…์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌํ•  ๋•Œ, ๋ฐ˜๋“œ์‹œ ENABLE_WEBSOCKET_SUPPORT ๊ฐ’์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์›น์†Œ์ผ“์˜ ์ผ๊ด€์„ฑ๊ณผ ์ง€์†์„ฑ ๋ฌธ์ œ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

WEBSOCKET_MANAGERโ€‹

  • ํƒ€์ž…: str
  • ๊ธฐ๋ณธ๊ฐ’: redis
  • ์„ค๋ช…: ์‚ฌ์šฉํ•  ์›น์†Œ์ผ“ ๊ด€๋ฆฌ์ž๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค (์ด ๊ฒฝ์šฐ Redis).
์ •๋ณด

Open-WebUI๋ฅผ ๋‹ค์ค‘ ๋…ธ๋“œ/์ž‘์—…์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌํ•  ๋•Œ, ๋ฐ˜๋“œ์‹œ WEBSOCKET_MANAGER ๊ฐ’์„ ์„ค์ •ํ•˜๊ณ , Redis์™€ ๊ฐ™์€ ํ‚ค-๊ฐ’ ๊ธฐ๋ฐ˜ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์›น์†Œ์ผ“์˜ ์ผ๊ด€์„ฑ๊ณผ ์ง€์†์„ฑ ๋ฌธ์ œ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

WEBSOCKET_REDIS_URLโ€‹

  • ํƒ€์ž…: str
  • ๊ธฐ๋ณธ๊ฐ’: ${REDIS_URL}
  • ์„ค๋ช…: ์›น์†Œ์ผ“ ํ†ต์‹ ์„ ์œ„ํ•œ Redis ์ธ์Šคํ„ด์Šค์˜ URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” REDIS_URL๊ณผ๋Š” ๋ณ„๊ฐœ๋กœ, ์‹ค์ œ๋กœ๋Š” ๋‘ ๊ฐ’์„ ๋ชจ๋‘ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.
์ •๋ณด

Open-WebUI๋ฅผ ๋‹ค์ค‘ ๋…ธ๋“œ/์ž‘์—…์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌํ•  ๋•Œ, ๋ฐ˜๋“œ์‹œ WEBSOCKET_REDIS_URL ๊ฐ’์„ ์„ค์ •ํ•˜๊ณ , Redis์™€ ๊ฐ™์€ ํ‚ค-๊ฐ’ ๊ธฐ๋ฐ˜ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์›น์†Œ์ผ“์˜ ์ผ๊ด€์„ฑ๊ณผ ์ง€์†์„ฑ ๋ฌธ์ œ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

WEBSOCKET_SENTINEL_HOSTSโ€‹

  • ํƒ€์ž…: str
  • ์„ค๋ช…: ์›น์†Œ์ผ“์šฉ Redis Sentinel์˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์ง€์ •๋œ ๊ฒฝ์šฐ, WEBSOCKET_REDIS_URL์˜ "hostname"์ด Sentinel ์„œ๋น„์Šค ์ด๋ฆ„์œผ๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค.

WEBSOCKET_SENTINEL_PORTโ€‹

  • ํƒ€์ž…: int
  • ๊ธฐ๋ณธ๊ฐ’: 26379
  • ์„ค๋ช…: ์›น์†Œ์ผ“ Redis๋ฅผ ์œ„ํ•œ Sentinel ํฌํŠธ์ž…๋‹ˆ๋‹ค.

Uvicorn ์„ค์ •โ€‹

UVICORN_WORKERSโ€‹

  • ํƒ€์ž…: int
  • ๊ธฐ๋ณธ๊ฐ’: 1
  • ์„ค๋ช…: Uvicorn์ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š” ์ž‘์—…์ž ํ”„๋กœ์„ธ์Šค ์ˆ˜๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—…์ž๋Š” ๋ณ„๋„์˜ ํ”„๋กœ์„ธ์Šค์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ •๋ณด

Kubernetes์™€ ๊ฐ™์€ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ์ด๋‚˜ Helm ์ฐจํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, UVICORN_WORKERS๋ฅผ 1๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ์€ ์ž์ฒด์ ์œผ๋กœ ํฌ๋“œ ๋ณต์ œ๋ฅผ ํ†ตํ•ด ํ™•์žฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋ฉฐ, ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ๋‹ค์ค‘ ์ž‘์—…์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ฆฌ์†Œ์Šค ํ• ๋‹น ๋ฌธ์ œ๋ฅผ ์ดˆ๋ž˜ํ•˜๊ณ  ์ˆ˜ํ‰ ํ™•์žฅ ์ „๋žต์„ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

UVICORN_WORKERS๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋‹ค์ค‘ ์ธ์Šคํ„ด์Šค ์„ค์ •๊ณผ ๊ด€๋ จ๋œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ ์ ˆํžˆ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ ์„ค์ •โ€‹

Open WebUI๋Š” HTTP ๋ฐ HTTPS ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ํ”„๋ก์‹œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ก์‹œ ์„ค์ •์„ ์ง€์ •ํ•˜๋ ค๋ฉด Open WebUI๋Š” ๋‹ค์Œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

http_proxyโ€‹

  • ํƒ€์ž…: str
  • ์„ค๋ช…: HTTP ํ”„๋ก์‹œ์— ๋Œ€ํ•œ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

https_proxyโ€‹

  • ํƒ€์ž…: str
  • ์„ค๋ช…: HTTPS ํ”„๋ก์‹œ์— ๋Œ€ํ•œ URL์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

no_proxyโ€‹

  • ํƒ€์ž…: str
  • ์„ค๋ช…: ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋„๋ฉ”์ธ ํ™•์žฅ์ž(๋˜๋Š” IP ์ฃผ์†Œ)๋ฅผ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, no_proxy๋ฅผ .mit.edu๋กœ ์„ค์ •ํ•˜๋ฉด MIT์—์„œ ๋ฌธ์„œ๋ฅผ ์•ก์„ธ์Šคํ•  ๋•Œ ํ”„๋ก์‹œ๊ฐ€ ์šฐํšŒ๋ฉ๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ Python ํŒจํ‚ค์ง€ ์„ค์น˜โ€‹

Open WebUI๋Š” pip ์„ค์น˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” Open WebUI์—์„œ ํŒจํ‚ค์ง€ ์„ค์น˜ ๋™์ž‘์„ ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค:

PIP_OPTIONSโ€‹

  • ํƒ€์ž…: str
  • ์„ค๋ช…: ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ pip์ด ์‚ฌ์šฉํ•  ์ถ”๊ฐ€ ๋ช…๋ น ์˜ต์…˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, --upgrade, --user ๋˜๋Š” --no-cache-dir์™€ ๊ฐ™์€ ํ”Œ๋ž˜๊ทธ๋ฅผ ํฌํ•จ์‹œ์ผœ ์„ค์น˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PIP_PACKAGE_INDEX_OPTIONSโ€‹

  • ํƒ€์ž…: str
  • ์„ค๋ช…: pip์˜ ์‚ฌ์šฉ์ž ์ •์˜ ํŒจํ‚ค์ง€ ์ธ๋ฑ์Šค ๋™์ž‘์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์—๋Š” ์ถ”๊ฐ€ ๋˜๋Š” ๋Œ€์ฒด ์ธ๋ฑ์Šค URL(e.g., --extra-index-url), ์ธ์ฆ ์ž๊ฒฉ ์ฆ๋ช… ๋˜๋Š” ๋‹ค์–‘ํ•œ ์œ„์น˜์—์„œ ํŒจํ‚ค์ง€๊ฐ€ ๊ฒ€์ƒ‰๋˜๋Š” ๋ฐฉ์‹์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐํƒ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.