๐Ÿง  Bedrock์œผ๋กœ ์‚ฌ๋‚ด ์‚ฌ์–‘์„œ๋ฅผ ์ง€์‹ ๊ธฐ๋ฐ˜ AI๋กœ ๋งŒ๋“ค๊ธฐ: ๋‘ ๋ฒˆ์งธ ์ด์•ผ๊ธฐ

sangjinsuยท2025๋…„ 7์›” 20์ผ

๋‘ ๋ฒˆ์งธ ์ด์•ผ๊ธฐ: ์ฝ˜ํ…์ธ  ๋ธ”๋ก, ์ฒญํฌ, ๊ทธ๋ฆฌ๊ณ  ๊ตฌ์กฐํ™”๋œ ์„ค๊ณ„

โœ๏ธ ์ด์ „ ์ด์•ผ๊ธฐ ์š”์•ฝ

์ฒซ ๋ฒˆ์งธ ์ด์•ผ๊ธฐ์—์„œ๋Š” AWS Bedrock๊ณผ Confluence ๋ฌธ์„œ๋ฅผ ํ™œ์šฉํ•ด ์‚ฌ๋‚ด ์‚ฌ์–‘์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ AI ์‘๋‹ต ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์‹œ๋„๋“ค์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
HTML์„ ํ…์ŠคํŠธ๋กœ ์ „ํ™˜ํ•ด S3์— ์—…๋กœ๋“œํ•˜๊ณ  Bedrock Knowledge Base(KB)๋กœ ์—ฐ๋™ํ•ด๋ดค์ง€๋งŒ, AI์˜ ๋‹ต๋ณ€์€ ๋„ˆ๋ฌด ๋ชจํ˜ธํ•˜๊ณ  ์ผ๋ฐ˜์ ์ธ ์ˆ˜์ค€์— ๋จธ๋ฌผ๋ €์Šต๋‹ˆ๋‹ค.

๐Ÿงช ์‹คํ—˜ 2: ์ฝ˜ํ…์ธ  ๋ธ”๋ก๋งŒ ์ถ”์ถœํ•˜๊ธฐ

์ด๋ฒˆ์—๋Š” ๋ฌธ์„œ ์ „์ฒด๊ฐ€ ์•„๋‹Œ ์˜๋ฏธ ์žˆ๋Š” ์ฝ˜ํ…์ธ  ๋ธ”๋ก๋งŒ ์ถ”์ถœํ•˜์—ฌ ์ง€์‹์œผ๋กœ ๋“ฑ๋กํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋Š” ๋Œ€๋‹ต์˜ ์ •ํ™•๋„ ํ–ฅ์ƒ์ด๋ผ๋Š” ๊ธ์ •์ ์ธ ๋ณ€ํ™”๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

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

โš™๏ธ ์‹คํ—˜ 3: ์†Œ์Šค ์ฒญํฌ(Source Chunk) ์กฐ์ •

๊ทธ๋Ÿฌ๋‚˜ Confluence ๋ฌธ์„œ๋“ค์ด ๋‹ค์–‘ํ•œ ํŽ˜์ด์ง€๋กœ ํŒŒํŽธํ™”๋˜์–ด ์žˆ๋‹ค ๋ณด๋‹ˆ, ์งˆ๋ฌธ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์ž์ฃผ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ๋ฒˆ์— ๊ฐ€์ ธ์˜ค๋Š” ์†Œ์Šค ์ฒญํฌ ํฌ๊ธฐ๋ฅผ ๋†’์—ฌ ํ…Œ์ŠคํŠธํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

