웹 검색 가능한 에이전트 만들기 (랭체인, 태블리 AI API, OpenAI 활용)
본 영상에서는 랭체인(Langchain), 태블리 AI API, 그리고 OpenAI 모델을 활용하여 웹 검색이 가능한 에이전트를 만드는 과정을 설명합니다. 주요 내용은 다음과 같습니다.
1. 환경 설정 및 기본 정의:
- OpenAI API 키와 태블리 AI API 키를 환경 변수에 설정합니다.
- 대화 메시지들을 저장하기 위한 상태(state)를 정의합니다.
2. 툴 노드 (Tool Node) 구축:
- 사용자 정의 툴을 노드로 변환하는 라이브러리인 툴 노드를 설명합니다.
- 툴 노드는 초기화 함수와 호출 함수를 포함하는 클래스입니다.
- 초기화 함수: 툴의 이름을 설정하고 툴 목록을 저장합니다.
- 호출 함수: 메시지를 받아 툴 호출 세부 사항과 인수를 추출하고,
invoke함수를 통해 실행합니다. 결과는 JSON 형식으로 저장됩니다.
3. 웹 검색 도구 활용:
- 랭체인 커뮤니티에서
Tabula Search Results를 사용하여 웹 검색을 처리합니다.
4. 챗봇(Chatbot) 정의:
- OpenAI GPT-4 모델을 이용하여 챗봇을 정의합니다.
bind_tools메서드를 사용하여 툴을 모델에 연결합니다.- 에이전트 노드는 상태 정보를 LLM with tools 함수에 전달하여 생성합니다. 결과를 상태 메시지 키에 저장합니다.
5. 상태 그래프(State Graph) 구성:
- 정의된 챗봇 및 툴 노드를 사용하여 상태 그래프를 구성합니다.
- LLM 챗봇 노드와 툴 실행 노드를 정의합니다.
- 챗봇과 툴 노드 간에 엣지를 연결합니다.
6. 조건부 엣지(Conditional Edge) 설정:
tools condition을 사용하여 도구를 실행할지 여부를 결정하는 조건부 엣지를 설정합니다.- 그래프의 시작점은 챗봇으로 설정하고, 실행 가능한 그래프로 컴파일합니다.
7. 에이전트 실행 및 예시:
- “한국 대통령이 누구냐”와 같은 질문은 웹 검색을 트리거하여 툴을 실행합니다.
- 직접 답변 가능한 질문은 검색 도구를 사용하지 않습니다.
- 랭체인 스튜디오를 통해 그래프의 실시간 동작을 관찰합니다.
8. 랭체인 스튜디오 활용:
- 실시간으로 챗봇과 툴의 실행 흐름을 시각적으로 확인합니다.
- 시작 노드에서 LLM 노드로, 필요한 경우 툴 노드로 이동하고, 다시 챗봇으로 돌아와 최종 답변을 생성하는 과정을 보여줍니다.
- 검색 결과를 이용하여 정확한 답변을 제공하는 것을 보여줍니다.
결론:
본 영상은 랭체인, 태블리 AI API, OpenAI 모델을 사용하여 검색 기능을 갖춘 에이전트를 효과적으로 구축하는 방법을 제시합니다. 랭체인 스튜디오는 그래프의 실시간 동작을 이해하는 데 중요한 역할을 합니다.