Conversational Retrieval QA Chain

Conversational Retrieval QA Chain ๋…ธ๋“œ๋Š” ์ด์ „ ๋Œ€ํ™” ๋งฅ๋ฝ์„ ์œ ์ง€ํ•˜๋ฉด์„œ, ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ ๊ธฐ๋ฐ˜ ๋ฌธ์„œ๋กœ๋ถ€ํ„ฐ ๊ด€๋ จ ์ •๋ณด๋ฅผ ์ฐพ์•„ ์ •ํ™•ํ•˜๊ณ  ์ž์—ฐ์Šค๋Ÿฌ์šด ์งˆ์˜์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋Š” ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. ์งˆ๋ฌธ์ด ์• ๋งคํ•˜๊ฑฐ๋‚˜ ๋งฅ๋ฝ์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ์—๋„, ์ด์ „ ๋Œ€ํ™” ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์งˆ๋ฌธ์„ ์žฌ๊ตฌ์„ฑํ•˜๊ณ  ๋ฌธ์„œ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ต๋ณ€ํ•ฉ๋‹ˆ๋‹ค.


์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋Œ€ํ™” ํ๋ฆ„ ์†์—์„œ ๋ถˆ์™„์ „ํ•œ ์งˆ๋ฌธ์„ ๋ช…ํ™•ํ•œ ๋‹จ์ผ ์งˆ๋ฌธ์œผ๋กœ ์žฌ์ž‘์„ฑ

  • ๋ฒกํ„ฐ ๊ฒ€์ƒ‰(Retriever)์„ ํ†ตํ•ด ๊ด€๋ จ ๋ฌธ์„œ ์ปจํ…์ŠคํŠธ ์ž๋™ ๊ฒ€์ƒ‰

  • ๊ฒ€์ƒ‰๋œ ๋ฌธ์„œ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •ํ™•ํ•˜๊ณ  ์ž์—ฐ์Šค๋Ÿฌ์šด ๋‹ต๋ณ€ ์ƒ์„ฑ

  • ๊ณผ๊ฑฐ ๋Œ€ํ™”์™€ ์งˆ๋ฌธ์˜ ์—ฐ๊ณ„๋ฅผ ๊ณ ๋ คํ•œ QA์— ์ตœ์ ํ™”

WindyFlo Conversational Retrieval QA Chain
WindyFlo Conversational Retrieval QA Chain Parameters

์ž…๋ ฅ๊ฐ’ (Inputs)

ํ•ญ๋ชฉ
์„ค๋ช…
ํ•„์ˆ˜ ์—ฌ๋ถ€

Chat Model

๋ฌธ์žฅ ์ƒ์„ฑ ๋ฐ ์žฌ์ž‘์„ฑ์— ์‚ฌ์šฉํ•  ์–ธ์–ด ๋ชจ๋ธ

ํ•„์ˆ˜

Vector Store Retriever

๋ฌธ์„œ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ. ์œ ์‚ฌํ•œ ๋ฌธ์„œ๋ฅผ ๋ฒกํ„ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฐพ์•„ ์ œ๊ณต

ํ•„์ˆ˜

Memory

์ด์ „ ๋Œ€ํ™”๋ฅผ ์ €์žฅํ•˜๊ณ  ์ด์–ด๋ฐ›๋Š” ๊ตฌ์„ฑ ์š”์†Œ

์„ ํƒ

Input Moderation

์œ ํ•ด ์ฝ˜ํ…์ธ  ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ

์„ ํƒ

Return Source Documents

์‘๋‹ต์— ์ฐธ์กฐ๋œ ๋ฌธ์„œ ์›๋ฌธ์„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ• ์ง€ ์—ฌ๋ถ€ (๊ธฐ๋ณธ๊ฐ’: ๋น„ํ™œ์„ฑํ™”)

์„ ํƒ


ํŒŒ๋ผ๋ฏธํ„ฐ (Parameters)

ํ•ญ๋ชฉ
์„ค๋ช…

Rephrase Prompt

์ด์ „ ๋Œ€ํ™” ๋งฅ๋ฝ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถˆ์™„์ „ํ•œ ์งˆ๋ฌธ์„ ๋‹จ๋… ์งˆ๋ฌธ์œผ๋กœ ์žฌ์ž‘์„ฑํ•˜๋Š” ํ”„๋กฌํ”„ํŠธ

