agent 4

#19 ChatGPT에서 질문과 관련된 웹페이지 크롤링하기

조대협 (http://bcho.tistory.com) Langchain 에서 Agent가 사용하는 Tool을 사용자가 쉽게 개발해서 추가할 수 있다. 이번 예제에서는 DuckDuckSearch Tool을 이용하여, 질문에 관련된 웹사이트를 검색한후, 그 중 한 웹사이트의 내용을 크롤링해서 웹페이지 내용을 읽어온후에, 이를 요약하는 예제를 만들어 본다. 이를 위해서 웹페이지를 크롤링하는 툴을 BeautifulSoup 을 이용해서 만들어 본다. 커스텀 툴을 정의하는 방법은 몇가지가 있는데, 이 예제에서는 데코레이터를 사용하는 방법과 StructuredTool을 사용하는 방법 두가지를 살펴보자. 먼저 decorator를 사용하는 방법이다. HEADERS = { 'User-Agent': 'Mozilla/5.0 ..

#18.LangSmith를 이용한 Langchain agent 내부 동작 구조 이해

앞의 예제는 agent를 생성할때 initialize_agent를 사용하는 방식으로 Langchain 0.1.0 까지는 지원하지만 deplicate 될 예정이고 새 버전의 create_react_agent 함수를 사용하기를 권장하고 있다. create_react_agent를 사용하려면 직접 agentExecutor도 선언해야 하고, 프롬프트도 정의해야하기 때문에 기존 방식에 비해서 다소 번거롭지만 좀 더 많은 컨트롤을 할 수 있다. 이번에는 create_react_agent를 이용하는 방식을 설명하면서 내부적으로 agent가 어떻게 동작하는지를 자세하게 살펴보고, 더불어서 langsmith 모니터링 툴을 이용하여, agent에서 내부의 동작을 어떻게 모니터링하고 추적하는지에 대해서 알아보록 한다. Lan..

Langchain을 이용한 LLM 애플리케이션 구현 #17-ChatGPT 구글 검색 엔진과 연동하기

Agent/Tool 을 이용하여 ChatGPT와 구글 검색엔진 연동하기 조대협 (http://bcho.tistory.com) LLM 모델은 기본적으로 학습 당시에 저장된 데이터만을 기반으로 답변을 한다. RAG를 이용하여 외부의 벡터 데이터 베이스에 있는 내용을 참고하여 지식 데이터를 확장할 수 있지만, 이 역시 저장한 문서에만 해당된다. LLM 애플리케이션을 데이터를 확장하고 싶다면? 예를 들어 LLM에 저장되지 않은 데이터를 구글 서치 엔진을 통해서 검색해서 참고하거나 유투브의 비디오 스크립트를 참고할 수 있다면? 아니면 회사내의 데이터베이스의 정보를 참고해서 답변을 할 수 있다면? 이러한 요구사항에 부합하여 LLM이 외부 정보를 참고하여 답변을 할 수 있도록 기능을 제공하는 컴포넌트가 langcha..

LLM 애플리케이션 개발을 위한 Langchain - #2 주요 컴포넌트

Langchain의 주요 구성 요소 소개 조대협 (http://bcho.tistory.com) Langchain이 어떤 컴포넌트로 구성되어 있는지 살펴보자. 2023년 12월 현재 Langchain 라이브러리는 많은 업데이트가 있어서 이전 버전에 비교해서 컴포넌트 구성이나 기능이 다소 변경되었다. Langchain을 구성하는 주요 컴포넌트로는 Model, Prompt Template, Output Parser, Chain, Agent, Retrieval이 있다. 각각의 컴포넌트에 대해서 살펴보자. Model 먼저 Model 컴포넌트는 LLM 모델을 추상화하여 제공한다. 모델 컴포넌트는 입력으로 들어온 프롬프트에 대해서 텍스트 답변을 리턴하는 기능을 제공한다. Langchain은 다양한 LLM 모델을 지원..