Graph Cypher QA Chain
Graph Cypher QA Chain ๋ ธ๋๋ ์์ฐ์ด ์ง๋ฌธ์ Cypher ์ฟผ๋ฆฌ๋ก ๋ณํํ๊ณ , Neo4j ๊ทธ๋ํ DB์์ ์คํํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ์์ฐ์ด ์๋ต์ ์์ฑํ๋ ๊ทธ๋ํ ์ง์์๋ต์ฉ ์ฒด์ธ ๋ ธ๋์ ๋๋ค. ๊ทธ๋ํ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ ๊ณ ๊ธ ๋ถ์ ๋ฐ ์ง๋ฌธ ์๋ต ์๋ํ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
์์ฐ์ด ์ง๋ฌธ โ Cypher ์ฟผ๋ฆฌ ์๋ ์์ฑ
์ฟผ๋ฆฌ ๊ฒฐ๊ณผ โ ์์ฐ์ด ์๋ต์ผ๋ก ์ฌ๊ตฌ์ฑ
Neo4j ์ฐ๊ฒฐ ๊ธฐ๋ฐ์ ์ง์ ๊ทธ๋ํ ์ง์์๋ต ์์คํ ๊ตฌํ
LLM์ ์ฌ์ฉํ ์ง์ ๋ณํ ๋ฐ ํด์ ์ฒ๋ฆฌ ๋ถ๋ฆฌ ๊ฐ๋ฅ

์
๋ ฅ๊ฐ (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
๋ด๋ถ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ์์ธก ๊ฐ (์ต์ ์ ํ ์ ๋ ธ์ถ)
ํ์ฉ ์์
์ง์ ๊ทธ๋ํ ๊ธฐ๋ฐ Q&A
"๋งํฌ ์ ์ปค๋ฒ๊ทธ์ ์ฐ๊ฒฐ๋ ํ์ฌ๋?" โ Cypher ์ฟผ๋ฆฌ๋ก ๋ณํ โ ๊ด๊ณ ์ถ์ถ โ ์๋ต
Neo4j ๋ฐ์ดํฐ ํ์ ์๋ํ
"2023๋ ์ดํ ์์ฑ๋ ๋ชจ๋ ๋ ธ๋ ์ ๋ณด์ฌ์ค" โ ์๋ ์ฟผ๋ฆฌ ์คํ ๋ฐ ์๋ต ์์ฑ
์๊ฐํ ํ๋ซํผ๊ณผ์ ์ฐ๊ณ
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