This repository is a production-grade application for building real-time voice agents, primarily designed as an educational course but structured for actual deployment. It implements a complete voice call center system capable of receiving and making phone calls via Twilio, transcribing speech using various STT models (Moonshine, Whisper, Faster Whisper), reasoning with LLMs (Groq), searching property data using Superlinked and Qdrant, and generating speech using TTS models (Kokoro, Orpheus). The architecture is a modular monolith built with FastAPI, utilizing Docker for containerization and RunPod for GPU-accelerated model inference. While the repository includes Jupyter notebooks for educational purposes (Lesson 1-4), the core value lies in the `src/realtime_phone_agents` package, which encapsulates the agent logic, avatar system, and infrastructure integrations. The code demonstrates high craftsmanship in handling async audio streaming, managing external API dependencies, and implementing a flexible avatar registry system. It is suitable for engineers looking to build voice AI applications or understand the integration of LLMs with real-time audio pipelines.
This repository is the official Twilio SendGrid Java SDK, providing a comprehensive client library for the SendGrid v3 Web API. Its primary purpose is to enable Java applications to send transactional and marketing emails, manage suppression lists, retrieve email statistics, and interact with all other SendGrid API endpoints. The library is designed as a thin HTTP client wrapper, with a core `SendGrid` class that accepts an API key and exposes synchronous (`api()`) and asynchronous (`attempt()`) methods for making REST calls. A high-level `Mail` helper simplifies building complex email payloads with personalizations, attachments, tracking settings, and templates. The architecture follows a clean separation: the `BaseInterface` handles HTTP client configuration, rate limiting (automatic retry on 429), data residency (EU/global regions), and subuser impersonation. The `Request`/`Response` POJOs provide a uniform interface for all API calls. The library includes a robust event webhook verification module (`EventWebhook.java`) using ECDSA signatures, and a builder pattern for attachments that supports both `InputStream` and `String` content. External dependencies include Jackson for JSON serialization, Bouncy Castle for cryptography, and Apache Commons Codec. The codebase is well-structured with extensive examples covering all major API endpoints, unit tests using JUnit 4 and Mockito, and CI/CD via GitHub Actions. While the test file is large and repetitive, the core abstractions are clean and the library is actively maintained. It is not a data research or analytics tool; it is purely an API client library intended for integration into Java applications.