Graph Cypher QA Chain

Graph Cypher QA Chain ๋…ธ๋“œ๋Š” ์ž์—ฐ์–ด ์งˆ๋ฌธ์„ Cypher ์ฟผ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , Neo4j ๊ทธ๋ž˜ํ”„ DB์—์„œ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž์—ฐ์–ด ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋Š” ๊ทธ๋ž˜ํ”„ ์งˆ์˜์‘๋‹ต์šฉ ์ฒด์ธ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•œ ๊ณ ๊ธ‰ ๋ถ„์„ ๋ฐ ์งˆ๋ฌธ ์‘๋‹ต ์ž๋™ํ™”๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


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

  • ์ž์—ฐ์–ด ์งˆ๋ฌธ โ†’ Cypher ์ฟผ๋ฆฌ ์ž๋™ ์ƒ์„ฑ

  • ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ โ†’ ์ž์—ฐ์–ด ์‘๋‹ต์œผ๋กœ ์žฌ๊ตฌ์„ฑ

  • Neo4j ์—ฐ๊ฒฐ ๊ธฐ๋ฐ˜์˜ ์ง€์‹ ๊ทธ๋ž˜ํ”„ ์งˆ์˜์‘๋‹ต ์‹œ์Šคํ…œ ๊ตฌํ˜„

  • LLM์„ ์‚ฌ์šฉํ•œ ์งˆ์˜ ๋ณ€ํ™˜ ๋ฐ ํ•ด์„ ์ฒ˜๋ฆฌ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ

WindyFlo Graph Cypher QA Chain

์ž…๋ ฅ๊ฐ’ (Inputs)

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

Language Model

์ „์ฒด ์งˆ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๊ธฐ๋ณธ LLM

ํ•„์ˆ˜

Neo4j Graph

์—ฐ๊ฒฐํ•  Neo4j ์ธ์Šคํ„ด์Šค ์ •๋ณด

ํ•„์ˆ˜

Cypher Generation Prompt

์ž์—ฐ์–ด โ†’ Cypher ๋ณ€ํ™˜์„ ์œ„ํ•œ ํ”„๋กฌํ”„ํŠธ

์„ ํƒ

Cypher Generation Model

Cypher ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  LLM (์ง€์ • ์‹œ Language Model๊ณผ ๋ถ„๋ฆฌ๋จ)

์„ ํƒ

QA Prompt

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ž์—ฐ์–ด ์‘๋‹ต์œผ๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•œ ํ”„๋กฌํ”„ํŠธ

์„ ํƒ

QA Model

์‘๋‹ต ์ƒ์„ฑ์„ ๋‹ด๋‹นํ•  LLM (์ง€์ • ์‹œ Language Model๊ณผ ๋ถ„๋ฆฌ๋จ)

์„ ํƒ

Input Moderation

์œ ํ•ด ์งˆ๋ฌธ ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ

์„ ํƒ

Return Direct

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€๊ณต ์—†์ด ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ• ์ง€ ์—ฌ๋ถ€ (๊ธฐ๋ณธ๊ฐ’: ๋น„ํ™œ์„ฑํ™”)

์„ ํƒ


์ถœ๋ ฅ๊ฐ’ (Outputs)

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

Graph Cypher QA Chain

์ตœ์ข… ์ž์—ฐ์–ด ์‘๋‹ต (๊ธฐ๋ณธ ์ถœ๋ ฅ๊ฐ’)

Output Prediction

๋‚ด๋ถ€ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ ์˜ˆ์ธก ๊ฐ’ (์˜ต์…˜ ์„ ํƒ ์‹œ ๋…ธ์ถœ)


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

  1. ์ง€์‹ ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ Q&A

    • "๋งˆํฌ ์ €์ปค๋ฒ„๊ทธ์™€ ์—ฐ๊ฒฐ๋œ ํšŒ์‚ฌ๋Š”?" โ†’ Cypher ์ฟผ๋ฆฌ๋กœ ๋ณ€ํ™˜ โ†’ ๊ด€๊ณ„ ์ถ”์ถœ โ†’ ์‘๋‹ต

  2. Neo4j ๋ฐ์ดํ„ฐ ํƒ์ƒ‰ ์ž๋™ํ™”

    • "2023๋…„ ์ดํ›„ ์ƒ์„ฑ๋œ ๋ชจ๋“  ๋…ธ๋“œ ์ˆ˜ ๋ณด์—ฌ์ค˜" โ†’ ์ž๋™ ์ฟผ๋ฆฌ ์‹คํ–‰ ๋ฐ ์‘๋‹ต ์ƒ์„ฑ

  3. ์‹œ๊ฐํ™” ํ”Œ๋žซํผ๊ณผ์˜ ์—ฐ๊ณ„

    • Cypher ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•ด ์‹œ๊ฐํ™” ๋„๊ตฌ๋กœ ์ „๋‹ฌ ๊ฐ€๋Šฅ (Return Direct ํ™œ์„ฑํ™” ์‹œ)


์‚ฌ์šฉ ํŒ

  • Cypher ์ฟผ๋ฆฌ ์ƒ์„ฑ์šฉ ํ”„๋กฌํ”„ํŠธ๋Š” ๋ช…ํ™•ํ•œ ํ•„๋“œ๋ช… ๋ฐ ๋…ธ๋“œ/๊ด€๊ณ„ ๊ตฌ์กฐ ์„ค๋ช… ํฌํ•จ ์‹œ ์ •ํ™•๋„ ํ–ฅ์ƒ

  • QA Model๊ณผ Cypher Generation Model์„ ๋ถ„๋ฆฌํ•˜๋ฉด ๋” ์ •๋ฐ€ํ•œ ์ปจํŠธ๋กค ๊ฐ€๋Šฅ

  • ๊ทธ๋ž˜ํ”„ ์Šคํ‚ค๋งˆ๊ฐ€ ๋ณต์žกํ•  ๊ฒฝ์šฐ, ์‚ฌ์ „ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ํ”„๋กฌํ”„ํŠธ ํŠœ๋‹ ํ•„์ˆ˜


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

  • Neo4j ์—ฐ๊ฒฐ์ด ์‚ฌ์ „์— ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  • Cypher Generation Prompt์—๋Š” {question} ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋ฉฐ, QA Prompt์—๋Š” {result} ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ€ ๋น„์–ด ์žˆ๊ฑฐ๋‚˜ ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅผ ๊ฒฝ์šฐ, LLM์ด ๋ถ€์ •ํ™•ํ•œ ์‘๋‹ต์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Graph Cypher QA Chain์€ WindyFlo์—์„œ Neo4j ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ ๋ถ„์„์„ ์ž๋™ํ™”ํ•˜๊ณ  ์งˆ์˜์‘๋‹ต ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ•ต์‹ฌ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ DB ๊ธฐ๋ฐ˜์˜ ๋น„์ฆˆ๋‹ˆ์Šค ์ธ์‚ฌ์ดํŠธ ์ถ”์ถœ, ๊ด€๊ณ„ ๋„คํŠธ์›Œํฌ ๋ถ„์„, ์ง€์‹ ๊ธฐ๋ฐ˜ ์ฑ—๋ด‡ ๋“ฑ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Last updated