RAGμ μμ΄μ νΈ: κ°λ°μκ° μ²΄κ°νλ βλλν¨βμ μ°¨μ΄
RAGμ μμ΄μ νΈ: κ°λ°μκ° μ²΄κ°νλ βλλν¨βμ μ°¨μ΄ βλͺ¨λΈμ΄ λ΅μ μνλλ°, μ°λ¦¬ μλΉμ€ λ¬Έμλ₯Ό λͺ¨λ₯΄λ€?β μ΄ μ§μ μμ λ§μ κ°λ°μκ°...
RAGμ μμ΄μ νΈ: κ°λ°μκ° μ²΄κ°νλ βλλν¨βμ μ°¨μ΄
βλͺ¨λΈμ΄ λ΅μ μνλλ°, μ°λ¦¬ μλΉμ€ λ¬Έμλ₯Ό λͺ¨λ₯΄λ€?β μ΄ μ§μ μμ λ§μ κ°λ°μκ° RAGλ₯Ό λΆμ λλ€. κ·Έλ°λ° λ§μ λ§λ€κ³ λλ©΄ λ μ΄λ° μκ΅¬κ° λμ΅λλ€. βκ·ΈλΌ μ¬μ©μκ° βνλΆ μ²λ¦¬βλΌκ³ λ§νλ©΄, μ μ± νμΈνκ³ μ£Όλ¬Έ μ‘°νν΄μ μ€μ λ‘ μ²λ¦¬κΉμ§ ν΄μ€.β μ¬κΈ°μλΆν°λ μμ΄μ νΈ(Agent)μ μμμ λλ€. λ λ€ AI κΈ°λ₯μ κ°ννμ§λ§, μ΄λκΉμ§λ₯Ό λͺ¨λΈμ΄ βμκ°βνκ³ μ΄λλΆν°λ₯Ό βνλβνκ² ν μ§κ° μμ ν λ¬λΌμ§λλ€.
RAGμ μμ΄μ νΈ, ν λ¬Έμ₯μΌλ‘ ꡬλΆνκΈ°
RAG(Retrieval-Augmented Generation)
- λͺ¨λΈμ΄ λ΅λ³μ λ§λ€ λ μΈλΆ μ§μ(λ¬Έμ/DB κ²μ κ²°κ³Ό)μ λΌμ λ£μ΄ λ μ ννκ² λ§νλλ‘ λλ λ°©μ
- ν΅μ¬: βκ·Όκ±°λ₯Ό μ°Ύμμ μ λ§νκΈ°β
μμ΄μ νΈ(Agent)
- λͺ¨λΈμ΄ λͺ©νλ₯Ό λ¬μ±νκΈ° μν΄ λꡬλ₯Ό μ νΒ·νΈμΆνκ³ , μ€κ° κ²°κ³Όλ₯Ό λ³΄κ³ λ€μ νλμ κ²°μ νλ λ°©μ
- ν΅μ¬: βμΌμ λλ΄κΈ° μν΄ μμ§μ΄κΈ°β μ 리νλ©΄, RAGλ μ§μ 보κ°, μμ΄μ νΈλ μμ μνμ κ°κΉμ΅λλ€.
μΈμ RAGκ° μ λ΅μΈκ°
RAGλ νΉν λ€μ μν©μμ ν¨κ³Όκ° μ’μ΅λλ€.
1) μ¬λ΄ λ¬Έμ/κ°μ΄λ/μ μ± μ΄ μμ£Ό λ°λ λ
λͺ¨λΈ μ체λ₯Ό λ€μ νμ΅μν€λ λμ , λ¬Έμλ₯Ό μͺΌκ°μ μ μ₯νκ³ (벑ν°ν) μ§λ¬Έλ§λ€ μ°Ύμ λΆμ΄λ©΄ λ©λλ€. μ: κ³ κ°μΌν° μ±λ΄μ΄ μ΅μ νλΆ κ·μ μ μΈμ©ν΄ μλ΄
2) βκ·Όκ±° μλ λ΅λ³βμ΄ μ€μν μλΉμ€
RAGλ κ²μ κ²°κ³Ό λ¬Έλ¨μ ν¨κ» μ¬μ©νλ―λ‘ λ΅μ μΆμ²κ° λ΄λΆ λ¬Έμμ μλ€λ μμ κ°μ΄ μκΉλλ€. μ: κ°λ° μν€ κΈ°λ° Q&A, μ₯μ λμ λ°λΆ μλ΄
3) λ°μ΄ν°λ λ§μλ° κ΅¬μ‘°κ° μ κ°κ°μΌ λ
PDF, λ Έμ , μν€, λ§ν¬λ€μ΄μ΄ μμ¬ μμ΄λ βκ²μ β μμ½/μ 리β νλ¦μΌλ‘ ν‘μ κ°λ₯ν©λλ€.
μΈμ μμ΄μ νΈκ° νμν΄μ§λκ°
μμ΄μ νΈλ βλ§βλ³΄λ€ βμΌβμ΄ μ€μν λ λΉλ©λλ€.
1) μ¬λ¬ μμ€ν μ μ€κ°λ©° μ²λ¦¬ν΄μΌ ν λ
μ: μ£Όλ¬Έ μ‘°ν β μ¬κ³ νμΈ β νλΆ μΉμΈ μμ² β κ³ κ°μκ² κ²°κ³Ό μλ΄ μ΄κ±΄ λ¨μ λ΅λ³μ΄ μλλΌ μν¬νλ‘μ° μλνμ λλ€.
2) 쑰건 λΆκΈ°κ° λ§κ³ , λ¨κ³μ νλ¨μ΄ νμν λ
μ: βVIP κ³ κ° + ꡬ맀 30μΌ μ΄λ΄ + κ°λ΄ μ¬λΆβμ λ°λΌ μ²λ¦¬ κ²½λ‘κ° λ¬λΌμ§ μμ΄μ νΈλ λ§€ λ¨κ³μμ κ²°κ³Όλ₯Ό λ³΄κ³ λ€μ λꡬλ₯Ό κ³ λ₯Ό μ μμ΅λλ€.
3) μ¬λμ βμβμ΄ λ€μ΄κ°λ λ°λ³΅ μ 무λ₯Ό μ€μ΄κ³ μΆμ λ
μ: μ¬λμμ βμ΄λ² μ£Ό μ₯μ μμ½ λ§λ€μ΄μ€β β μ΄μ νΈλ컀 μ‘°ν β λ‘κ·Έ μμ½ β λ³΄κ³ μ μ΄μ μμ±
μ€μ μ€κ³: RAG + μμ΄μ νΈ μ‘°ν©μ΄ κ°λ ₯ν μ΄μ
κ°μ₯ νν ννλ μμ΄μ νΈκ° RAGλ₯Ό λꡬμ²λΌ μ¬μ©νλ ꡬ쑰μ λλ€.
- μμ΄μ νΈ: βνλΆ μ²λ¦¬β λͺ©νλ₯Ό λ°μ
- RAG λꡬ: νλΆ μ μ± /μμΈ κ·μ μ κ²μν΄ κ·Όκ±° μ 곡
- λ€λ₯Έ λꡬ: μ£Όλ¬Έ DB μ‘°ν, ν°μΌ μμ± API νΈμΆ
- μ΅μ’ : μ¬μ©μμκ² μ²λ¦¬ κ²°κ³Όμ κ·Όκ±°λ₯Ό ν¨κ» μλ΄ μ¦, RAGκ° βμ§μβ, μμ΄μ νΈκ° βνλβμ λ΄λΉνλ©΄μ μλ‘μ μ½μ μ λ©μλλ€.
κ°λ¨ μμ μ½λ: RAGλ₯Ό βλꡬβλ‘ μ°λ μμ΄μ νΈ κ³¨κ²©
μλλ κ°λ μ μ‘κΈ° μν μ΅μ μμμ λλ€. μ€μ μ νμμλ μΈμ¦/κΆν/λ‘κΉ /λ μ΄νΈλ¦¬λ°μ΄ νμμ λλ€.
from typing import Dict, Any, List
def retrieve_docs(query: str) -> List[Dict[str, Any]]:
# μ€μ λ‘λ 벑ν°DB/κ²μμμ§μ νΈμΆ
return [
{"title": "νλΆ μ μ±
", "snippet": "ꡬ맀 7μΌ μ΄λ΄ λ―Έκ°λ΄μ μ μ‘ νλΆ... μμΈ: λμ§νΈ μνμ..."},
{"title": "VIP μμΈ κ·μ ", "snippet": "VIPλ 14μΌ μ΄λ΄ κ°λ΄ μμλ λΆλΆ νλΆ κ°λ₯..."}
]
def get_order(order_id: str) -> Dict[str, Any]:
# μ€μ λ‘λ μ£Όλ¬Έ DB/API νΈμΆ
return {"order_id": order_id, "days_since_purchase": 10, "opened": True, "is_vip": True}
def create_refund_ticket(order_id: str, reason: str) -> str:
# μ€μ λ‘λ ν°μΌ/κ²°μ μμ€ν
νΈμΆ
return f"TICKET-{order_id}-001"
def agent_refund_flow(user_message: str, order_id: ) -> [, ]:
docs = retrieve_docs()
order = get_order(order_id)
eligible = (order[] order[] <= ) \
(order[] <= order[])
eligible:
ticket_id = create_refund_ticket(order_id, reason=user_message)
{
: ,
: ticket_id,
: docs
}
:
{
: ,
: ,
: docs
}
result = agent_refund_flow(, order_id=)
(result)
ν¬μΈνΈλ λ¨μν©λλ€. λ¬Έμ κ²μ(κ·Όκ±°) + μμ€ν μ‘°ν(μ¬μ€) + μ²λ¦¬(νλ)κ° ν νλ¦μΌλ‘ μ΄μ΄μ§λ©΄, μ¬μ©μλ βλ΅λ³βμ΄ μλλΌ βμλ£βλ₯Ό λ°κ² λ©λλ€.
κ°λ° κ΄μ 체ν¬λ¦¬μ€νΈ: μ€ν¨λ₯Ό μ€μ΄λ κΈ°μ€
RAGμμ μμ£Ό κΉ¨μ§λ μ§μ
- λ¬Έμκ° κΈΈκ³ λ³΅μ‘νλ° μκ² μͺΌκ°μ§μ§ μμ β μλ±ν λ¬Έλ¨μ΄ λΆμ
- μ΅μ λ¬Έμ λ°μμ΄ λλ¦Ό β βκ·Έκ±° μμ κ·μ μΈλ°μ?β λ°μ
- μ§λ¬Έμ΄ λͺ¨νΈν¨ β κ²μ νμ§μ΄ νλ€λ¦Ό (μ§λ¬Έ μ¬κ΅¬μ±/νν°λ§μ΄ λμμ΄ λ¨)
μμ΄μ νΈμμ μμ£Ό κΉ¨μ§λ μ§μ
- λꡬ κΆνμ΄ κ³Όν¨ β μ€μ ν λ²μ΄ μ¬κ³ λ‘ μ΄μ΄μ§
- μ€ν¨ μ²λ¦¬/μ¬μλ μ λ΅μ΄ μμ β μ€κ° λ¨κ³μμ λ©μΆκ³ μ¬μ©μ κ²½νμ΄ λΆκ΄΄
- λ‘κ·Έ/μΆμ μ΄ λΆμ€ν¨ β βμ μ΄λ κ² νλνμ§?βλ₯Ό μ¬ν λͺ»ν¨
λ§λ¬΄λ¦¬: 무μλΆν° λΆμΌκΉ?
- βμ°λ¦¬ λ°μ΄ν°λ₯Ό κ·Όκ±°λ‘ μ μ€λͺ νκ³ μΆλ€β β RAG λ¨Όμ
- βμ¬λ¬ μμ€ν μ 건λλ €μ μ 무λ₯Ό λλ΄κ² νκ³ μΆλ€β β μμ΄μ νΈ μ€μ¬
- λλΆλΆμ μ€μ μλΉμ€ β RAG + μμ΄μ νΈ μ‘°ν© κ²°κ΅ κ°λ°μμ μ€μν 건 λ©μ§ μ©μ΄κ° μλλΌ, μ¬μ©μκ° μνλ κ²°κ³Όλ₯Ό μμ μ μΌλ‘ λ΄λ ꡬ쑰μ λλ€. RAGλ‘ μ§μμ λ¨λ¨ν νκ³ , μμ΄μ νΈλ‘ μ€νλ ₯μ λΆμ΄λ©΄ βλ§ μνλ μ±λ΄βμ λμ΄ βμΌ μνλ κΈ°λ₯βμ κ°κΉμμ§λλ€.
β¬οΈ μ΄ κΈμ΄ λμμ΄ λμ ¨λ€λ©΄, μλ κ΄κ³ λ₯Ό ν λ²λ§ ν΄λ¦ν΄μ£ΌμΈμ! μ μκ² ν° νμ΄ λ©λλ€ πββοΈ β¬οΈ