โœ… ์†Œ์Šค ์ฒญํฌ๋ž€?
ํ•˜๋‚˜์˜ ์งˆ๋ฌธ์— ๋Œ€ํ•ด ์ฐธ์กฐ๋˜๋Š” ๋ฌธ์„œ ๋ธ”๋ก ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋†’์ผ์ˆ˜๋ก ๋งŽ์€ ๋ฌธ์„œ์—์„œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ๊ด€์ฐฐ ๊ฒฐ๊ณผ

  • ๐Ÿ”บ ์ •ํ™•๋„ ํ–ฅ์ƒ: ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ๋ฌธ์„œ๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ๋” ํ’๋ถ€ํ•œ ๋‹ต๋ณ€ ์ƒ์„ฑ ๊ฐ€๋Šฅ
  • ๐Ÿ”ป ์†๋„ ์ €ํ•˜: ์ฒญํฌ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฉด ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ํฌ๊ฒŒ ๋А๋ ค์ง

๐Ÿ” ํŠธ๋ ˆ์ด๋“œ์˜คํ”„: ์ •ํ™•๋„ ํ–ฅ์ƒ์ด ๋ชฉ์ ์ด๋ผ๋ฉด ์ฒญํฌ ์ฆ๊ฐ€๋Š” ๊ดœ์ฐฎ์ง€๋งŒ, ์‹ค์„œ๋น„์Šค๋ผ๋ฉด ์†๋„ ๊ฐœ์„ ์€ ํ•„์ˆ˜ ๊ณผ์ œ

๐Ÿ’ฌ ์‹คํ—˜ 4: ํ”„๋กฌํ”„ํŠธ ๊ฐœ์„ 

๋‹ต๋ณ€ ํ’ˆ์งˆ์€ ๋‹จ์ˆœํžˆ KB ๋ฐ์ดํ„ฐ๋งŒ์œผ๋กœ ๊ฒฐ์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
ํ”„๋กฌํ”„ํŠธ ๊ตฌ์„ฑ๋„ ๋งค์šฐ ์ค‘์š”ํ•œ ๋ณ€์ˆ˜์˜€์œผ๋ฉฐ, ๊ตฌ์กฐํ™”๋œ ์‹œ์Šคํ…œ ์‘๋‹ต์„ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๊ฐœ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค

์‚ฌ์šฉ๋œ ํ”„๋กฌํ”„ํŠธ ์˜ˆ์‹œ

You are a helpful and factual assistant tasked with analyzing user questions using internal documentation.
You will be given:
- A **user question**
- A list of **search results** retrieved from OpenSearch, each containing content and metadata such as title, page ID, version, and a Confluence URL.
---
:magnifying_glass: **Instructions**:
1. Read and interpret the userโ€™s question carefully.
2. Use **only the provided search results** to extract and synthesize relevant information.
3. If the question implies an issue or claim, validate it strictly based on the documents.
4. Respond in clear **Markdown format**, with a short summary paragraph and optional bullet points.
5. Provide a concise, structured answer that groups key insights thematically, avoiding unnecessary numbering.
6. Always list all **referenced Confluence documents** at the end, using `title` and exact `confluence_url` from metadata.
7. Do not fabricate or alter links. Use them exactly as provided.
8. If no relevant information is found, respond with:
   โSorry, I could not find an exact answer to your question based on the available information.โž
