4️⃣AutoGen: Writing Blog Post with LangChain

About AutoGen

AutoGen은 Microsoft에서 개발한 Autonmous Agent 작업을 해결하기 위해 서로 대화할 수 있는 여러 에이전트를 사용하여 LLM 애플리케이션을 개발할 수 있는 프레임워크입니다. AutoGen 에이전트는 사용자 지정이 가능하고 대화가 가능하며 사람의 참여를 원활하게 허용합니다. LLM, 사람 입력, 도구를 조합하여 다양한 모드로 작동할 수 있습니다.

AutoGen Overview

AutoGen 주요 기능

  • AutoGen을 사용하면 최소한의 노력으로 멀티 에이전트 대화를 기반으로 차세대 LLM 애플리케이션을 구축할 수 있습니다. 복잡한 LLM 워크플로우의 오케스트레이션, 자동화 및 최적화를 간소화합니다. LLM 모델의 성능을 극대화하고 약점을 극복합니다.

  • 복잡한 워크플로우를 위한 다양한 대화 패턴을 지원합니다. 개발자는 맞춤형 대화가 가능한 에이전트를 통해 AutoGen을 사용하여 대화 자율성, 에이전트 수, 에이전트 대화 토폴로지와 관련된 다양한 대화 패턴을 구축할 수 있습니다.

  • 다양한 복잡성을 가진 작업 시스템 모음을 제공합니다. 이러한 시스템은 다양한 도메인과 복잡성을 가진 광범위한 애플리케이션에 걸쳐 있습니다. 이는 AutoGen이 다양한 대화 패턴을 쉽게 지원할 수 있는 방법을 보여줍니다.

  • AutoGen은 python 사용시 pyautogen 으로 사용할 수 있습니다.

LangChain과 함께 사용 가능하며, AutoGen은 다중 에이전트 프레임워크인 반면 LangChain은 단일 에이전트 프레임워크입니다. 차이점은 AutoGen은 코드 생성에 더 중점을 두는 반면, LangChain은 범용 LLM 개발에 더 중점을 둡니다.

Generate Blog Post: AutoGen with LangChain

AutoGen을 LangChain과 함께 활용하여 PDF Loader로 읽은 Conversational RAG 기반으로 블로그 포스트를 생성하는 예제를 실행해 보겠습니다.

Setup Environments

Config List

Read PDF

  1. PDF 파일을 업로드하여 처리하고, PyPDF2를 사용하여 PDF 파일을 읽습니다.

  2. LangChain의 TextSplitter는 텍스트를 청크로 분할하는 데 사용됩니다.

  3. PDF 파일을 임베딩하기 위해 OpenAIEmbeddings를 사용하여 VectorStore를 생성하기 위해 FAISS를 사용합니다.

Conversation Retrieval

Assistant Agent Configuration

특정 구성으로 "assistant"라는 이름의 자동화된 어시스턴트 에이전트를 만들어 보겠습니다.

어시스턴트는 사용자와 상호 작용하고 정확한 답변을 제공하도록 설계되었습니다. 이렇게 하면 어시스턴트가 PDF를 읽고 정확한 답변을 생성(llm)할 수 있습니다.

UserProxy Agent

UserProxyAgent는 사용자를 대신하여 작동하는 AI 에이전트 유형입니다. 구현은 일반적이지만 고유한 기능인 function_map 매개변수가 포함되어 있습니다.

이 매개변수는 함수 호출에 대한 구성을 실제 함수와 연결하여 원활한 통합 및 작동을 보장하는 데 사용됩니다.

Run Chat

Agent가 설정되면 스크립트는 사용자와 챗봇 간의 대화를 시작합니다.

user_proxy 객체에서 initiate_chat 메서드를 호출하여 수행됩니다.

initiate_chat 메서드에는 챗봇 역할을 하는 어시스턴트 인스턴스와 논의할 작업을 간략하게 설명하는 문자 메시지라는 두 가지 매개 변수가 필요합니다.

Last updated