Skip to main content

A FastAPI router + Twilio⇆OpenAI realtime streaming helper

Project description

awesome_caller_boi

A small Python package that exposes a FastAPI router to connect Twilio’s voice streaming directly to the OpenAI realtime API (GPT-4o). It handles incoming calls, establishes the WebSocket media stream with Twilio, forwards audio to OpenAI, and sends back OpenAI’s audio response to the caller.

Features

  • Provides a FastAPI router for Twilio voice webhooks.
  • Streams inbound audio from Twilio to OpenAI in real time.
  • Encodes and forwards OpenAI’s audio responses back to Twilio.
  • Automatically handles speech interruptions (caller starts speaking mid-response).
  • Easy to configure with your own get_system_message() and get_system_greeting() callbacks.
  • Put your OpenAi key in your enviornment variables and call it OPENAI_API_KEY

Installation

From PyPI (once published):

pip install awesome_caller_boi

## Usage Example 

from awesome_caller_boi.call_handler import create_call_router
from models.transcripts import Transcript

def my_middleware_fn(transcript: Transcript) -> dict:
    # extract name, order, etc., or send it to your database
    print("Got a finished call from:", transcript.phone_number)
    print("Full transcript text:", transcript.call_text)
    return {"status": "ok"}

app.include_router(
    create_call_router(
        get_system_message=my_system_message,
        get_system_greeting=my_system_greeting,
        voice="alloy",
        on_call_complete=my_middleware_fn
    )
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awesome_caller_boi-0.2.0.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

awesome_caller_boi-0.2.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file awesome_caller_boi-0.2.0.tar.gz.

File metadata

  • Download URL: awesome_caller_boi-0.2.0.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for awesome_caller_boi-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c8af9e327041fe2ade60601adf3b1f24863dbf8e3dd6e16484bb3939dada86cf
MD5 f27887c67f6a5033a000a55a23afdf62
BLAKE2b-256 0c8fac73a4cb3df6ac4271a1d7e8f8726a6c3db632490246994ecf7d6548edd1

See more details on using hashes here.

File details

Details for the file awesome_caller_boi-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for awesome_caller_boi-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fdc60c15fc44637aef272dce912fa6826a4e46a528c2acf1ced7d5a03224f7a7
MD5 fa466b6842cfe13e6047cc8660cb43e7
BLAKE2b-256 829c332b7d3dc72a9da31183d047dcd9fdc9c3b0b4d4f0c3ff7133046ccef2c0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page