Response Prompt

๊ฒ€์ƒ‰๋œ ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์ข… ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋Š” ํ”„๋กฌํ”„ํŠธ

Rephrase Prompt ์˜ˆ์‹œ

Response Prompt ์˜ˆ์‹œ


์ถœ๋ ฅ๊ฐ’ (Outputs)

์ถœ๋ ฅ ํ•ญ๋ชฉ
์„ค๋ช…

ConversationalRetrievalQAChain

์งˆ๋ฌธ ์žฌ์ž‘์„ฑ ๋ฐ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๊ธฐ๋ฐ˜ ์‘๋‹ต ๊ฐ์ฒด


ํ™œ์šฉ ์˜ˆ์‹œ

  1. ๋ฌธ์„œ ๊ธฐ๋ฐ˜ ์ƒ๋‹ด ์ฑ—๋ด‡

    • ๊ณผ๊ฑฐ ๋Œ€ํ™”์—์„œ "๊ทธ๊ฑด ์–ด๋””์— ์žˆ์–ด?" ๊ฐ™์€ ์งˆ๋ฌธ์—๋„ ์ •ํ™•ํ•œ ๋ฌธ์„œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๋‹ต๋ณ€

  2. ์‚ฌ๋‚ด ๋ฐ์ดํ„ฐ Q&A ์‹œ์Šคํ…œ

    • ์ •์ฑ… ๋ฌธ์„œ, ์ธ์‚ฌ ๋งค๋‰ด์–ผ ๋“ฑ์—์„œ ๊ด€๋ จ ๋‚ด์šฉ์„ ์ž๋™ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์‘๋‹ต ์ƒ์„ฑ

  3. RAG ๊ธฐ๋ฐ˜ ๋Œ€ํ™”ํ˜• ์–ด์‹œ์Šคํ„ดํŠธ

    • ๊ฒ€์ƒ‰๋œ ์ปจํ…์ŠคํŠธ์— ๋”ฐ๋ผ ์ •ํ™•ํ•œ ์ •๋ณด ์ œ๊ณต ๋ฐ ์ถœ์ฒ˜ ๋ฐ˜ํ™˜ ๊ฐ€๋Šฅ


์‚ฌ์šฉ ํŒ

  • ๋ฒกํ„ฐ ์Šคํ† ์–ด๋Š” In-Memory, Redis, Weaviate ๋“ฑ ๋‹ค์–‘ํ•œ ์œ ํ˜•๊ณผ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ

  • Memory ์„ค์ • ์‹œ follow-up ์งˆ๋ฌธ์„ ๋” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

  • Return Source Documents๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ถœ์ฒ˜ ํˆฌ๋ช…์„ฑ ํ™•๋ณด์— ์œ ๋ฆฌํ•จ


์ฃผ์˜์‚ฌํ•ญ

  • Rephrase Prompt์—๋Š” {chat_history}์™€ {question} ๋ณ€์ˆ˜๊ฐ€ ๋ฐ˜๋“œ์‹œ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Response Prompt์—๋Š” {context} ๋ณ€์ˆ˜๊ฐ€ ๋ฐ˜๋“œ์‹œ ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ๋ˆ„๋ฝํ•˜๋ฉด ์ •์ƒ ์‘๋‹ต์ด ๋ถˆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฌธ์„œ ๋ฒกํ„ฐํ™” ํ’ˆ์งˆ์ด ๋‚ฎ์„ ๊ฒฝ์šฐ ์ •ํ™•ํ•œ ๋‹ต๋ณ€์„ ์–ป๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.


Conversational Retrieval QA Chain์€ WindyFlo์—์„œ RAG(Retrieval-Augmented Generation) ๊ธฐ๋ฐ˜ ์งˆ์˜์‘๋‹ต์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ•ต์‹ฌ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. ๋ฌธ์„œ ๊ฒ€์ƒ‰๊ณผ ๋Œ€ํ™”์˜ ์—ฐ๊ฒฐ์ด ์ค‘์š”ํ•œ ์ฑ—๋ด‡ ์„œ๋น„์Šค์— ์ตœ์ ํ™”๋œ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค.

Last updated