Skip to content
Kendrick's Website Kendrick's GitHub Kendrick's Youtube Kendrick's Travel blog

Assistants API는 LangChain을 대체할 수 있을까?

15 min read
Cover

들어가기 전

이 글의 목적은 2024년 2월 현재 시점에서 OpenAI의 Assistants API가 LangChain을 대체할 수 있는지에 대한 분석입니다. 이를 위해 먼저 LangChain과 Assistants API에 대해 소개하고, 둘 사이의 주요 특징을 비교한 후, 이들이 서로 대체 가능한지에 대한 개인적인 의견을 제시합니다.

LangChain과 Assistants API는 모두 자연어 처리(NLP) 작업을 용이하게 하는 도구이지만, 각각의 접근 방식과 제공 기능에 차이가 있습니다. 이 차이점을 이해하는 것이 두 도구 간의 대체 가능성을 평가하는 데 중요합니다.

둘 다 사용해 본 분이라면 이미 알 수 있는 내용일 수 있지만, OpenAI 문서에서 LangChain에 대해 전혀 언급하지 않기 때문에 이해를 돕기 위한 간단한 설명도 포함했습니다.

우선 LangChain과 OpenAI의 Assistants API에 대한 간단한 소개로 시작합니다.

1. LangChain 소개

LangChain은 오픈소스이며, LLM(대규모 언어 모델) 애플리케이션을 구축하기 위한 통합 API 레이어입니다.

"LangChain"은 다양한 프로그래밍 언어, 특히 Python을 사용하여 자연어 처리(NLP) 작업을 수행하는 데 사용되는 오픈 소스 라이브러리입니다. 이 라이브러리는 여러 NLP 모델과 작업에 대한 고수준의 추상화를 제공하여, 사용자가 복잡한 NLP 파이프라인을 쉽게 구축하고 관리할 수 있도록 지원합니다. LangChain은 대화형 애플리케이션, 문서 요약, 질문 응답 시스템 등 다양한 NLP 기반 프로젝트에 적용될 수 있습니다.

LangChain의 주요 특징은 다음과 같습니다:

  1. 모듈화 및 확장성: 여러 NLP 모델과 기술을 통합하는 모듈식 프레임워크를 제공합니다. 사용자는 필요에 따라 쉽게 사용자 정의 모델을 추가하거나 기존 모델을 변경할 수 있습니다.
  2. 다양한 NLP 작업 지원: 텍스트 생성, 분류, 번역, 요약 등 다양한 NLP 작업을 지원합니다.
  3. 사용자 친화적 인터페이스: 사용하기 쉬운 인터페이스를 통해, 프로그래밍 경험이 적은 사용자도 복잡한 NLP 작업을 수행할 수 있습니다.
  4. 커뮤니티 및 개방성: 오픈 소스 라이브러리로서 커뮤니티의 기여와 협력을 장려하며, 개발자는 소스 코드에 기여하거나 기능을 개선할 수 있습니다.

LangChain은 교육, 연구, 개발 등 다양한 분야에서 유용하게 사용될 수 있으며, Python 기반 프로젝트에서 NLP 기능을 쉽게 통합하고자 하는 개발자들에게 특히 유용합니다

Introduction - LangChain

RAG (Retrieval-Augmented Generation)

LangChain으로 구현할 수 있는 서비스들

  1. 대화형 챗봇: Assistants API를 활용해 다양한 주제에 대해 응답할 수 있는 챗봇을 만들 수 있습니다. 고객 지원, FAQ 답변, 일상 대화 등에 사용될 수 있습니다.
  2. 교육 및 학습 보조 도구: 맞춤형 학습 경험을 제공하는 인터랙티브 교육 도구를 개발할 수 있습니다. 언어 학습 도우미, 역사적 사건에 대한 대화형 설명, 과학적 개념에 대한 질의응답 등이 예로 들 수 있습니다.
  3. 음성 인식 대화 시스템: Assistants API를 통해 음성 인식 기능을 통합하여 음성 기반 대화 시스템을 구현할 수 있습니다. 예를 들어, 음성 명령으로 작동하는 스마트 홈 제어 시스템이나 개인 비서 서비스 등이 있습니다.
  4. 사용자 맞춤형 추천 시스템: 사용자의 대화 내용을 분석하여 맞춤형 추천을 제공하는 시스템을 구축할 수 있습니다. 책이나 영화 추천, 여행지 추천 등이 가능합니다.
  5. 자동 문서 요약 및 분석 도구: 대량의 텍스트 데이터를 분석하고 요약하는 기능을 포함한 대화형 도구를 개발할 수 있습니다. 사용자가 특정 문서에 대해 질문할 경우, 시스템이 해당 내용을 요약해서 제공합니다.

이전까지는 ChatGPT와 같은 LLM을 좀 더 다양한 목적에 맞게 사용하기 위해 LangChain을 통해 위와같은 서비스들을 개발할 수 있었으나, OpenAI에서 갑작스럽게 Assistants API를 발표했습니다.

사족이지만, 사실 갑작스러운 일은 아닙니다. OpenAI에서 CoreValue를 AGI 개발에 좀 더 중점을 두기로 변경한 이후로 예상되던 행보지만 생각보다 빠르게 릴리즈 되었습니다.

https://www.semafor.com/article/10/12/2023/openai-quietly-changed-its-core-values

2. Assistants API 소개

2023년 11월 6일, OpenAI에서 Assistants API라는 새로운 기능을 출시했습니다. 현재(2024년 1월 기준) 이 API는 아직 베타 버전입니다. API나 사용법이 언제 변경될지 알 수 없기 때문에 관련 최신 내용은 아래 링크에서 확인하시길 바랍니다.

