13. 다양한 LLM 활용하기 Bedrock과 Azure
지금까지 우리는 주로 OpenAI의 모델을 사용하여 애플리케이션을 구축했습니다. 하지만 LangChain의 가장 큰 장점 중 하나는 특정 언어 모델(LLM) 제공업체에 종속되지 않는다는 것입니다. 이 장에서는 LangChain의 유연성을 활용하여, Amazon Bedrock과 Microsoft Azure에서 제공하는 다른 강력한 LLM들을 우리 코드에 얼마나 쉽게 통합할 수 있는지 배웁니다.
이 장에서 배울 내용
- LLM의 다양성: OpenAI 외에도 Amazon Bedrock, Microsoft Azure 등 다양한 LLM 제공업체가 있음을 이해합니다.
- Amazon Bedrock 연동: LangChain과
boto3
라이브러리를 사용하여 Amazon Bedrock에서 호스팅하는 Anthropic의 Claude 모델을 호출하는 방법을 배웁니다. - Azure OpenAI 연동: LangChain을 사용하여 Microsoft Azure 클라우드에 배포된 OpenAI 모델을 사용하는 방법을 익힙니다.
- LangChain의 추상화: 기본 LLM이 바뀌더라도 LangChain의 핵심 로직(프롬프트, 체인)은 거의 변경되지 않는다는 점을 통해 LangChain의 강력한 추상화 능력을 확인합니다.
12. OpenAI Assistants API로 AI 비서 만들기
이 장에서는 OpenAI의 강력한 Assistants API를 사용하여 한 단계 더 발전된 AI 애플리케이션을 구축합니다. 단순한 일회성 질의응답을 넘어, 대화의 맥락을 기억하고, 외부 도구를 사용하여 정보를 가져오거나 작업을 수행하며, 심지어 사용자가 제공한 파일을 읽고 그 내용을 기반으로 답변하는 ‘AI 비서’를 만드는 전체 과정을 학습합니다.
이 장에서 배울 내용
- Assistants API의 핵심 개념: Assistant, Thread, Message, Run 등 Assistants API를 구성하는 핵심 객체들의 역할과 관계를 이해합니다.
- Tool-Using Assistant: AI 비서가 웹 검색, 데이터베이스 조회 등 외부 세계와 상호작용할 수 있도록 ‘도구(Tool)’를 정의하고 연결하는 방법을 배웁니다.
- 상태 관리(Stateful Conversation):
Thread
를 사용하여 여러 차례의 질문과 답변에 걸쳐 대화의 맥락을 유지하는 방법을 익힙니다. - 비동기 처리 및 Function Calling: AI가 도구 사용을 요청할 때(
requires_action
), 해당 함수를 실행하고 그 결과를 다시 AI에게 전달하는 비동기 상호작용 루프를 구현합니다. - RAG (검색 증강 생성): AI 비서에게 파일을 업로드하여 그 내용을 학습시키고, 파일 기반의 질문에 대해 출처를 인용하며 답변하는 RAG(Retrieval-Augmented Generation) 기능을 구현합니다.
11. ChatGPT 플러그인 만들기 ChefGPT
이 장에서는 지금까지와는 다른 새로운 유형의 애플리케이션, 바로 ChatGPT 플러그인을 만들어 봅니다. FastAPI라는 강력한 Python 웹 프레임워크를 사용하여 API 서버를 구축하고, 이를 ChatGPT와 연동하여 특정 기능을 수행하는 ‘GPT Action’을 구현하는 전체 과정을 배우게 됩니다. 사용자가 입력한 재료에 따라 레시피를 추천해주는 “ChefGPT”를 만들면서 API 개발, 인증, 그리고 벡터 데이터베이스를 활용한 시맨틱 검색까지 다양한 기술을 경험할 것입니다.
이 장에서 배울 내용
- FastAPI 기초: 현대적인 고성능 웹 프레임워크 FastAPI를 사용하여 API 서버를 구축하는 방법을 배웁니다.
- Pydantic 데이터 모델링: API의 요청 및 응답 데이터 구조를 명확하게 정의하고 검증하는 방법을 익힙니다.
- ChatGPT Action 연동: 우리가 만든 API를 ChatGPT 플러그인으로 등록하고 연동하는 과정을 이해합니다.
- OAuth2 인증: 사용자를 대신하여 안전하게 API를 호출할 수 있도록 OAuth2 인증 흐름을 구현합니다.
- Pinecone 벡터 데이터베이스: 키워드 검색을 넘어, 문맥과 의미를 이해하는 시맨틱 검색을 위해 Pinecone 벡터 데이터베이스를 연동하고 활용하는 방법을 배웁니다.
10. InvestorGPT - 자율적으로 조사하고 분석하는 AI 에이전트 만들기
이번 챕터에서는 지금까지 배운 모든 기술을 집약하여, 스스로 생각하고, 도구를 사용하며, 심지어 페르소나(개성)까지 가진 자율적인 AI, **에이전트(Agent)**를 만들어 보겠습니다. LangChain의 가장 강력하고 흥미로운 기능인 에이전트를 통해 “InvestorGPT”를 구축하는 과정을 함께 하겠습니다.
🎯 이번 챕터에서 배울 것
- LangChain Agent: LLM이 외부 도구와 상호작용하며 스스로 문제를 해결하는 에이전트의 개념을 이해합니다.
- Tools: 에이전트가 사용할 수 있는 ‘도구’를 직접 만들고,
DuckDuckGo
검색,Alpha Vantage
금융 API,SQL Database
등 다양한 외부 세계와 연결하는 방법을 배웁니다. - Agent Types:
ReAct
와OpenAI Functions
등 다양한 에이전트 타입의 차이점과 사용법을 익힙니다. - System Prompt: 에이전트에게 “당신은 헤지펀드 매니저입니다”와 같은 역할과 페르소나를 부여하는 방법을 배웁니다.
- Chain of Thought: 에이전트가 어떤 ‘생각’의 흐름으로 문제를 해결해 나가는지 그 과정을 상세히 분석합니다.
9. MeetingGPT - 회의록 분석 및 요약 AI 만들기
안녕하세요! 이번 챕터에서는 회의나 강의 영상으로부터 자동으로 회의록을 만들고, 내용을 요약하고, 궁금한 점을 질문할 수 있는 “MeetingGPT” 애플리케이션을 만들어 보겠습니다. 비디오 파일 처리, 음성 인식, 그리고 LangChain을 이용한 자연어 처리까지 다양한 기술을 경험하게 될 것입니다.
🎯 이번 챕터에서 배울 것
- FFmpeg: 동영상에서 오디오를 추출하는 방법을 배웁니다.
- Pydub: 긴 오디오 파일을 작은 조각으로 나누는 방법을 익힙니다.
- OpenAI Whisper: 음성을 텍스트로 변환하는 STT(Speech-to-Text) 기술을 사용합니다.
- Streamlit: 파일 업로드, 탭, 상태 메시지 등 다양한 UI 컴포넌트를 활용합니다.
- LangChain: Refine Chain을 이용해 긴 문서를 요약하고, RAG(Retrieval-Augmented Generation) 기술로 문서 기반 Q&A 챗봇을 구축합니다.
- Caching: Streamlit의 캐싱 기능으로 앱의 성능을 최적화합니다.
8. 웹사이트 전체를 아는 챗봇, SiteGPT
🎯 이 챕터에서 배울 것
SitemapLoader
를 사용하여 웹사이트의 사이트맵(sitemap.xml
)을 읽고 모든 페이지의 URL을 자동으로 수집하는 방법BeautifulSoup
과 파싱 함수를 사용하여 스크래핑한 HTML에서 불필요한 부분(헤더, 푸터 등)을 제거하고 순수 텍스트만 추출하는 방법- Map-ReRank 체인: 검색된 여러 문서 각각에 대해 답변과 점수를 생성(Map)한 후, 가장 점수가 높은 답변을 선택하여 최종 답변을 구성(ReRank)하는 고급 RAG 기법
- LCEL을 사용하여 Map-ReRank 체인을 직접 구현하는 방법
- Streamlit을 사용하여
SiteGPT
의 전체 UI와 상호작용 로직을 완성하는 방법
7. 구조화된 출력 - QuizGPT 만들기
🎯 이 챕터에서 배울 것
- LLM이 생성하는 텍스트를 우리가 원하는 정확한 형식(JSON)으로 제어하는 방법
WikipediaRetriever
를 사용하여 외부 지식 소스에서 동적으로 콘텐츠를 가져오는 방법- Pydantic/JSON Output Parser: 프롬프트 엔지니어링과 파서를 통해 LLM의 출력을 구조화하는 기법
- Function Calling: 모델이 특정 함수의 인자(argument) 형식에 맞춰 JSON을 생성하도록 강제하는 더 강력하고 안정적인 기법
- 두 개의 체인(퀴즈 생성, 채점)을 연결하여 복합적인 애플리케이션을 구축하는 방법
- Streamlit의
st.form
을 사용하여 여러 개의 질문을 한 번에 제출하고 처리하는 방법
6. OpenAI를 넘어서 - 로컬 LLM과 PrivateGPT
🎯 이 챕터에서 배울 것
- OpenAI API를 사용하지 않고, 내 컴퓨터에서 직접 언어 모델을 실행하는 방법
HuggingFaceHub
: Hugging Face에 호스팅된 모델을 API처럼 사용하는 방법HuggingFacePipeline
: Hugging Face의 모델을 로컬 환경에 다운로드하여 실행하는 방법GPT4All
: 데스크톱 환경에 최적화된 오픈소스 모델을 실행하는 방법Ollama
: 로컬 LLM을 가장 쉽게 설치하고 실행할 수 있는 도구와ChatOllama
연동법OllamaEmbeddings
를 사용하여 임베딩 과정까지 로컬에서 처리하여 완벽한 PrivateGPT 구축하기