LangServe Playground 및 설정 가능성
요약
LangServe가 체인과 에이전트를 프로덕션 환경에 배포하는 방법을 개선하며, 이번 업데이트로 '플레이그라운드'와 '설정 가능성(Configurability)' 기능을 추가했습니다. 플레이그라운드는 별도의 UI 없이도 스트리밍 출력 및 중간 단계 로그를 제공하여 협업을 용이하게 합니다. 설정 기능은 다양한 컴포넌트의 매개변수를 제어할 수 있게 하여 실험과 커스터마이징을 극대화합니다.
핵심 포인트
- LangServe는 체인/에이전트를 FastAPI 서버로 쉽게 배포 가능
- 플레이그라운드는 별도 UI 없이 상호작용 및 협업 용이성 제공
- 설정 기능 추가로 다양한 컴포넌트의 매개변수 제어 가능
- 기술적 비전문가도 쉽게 AI 시스템을 실험하고 테스트할 수 있음
지난주 저희는 LangServe를 출시했습니다. 이는 체인(chain)과 에이전트(agent)를 프로덕션 환경에 배포하는 쉬운 방법입니다. 구체적으로, LangServe는 체인을 받아 스트리밍 및 배치 엔드포인트가 있는 FastAPI 서버를 쉽게 구축해 주며, 중간 단계(intermediate steps)를 스트리밍할 수 있는 방법도 제공합니다.
이번 주에는 몇 가지 추가 기능을 구현했습니다. 바로 플레이그라운드(playground)와 설정 가능성(configurability)입니다. 이 두 기능 모두 공통적인 아키텍처, 실험, 그리고 협업이라는 아이디어를 중심으로 합니다.
플레이그라운드 (Playground)
이제 LangServe를 사용하여 체인을 배포하면 무료로 플레이그라운드 경험을 얻게 됩니다. 이 플레이그라운드에서는 특정 설정 가능한 매개변수(추후 더 자세히 설명)의 값을 변경할 수 있을 뿐만 아니라, 다양한 입력을 시도하고 실시간으로 응답을 스트리밍 받아볼 수 있습니다.
아래 스크린샷은 WebLangChain의 플레이그라운드에서 가져온 것이며, 여기에서 접속할 수 있습니다.

이것이 왜 유용할까요?
첫째, 이는 체인과 에이전트를 위한 (단순한) UI를 즉시 제공합니다. 단순하지만 이 UI에는 다음과 같은 필수적인 기능들이 포함되어 있습니다:
- 스트리밍 출력(Streaming outputs)
- 중간 단계의 전체 로그(Full log of intermediate steps)
- 설정 가능한 옵션(Configurable options)
이를 통해 동료들과 링크를 공유하여 그들이 UI에서 상호작용할 수 있게 함으로써, 더 큰 팀 내 협업을 용이하게 할 수 있습니다. 구체적으로 저희는 이 기능이 엔지니어가 비기술적인 사람들에게 자신의 체인/에이전트를 노출하는 쉬운 방법이 될 것이라고 생각합니다 (프런트엔드와 연결할 필요 없이).
둘째, 이는 다양한 매개변수로 실험해 볼 수 있는 방법을 제공합니다. WebLangChain 예제에서는 여러 다른 모델(Anthropic 및 OpenAI)뿐만 아니라 여러 다른 리트리버(retrievers)도 노출했습니다:
이는 기술적인 사람이든 비기술적인 사람이든 어떤 사람이라도 다양한 컴포넌트를 실험해 보기 매우 쉽게 만듭니다.
설정 가능성 (Configurability)
이러한 실험을 가능하게 하는 새로운 기능 중 하나는 '실행 가능한 컴포넌트(runnables)'의 설정입니다. 구체적으로, 우리는 최근 어떤 컴포넌트(또는 컴포넌트의 일부)라도 설정할 수 있도록 문법을 추가했습니다. 이는 LangServe를 사용하든 안 하든 가능하며, 단순히 LangChain Expression Language의 일부일 뿐입니다. 여기에서 저희의 쿡북을 확인해 보세요.
저희는 이제 이 설정을 몇 군데에 노출했습니다. 먼저, 위에서 보았듯이 플레이그라운드에서 쉽게 노출했습니다. 하지만 이 설정은 플레이그라운드 외부에서도 사용할 수 있습니다. 또한 메인 WebLangChain 앱에서도 이를 노출했습니다.

설정을 사용하면 URL을 통해 다양한 버전의 구성을 저장할 수 있습니다. 이는 몇 가지 방식으로 사용될 수 있습니다. WebLangChain에서는 최종 사용자가 UI에서 해당 구성을 사용할 수 있도록 이 기능을 노출합니다. 저희는 이것이 내부 앱에 더 많이 사용될 것이라고 상상합니다. 즉, 내부 사용자가 다른 구성 옵션 중에서 선택하도록 하고 싶을 때입니다. 또한 아래에서 볼 수 있듯이 플레이그라운드에서도 이 기능을 노출하며, 여기서는 주어진 구성을 위한 URL을 복사할 수 있습니다.

참고로, 설정 옵션의 경우 현재 구성은 영구 저장되지 않습니다. 저희는 현재 구성이 영구적으로 유지되고 여러 다른 사용자에게도 저장될 수 있는 배포 플랫폼을 알파 테스트 중입니다. 이것에 관심이 있으시면 [email protected]로 연락 주십시오.
일반적인 아키텍처 (Common Architectures)
저희는 LLM 애플리케이션의 공통적인 아키텍처가 빠르게 등장하고 있음을 확인했습니다. 이러한 아키텍처는 상당히 일반화 가능하며, 여러 가지 방식으로 매개변수화(parametrized)될 수 있습니다. 이 관찰은 많은 작업의 동기가 되고 있습니다.
예를 들어, 지난주 WebLangChain 앱을 살펴보겠습니다. 이것은 검색 증강 생성(retrieval augmented generation)을 목표로 하는 인지 아키텍처이며, 구성할 수 있는 방식들은 다음과 같습니다:
- 답변에 사용할 LLM
- 후속 조치(followups)를 위한 검색 쿼리를 생성하는 데 사용할 프롬프트
- 답변을 생성하는 데 사용할 프롬프트
- 쿼리를 조회하는 데 사용할 리트리버(Retriever)
우리는 앱의 아키텍처가 작동 상태로 만들기 위해 많은 엔지니어링 작업이 필요하다는 것을 알게 되었습니다. 하지만 그 이후에는 상당한 구성(configuration)을 일종의 GUI에서 처리하는 것이 가장 좋습니다. 이는 더 쉬운 협업을 가능하게 합니다.
이러한 통찰력—그리고 이것이 애플리케이션 개발을 위한 좋은 경로라는 믿음—이 이 분야에서 우리의 많은 작업을 주도하고 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 LangChain Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기