Assitants API Overview - OpenAI

시스턴트는 지침을 받아 모델, 도구, 지식을 활용하여 사용자의 쿼리에 응답할 수 있습니다. 현재 Assistants API는 코드 인터프리터, 검색, 함수 호출 등 세 가지 유형의 도구를 지원합니다. 향후에는 더 많은 OpenAI 기반 도구를 출시하고, 사용자가 플랫폼에서 자체 도구를 제공할 수 있도록 지원할 예정입니다.

Assistants API의 기능을 살펴보려면 어시스턴트 플레이그라운드를 사용하거나 이 가이드에 설명된 단계별 통합을 구축할 수 있습니다. 일반적으로 Assistants API 통합의 흐름은 다음과 같습니다.

구현할 수 있는 서비스

  1. 대화형 챗봇: Assistants API를 활용하여 다양한 주제에 대해 응답할 수 있는 챗봇을 만들 수 있습니다. 고객 지원, FAQ 답변, 일상 대화 등에 활용될 수 있습니다.
  2. 교육 및 학습 보조 도구: 맞춤형 학습 경험을 제공하는 인터랙티브 교육 도구를 개발할 수 있습니다. 언어 학습 도우미, 역사적 사건에 대한 대화형 설명, 과학적 개념에 대한 질의응답 등이 예로 들 수 있습니다.
  3. 음성 인식 대화 시스템: Assistants API를 통해 음성 인식 기능을 통합하여 음성 기반 대화 시스템을 구현할 수 있습니다. 음성 명령으로 작동하는 스마트 홈 제어 시스템이나 개인 비서 서비스 등이 이에 해당합니다.
  4. 사용자 맞춤형 추천 시스템: 사용자의 대화 내용을 분석하여 맞춤형 추천을 제공하는 시스템을 구축할 수 있습니다. 책이나 영화 추천, 여행지 추천 등이 가능합니다.
  5. 자동 문서 요약 및 분석 도구: 대량의 텍스트 데이터를 분석하고 요약하는 기능을 포함한 대화형 도구를 개발할 수 있습니다. 사용자가 특정 문서에 대해 질문하면, 시스템이 해당 내용을 요약해서 제공합니다.

LangChain의 Agent와 같은 기능을 지원하며, 라이브러리 사용이나 설정 없이 OpenAI 자체에서 지원합니다.

Pricing

  • 2024.02월 현재까지 기본 기능은 무료입니다.
  • 코드 인터프리터나 검색(Retriever)와 같은 특정 기능에는 가격 정책이 적용됩니다.

Tools

현재 Assistants API는 몇 가지 기본 도구를 지원합니다:

Threads

  • 메시지를 추가하며 자체적으로 메모리를 관리합니다.
  • LangChain의 메모리 기능처럼, 대화 내용을 압축하거나 오래된 내용을 삭제하여 스레드 내의 대화 정보를 유지합니다. LangChain Memory

결론

  • LangChain: 개발자가 자신의 애플리케이션에 맞춰 맞춤형 NLP 솔루션을 구축하고자 할 때 적합합니다. 확장성과 커스터마이징이 중요한 요소입니다.
  • Assistants API: 빠르고 쉽게 고급 NLP 기능을 통합하고자 하는 사용자에게 적합합니다. 사용의 용이성과 사전 훈련된 모델의 강력함이 핵심입니다.

각각의 도구는 서로 다른 요구 사항과 사용 사례에 맞게 설계되었으므로, 선택은 특정 프로젝트의 목적과 필요에 따라 달라질 수 있습니다.

시기상조

위 이미지는 ChatGPT로 시기상조라는 키워드로 만들었습니다. ChatGPT가 봄날 아직 꽃이 피지 않은 나무 아래 서 있는 사람을 담백하고 서정적으로 묘사하고 있다고 설명하네요 ㅋㅋ

다시 돌아와서, Assistants API는 아직 실제 서비스에서 사용하기에는 시기상조라는 생각입니다

  • Beta 버전의 제한성: Assistants API가 출시된 지 얼마 되지 않아 Beta 기능으로 제공되고 있으며, 이로 인해 일부 단점이나 제한 사항이 존재합니다.
  • 스트리밍 미지원: 현재 Assistants API는 스트리밍을 지원하지 않으며, 이는 실시간 데이터 처리나 대규모 데이터 처리에 있어서 제약이 될 수 있습니다.
  • 지속적인 상태 확인 필요: 쓰레드나 메시지 상태를 지속적으로 체크해야 하는 번거로움이 있습니다. 이는 자동화된 관리나 모니터링 도구의 부재를 의미합니다.
  • 관리 및 모니터링 도구의 부재: 현재로서는 상태를 쉽게 볼 수 있는 도구나 관리 기능이 제공되지 않고 있습니다. 만약 세션 상태가 만료되면, 해당 세션은 사라지게 되며, 이는 히스토리나 로그를 별도로 기록해야 하는 추가 작업을 요구합니다.

현재 Beta 버전에서 제공되지 않는 이러한 기능들은 향후 업데이트에서 제공될 가능성이 있습니다. 개선이 기대되는 부분들이며, 이러한 기능이 추가되면 Assistants API의 사용성과 실용성이 크게 향상될 것으로 예상됩니다.

LangChain은 LangSmith 및 기타 서비스를 추가로 제공하며, OpenAI도 계속해서 빠른 업데이트를 진행하는 가운데, LangChain과 OpenAI가 서로 영향을 받아 새로운 것이 나오니 흥미롭습니다.