bolna-ai/bolna

Conversational voice AI agents

해결하는 문제

음성 어시스턴트를 처음부터 구축하려면 전화 수신, 음성 전사, 말할 내용을 결정하는 LLM 실행, 음성 합성, 실시간 스트리밍 등 많은 부분을 연결해야 합니다. Bolna는 이러한 오케스트레이션을 처리하므로 간단한 JSON 구성이나 몇 줄의 Python으로 완전한 음성 에이전트를 정의하고 이미 사용 중인 음성, 언어, 전화 제공업체를 연결할 수 있습니다.

작동 방식

Bolna는 WebSocket을 통해 데이터 스트림으로 대화 파이프라인을 실행합니다. 오디오는 전화 제공업체(Twilio, Plivo 등)에서 들어오고, ASR 제공업체(Deepgram, Azure 또는 자체 호스팅 서비스)가 전사하며, 전사된 텍스트는 LLM(OpenAI, DeepSeek, Llama, Mistral 등, LiteLLM을 통해)에 전송되고, 모델의 응답은 TTS 제공업체(ElevenLabs, AWS Polly, OpenAI 등)가 음성으로 변환하여 발신자에게 스트리밍됩니다. 각 단계에서 제공업체와 모델을 선택하여 에이전트를 정의하면 Bolna가 연결합니다. README에는 Assistant를 만들고, 전사기, LLM 에이전트, 합성기가 포함된 대화 작업을 추가한 다음, 이를 청크의 비동기 스트림으로 실행하는 최소한의 Python 예제가 나와 있습니다. 전화 통화의 경우 로컬 Docker 설정이 전화 서버, Bolna 서버, 터널링용 ngrok, 에이전트 데이터 영속화용 Redis를 제공합니다.

대상 사용자

음성 기반 대화 어시스턴트(전화 지원 봇, 음성 인터페이스 또는 전화로 사람과 대화하는 모든 자동화)를 빠르게 구축하려는 개발자와 팀을 위한 것입니다. 직접 실행할 수 있고, 새로운 제공업체로 확장하거나, 자체 호스팅 또는 엔터프라이즈 솔루션의 백본으로 사용할 수 있는 오픈소스 오케스트레이션 레이어를 원하는 사람들에게 적합합니다.

주요 특징

  • 제공업체 중립: 에이전트 로직을 변경하지 않고 ASR, LLM, TTS 제공업체를 혼합하여 사용할 수 있습니다.
  • 스트리밍 우선: 오디오와 텍스트가 비동기적으로 흘러 실시간 상호작용이 가능합니다.
  • 간단한 API: 몇 줄의 Python으로 에이전트를 정의하거나 JSON으로 구성합니다.
  • 완전한 전화 테스트 환경을 위한 로컬 Docker 설정.
  • 확장 가능: 기본 클래스를 확장하여 새로운 전화 또는 음성 제공업체를 추가할 수 있습니다.
  • 활발한 커뮤니티: MIT 라이선스, PR 환영, Discord 채널 제공.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트