FAQ가 있는 RAG 워크플로우 만들기 (Agentflow 3.0.0)

FAQ 기반 RAG 워크플로우 동영상 [바로가기arrow-up-right]

1. 워크플로우 구성 예시

agentflow(3.0.0) 버전에서의 FAQ 워크플로우 구성 예시 입니다.

기능은 다음과 같습니다.

  • RAG 워크플로우에 FAQ DB를 추가하여 질문에 알맞는 문서를 찾아 답변할 수 있습니다.

  • 두 문서에서 찾을 수 없는 일반 질의에는 답변할 수 없음을 출력합니다.

1.1 State 정의

  • 이 예시에서는 start 노드에서 faq_answerrag_answer key를 정의했습니다.

1.2 Agent (FAQ) 정의

  • Model 파트 : 서빙 가능한 모델과 파라미터를 설정해줍니다. 여기서는 ChatMnc 를 사용했습니다.

  • Messages 파트 : FAQ 문서 답변 분류를 위한 프롬프트 메시지를 작성합니다.

  • Knowledge 파트: VectorDB와 Embedding Model을 설정해줍니다. 여기서는 Deepsearfing , Mnc Inference Embeddings 을 사용했습니다. Knowledge NameDescribe Knowledge도 작성한 후, 참고한 내용을 함께 확인할 수 있도록 Return Source Documents를 활성화합니다.

  • flow state 파트 : {{output}}faq_answer 에 저장합니다.

프롬프트 예시는 아래와 같습니다.

1.3 Custom Function

Custom Function 노드를 사용해 Threshold function을 만들어줍니다.

이 예시에서는,

  • 변수 agent_output{{agentAgentflow_0}}을 사용했습니다.

  • faq_answer 를 이번 노드의 {{output}}으로 업데이트 했습니다.

임계값을 사용해 FAQ 답변 출력과 해당하지 않는 답변을 분기할 수 있도록 합니다. 임계값은 수정할 수 있습니다. 코드 예시는 아래와 같습니다.

1.4 Custom Function2

Custom Function노드를 사용해 Parse answer를 만들어줍니다.

  • 통과한 FAQ 답변을 user에게 출력할 수 있는 형태로 정제합니다.

  • 같은 질문을 할 경우, 캐시해 바로 출력할 수 있도록 합니다.

  • faq_answer{{output}}을 업데이트 해줍니다.

코드 예시는 아래와 같습니다.

1.5 Condition & Direct Reply

FAQ에 해당하는 값과 아닌 값을 분기합니다.

FAQ 답변은 reply (FAQ) 노드에서 출력 됩니다.

1.6 Agent (RAG) 정의

기본 형식은 Agent (FAQ) 와 동일합니다.

프롬프트 예시는 다음과 같습니다.

2. 출력 확인

출력이 잘 되는지 확인합니다.

2.1 FAQ 답변

2.2 RAG 답변

2.3 General 답변

Last updated

Was this helpful?