---
:books: **Search Results**:
$search_results$
---
:speech_bubble: **User Question**:
$input$
---
:outbox_tray: **Output Format**:
Respond in Markdown using this structure:
```markdown
[Summary of key findings and observations.]
- [Optional supporting point 1, if needed]
- [Optional supporting point 2, if needed]
- ...
### :link: Referenced Confluence Documents

์ด๋Ÿฌํ•œ ๋ช…์‹œ์  ๊ฐ€์ด๋“œ๋ผ์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค:

  • ๐Ÿ“Œ ๋‹ต๋ณ€ ์ผ๊ด€์„ฑ ํ–ฅ์ƒ
    ๊ฐ ๋‹ต๋ณ€์ด ์š”์•ฝ โ†’ ๊ทผ๊ฑฐ ๋ชฉ๋ก โ†’ ๋ฌธ์„œ ์ถœ์ฒ˜๋กœ ์ด์–ด์ง€๋Š” ํ†ต์ผ๋œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง
  • ๐Ÿ” ์ถœ์ฒ˜ ๋ช…ํ™•์„ฑ ํ™•๋ณด
    ์‹ค์ œ ๋ฌธ์„œ ์ œ๋ชฉ๊ณผ URL์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด ์‹ ๋ขฐ๋„ ํ–ฅ์ƒ
  • ๐Ÿ“‰ ํ• ๋ฃจ์‹œ๋„ค์ด์…˜ ๊ฐ์†Œ
    KB ์™ธ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š๋„๋ก ์œ ๋„ํ•จ์œผ๋กœ์จ ์‚ฌ๋‚ด ์ •๋ณด์— ๊ธฐ๋ฐ˜ํ•œ ๋‹ต๋ณ€๋งŒ ์ƒ์„ฑ

โ›” ์ž ์‹œ ๋ฉˆ์ถ˜ ์ด์œ 

๊ฐœ์ธ์ ์ธ ํŒ€ ์ด๋™ ์ด์Šˆ๋กœ ์ธํ•ด, ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ์ง€์†์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜์ง€๋Š” ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹น์‹œ ์„ค๊ณ„ํ•œ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋Š” ํ˜„์žฌ๋„ ์œ ํšจํ•œ ํ˜•ํƒœ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงญ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ตฌ์กฐ (Mermaid)

###๐Ÿ“ ๋งˆ๋ฌด๋ฆฌ

์ด๋ฒˆ ์‹คํ—˜์—์„œ๋Š” ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ(์ฝ˜ํ…์ธ  ๋ธ”๋ก), ์‹œ์Šคํ…œ ์„ค์ •(์ฒญํฌ), ์งˆ์˜ ๋ฐฉ์‹(ํ”„๋กฌํ”„ํŠธ)์˜ ์„ธ ์ถ•์„ ์กฐ์ •ํ•˜๋ฉฐ Bedrock ๊ธฐ๋ฐ˜์˜ ์‚ฌ๋‚ด ์ง€์‹ ์‘๋‹ต ์‹œ์Šคํ…œ์˜ ๊ฐ€๋Šฅ์„ฑ๊ณผ ๊ณผ์ œ๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์—‡๋ณด๋‹ค๋„, ๋ฌธ์„œ์˜ ์ •์ œ์™€ ์งˆ์˜ ํ๋ฆ„๋งŒ ์ž˜ ์„ค๊ณ„ํ•ด๋„ ํŒ€์›๋“ค์ด ๋งค๋ฒˆ ๋ฌธ์„œ๋ฅผ ๋’ค์ ์ด์ง€ ์•Š๊ณ  Slack์—์„œ ๋ฐ”๋กœ ์ •ํ™•ํ•œ ๋‹ต์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์—…๋ฌด ํšจ์œจ์„ฑ์„ ํš๊ธฐ์ ์œผ๋กœ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์ถฉ๋ถ„ํžˆ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ, ๊ฐœ์ธ์ ์ธ ์‚ฌ์ •์œผ๋กœ ๊ฐœ๋ฐœ์„ ๋” ์ด์–ด๊ฐ€์ง€ ๋ชปํ•œ ์ ์€ ํฌ๊ฒŒ ์•„์‰ฌ์›€์œผ๋กœ ๋‚จ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์šด์˜ ์„œ๋น„์Šค๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ๋”๋ผ๋ฉด, ํŒ€ ์ „์ฒด์˜ ์‚ฌ์–‘ ์ „๋‹ฌ/๋ฌธ์˜ ๊ตฌ์กฐ ์ž์ฒด๋ฅผ ๋ฐ”๊ฟ”๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ์‚ฌ๋ก€๊ฐ€ ๋˜์—ˆ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

profile
๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋Š”, ์ด์Šˆ๋ฅผ ์ค„์ด๋Š” ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

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