LiveKit Agents 소개
LiveKit의 Agents Framework는 AI 기반 에이전트를 쉽게 개발할 수 있도록, 실시간 음성 및 영상 데이터를 처리하고 대화를 관리하는 기능을 제공합니다. 특히, WebRTC와 SIP(Session Initiation Protocol)를 기반으로 한 강력한 미디어 전송 기능과 오픈소스 생태계를 제공해 다양한 AI 기술을 통합할 수 있는 유연성을 자랑합니다.
LiveKit Agents의 주요 기능 중 하나는 음성 파이프라인 에이전트와 멀티모달 에이전트를 통해 사용자와 자연스러운 대화를 가능하게 한다는 것입니다. 특히, 사용자 발화의 끝(End-point)을 자동으로 감지(End-point Detection)하는 자체 모델을 제공하여 대화의 흐름을 개선하고 불필요한 중단을 줄이는 기능이 포함되어 있습니다.
LiveKit Agents의 주요 기능
- 유연한 통합: 음성, 텍스트, 영상 데이터를 처리하기 위해 다양한 AI 모델을 조합하여 사용 가능.
- AI 음성 에이전트:
VoicePipelineAgent
및MultimodalAgent
를 통해 LLM 기반 대화 흐름 관리. - 실시간 미디어 전송: WebRTC 및 SIP를 이용한 고속 오디오, 비디오, 데이터 전송 지원.
- 통신 기능 통합: LiveKit의 통신 스택과 통합되어 전화 송수신 가능.
- 데이터 교환: RPC 및 데이터 API를 활용해 클라이언트와의 데이터 교환 지원.
- 오픈소스: LiveKit Server 포함 전체 스택 오픈소스 제공.
특히, OpenAI와 협력하여 개발된 MultimodalAgent
API를 통해 실시간 데이터 전송이 가능합니다. 이 API는 GPT-4와 사용자 디바이스 간 초저지연 WebRTC 전송을 지원하며, ChatGPT의 고급 음성 기능을 기반으로 작동합니다.
사용 예제는 플레이그라운드에서 확인하거나 가이드를 참고하세요.
통합 가능한 기술
LLM (대규모 언어 모델, Large Language Model)
LiveKit Agents는 OpenAI, Azure OpenAI, Anthropic, Google Gemini 등 다수의 LLM 지원을 지원하며, 플러그인을 통해 간단히 통합할 수 있습니다:
Provider | Package | Usage |
---|---|---|
OpenAI | livekit-plugins-openai | openai.LLM() |
Azure OpenAI | livekit-plugins-openai | openai.LLM.with_azure() |
Anthropic | livekit-plugins-anthropic | anthropic.LLM() |
Google (Gemini) | livekit-plugins-openai | openai.LLM.with_vertex() |
Cerebras | livekit-plugins-openai | openai.LLM.with_cerebras() |
Groq | livekit-plugins-openai | openai.LLM.with_groq() |
Ollama | livekit-plugins-openai | openai.LLM.with_ollama() |
Perplexity | livekit-plugins-openai | openai.LLM.with_perplexity() |
Together.ai | livekit-plugins-openai | openai.LLM.with_together() |
X.ai (Grok) | livekit-plugins-openai | openai.LLM.with_x_ai() |
STT (음성-텍스트 변환, Speech-to-Text)
Azure, Google, Deepgram 등 주요 STT 기술과 통합 가능하며, Whisper와 같은 모델도 지원합니다:
Provider | Package | Streaming | Usage |
---|---|---|---|
Azure | livekit-plugins-azure | ![]() |
azure.STT() |
Deepgram | livekit-plugins-deepgram | ![]() |
deepgram.STT() |
OpenAI (Whisper) | livekit-plugins-openai | openai.STT() | |
livekit-plugins-google | ![]() |
google.STT() | |
AssemblyAI | livekit-plugins-assemblyai | assemblyai.STT() | |
Groq (Whisper) | livekit-plugins-openai | openai.STT.with_groq() | |
FAL (Whizper) | livekit-plugins-fal | fal.STT() |
TTS (텍스트-음성 변환, Text-to-Speech)
Cartesia, ElevenLabs, OpenAI 등을 포함해 스트리밍 및 음성 복제 기능을 지원합니다:
Provider | Package | Streaming | Voice Cloning | Usage |
---|---|---|---|---|
Cartesia | livekit-plugins-cartesia | ![]() |
![]() |
cartesia.TTS() |
ElevenLabs | livekit-plugins-elevenlabs | ![]() |
![]() |
elevenlabs.TTS() |
OpenAI | livekit-plugins-openai | openai.TTS() | ||
Azure OpenAI | livekit-plugins-openai | openai.TTS.with_azure() | ||
livekit-plugins-google | ![]() |
![]() |
google.TTS() | |
Deepgram | livekit-plugins-deepgram | ![]() |
deepgram.TTS() |
활용 예제
LiveKit Agents는 다양한 사용 사례를 지원하며, 제공된 예제를 통해 실시간 음성, 영상, 대화 에이전트를 쉽게 구현할 수 있습니다. 아래는 주요 예제와 링크입니다:
설명 | 데모 링크 | 코드 링크 |
---|---|---|
STT, LLM, TTS 파이프라인을 활용한 기본 음성 에이전트 | 데모 | 코드 |
OpenAI 실시간 API를 활용한 음성 에이전트 | 데모 | 코드 |
Cerebras Llama 3.1을 사용하는 고속 음성 에이전트 | 데모 | 코드 |
Cartesia의 Sonic 모델 기반 음성 에이전트 | 데모 | 코드 |
날씨 정보를 조회하는 함수 호출 에이전트 | N/A | 코드 |
Gemini 2.0 Flash를 사용하는 음성 에이전트 | N/A | 코드 |
커스텀 턴 감지 모델을 사용하는 음성 에이전트 | N/A | 코드 |
RAG 기반 검색을 수행하는 음성 에이전트 | N/A | 코드 |
마지막 발화를 그대로 에코하는 간단한 에이전트 | N/A | 코드 |
RGB 프레임 스트림을 제공하는 영상 에이전트 | N/A | 코드 |
사용자 음성을 텍스트 캡션으로 변환하는 전사 에이전트 | N/A | 코드 |
텍스트 입력에 따라 음성을 생성하는 대화 에이전트 | N/A | 코드 |
로컬 환경에서 다중 에이전트 회의를 지원하는 에이전트 | N/A | 코드 |
Hive를 활용해 스팸/유해 영상을 감지하는 관리 에이전트 | N/A | 코드 |
라이선스
이 프로젝트는 Apache 2.0 라이선스로 공개되어 있습니다. 상업적 사용 및 수정이 자유롭습니다.
LiveKit 공식 문서
LiveKit Agents GitHub (Python
)
https://github.com/livekit/agents
LiveKit Agents GitHub (Javascript
/ TypeScript
)
https://github.com/livekit/agents-js
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~