RTAC (French for "will always respond with certainty") is a play on words responding to RSVP - a plug-and-play AI assistant platform for event organizers. Bring your event details, and RTAC spins up a custom AI chat that answers questions about your event.
RTAC is a comprehensive AI assistant platform that transforms any event into an intelligent, conversational experience. Whether you're organizing a conference, workshop, meetup, or any gathering, RTAC provides:
- π€ Custom AI Assistant: Personalized AI that knows your event inside and out
- π Event Management: Schedule, speakers, sessions, and venue information
- π§ Navigation & Logistics: Directions, transportation, and venue details
- π¬ Interactive Support: Real-time answers to attendee questions
- π Web Integration: Dynamic data fetching from your event website
- π± Modern UI: Beautiful, responsive chat interface
- Python 3.13 or higher
- Node.js 18+ (for frontend)
- Poetry (for Python dependency management)
- Docker & Docker Compose (recommended)
- Google API Key (for Google ADK and Maps)
-
Clone the repository
git clone <repository-url> cd RTAC
-
Set up environment variables
cp env.example .env # Edit .env with your API keys and event configuration -
Add your event data
# Place your event CSV files in the data/ directory # Update speakers.json with your speaker information
-
Build and run with Docker
docker-compose up --build
-
Access your event AI assistant
- Frontend: http://localhost
- API Docs: http://localhost/docs
- Health Check: http://localhost/api/v1/agents/health
-
Clone and set up backend
git clone <repository-url> cd RTAC cp env.example .env poetry install
-
Set up frontend
cd frontend npm install -
Configure your event
# In your .env file: GOOGLE_API_KEY=your_google_api_key_here GOOGLE_MAPS_API_KEY=your_google_maps_api_key_here CONFERENCE_VENUE_NAME=Your Event Venue CONFERENCE_VENUE_ADDRESS=Your Venue Address CONFERENCE_VENUE_COORDINATES=lat,lng CONFERENCE_DATES=Your Event Dates SUPPORT_PHONE=Your Support Phone SUPPORT_EMAIL=Your Support Email -
Run the applications
# Terminal 1 - Backend poetry run python main.py # Terminal 2 - Frontend cd frontend npm run dev
RTAC/
βββ app/
β βββ agents/
β β βββ apiconf_agent.py # Main AI agent implementation
β β βββ tools/
β β βββ navigation_tools.py # Maps, directions, transportation
β β βββ speaker_tools.py # Speaker information
β β βββ schedule_tools.py # Event scheduling
β β βββ organizer_tools.py # Event organization
β β βββ calendar_tools.py # Calendar integration
β β βββ csv_schedule_tools.py # CSV data processing
β β βββ web_scraping_tools.py # Data extraction from websites
β βββ config/
β β βββ settings.py # Environment configuration
β β βββ logger.py # Logging setup
β βββ schemas/
β β βββ base.py # Base response schemas
β β βββ agents.py # Agent request/response models
β βββ services/
β β βββ agent_config.py # Agent configuration
β β βββ agent_factory.py # Agent creation
β β βββ message_processor.py # Message handling
β β βββ response_formatter.py # Response formatting
β β βββ response_processor.py # Response processing
β β βββ session_manager.py # Session management
β β βββ tool_manager.py # Tool management
β β βββ web_scraping_service.py # Web scraping functionality
β βββ api/
β βββ v1/
β βββ agents_router.py # FastAPI endpoints
βββ frontend/
β βββ src/
β β βββ components/
β β β βββ Chat.tsx # Chat interface
β β β βββ Sidebar.tsx # Navigation sidebar
β β β βββ TypingIndicator.tsx # Loading animations
β β βββ App.tsx # Main React app
β β βββ main.tsx # React entry point
β βββ package.json # Frontend dependencies
β βββ vite.config.ts # Vite configuration
βββ data/
β βββ speakers.json # Speaker information
β βββ *.csv # Event schedule and data
βββ docker/
β βββ Dockerfile # Backend container
β βββ nginx/
β βββ Dockerfile # Nginx container
β βββ nginx.conf # Nginx configuration
βββ scripts/
β βββ update_csv_data.py # Data update automation
β βββ run_csv_update.sh # Update script runner
βββ pyproject.toml # Python dependencies
βββ docker-compose.yml # Container orchestration
βββ env.example # Environment variables template
βββ main.py # FastAPI application entry
βββ README.md # This file
POST /api/v1/agents/chatRequest Body:
{
"message": "What sessions are happening today?",
"user_id": "user123",
"session_id": "session456"
}Response:
{
"success": true,
"response": "Here are today's sessions...",
"user_id": "user123",
"session_id": "session456",
"confidence": 0.9,
"metadata": {
"user_id": "user123",
"session_id": "session456",
"timestamp": 1703123456.789,
"tools_used": []
}
}GET /api/v1/agents/statusGET /api/v1/agents/healthOnce the server is running, visit:
- Swagger UI: http://localhost/docs
- ReDoc: http://localhost/redoc
The project follows a modular architecture:
app/agents/: AI agent implementation and toolsapp/config/: Configuration and settings managementapp/schemas/: Pydantic models for API requests/responsesapp/api/: FastAPI routes and endpointsapp/services/: Business logic and external service integrationsfrontend/: React application with TypeScriptdata/: Static data files (speakers, schedule)
- Create a new tool file in
app/agents/tools/ - Implement your tool functions following Google ADK conventions
- Register the tool in
app/agents/apiconf_agent.py - Update the agent instructions if needed
Example tool:
# app/agents/tools/my_tool.py
from google.adk.tools import FunctionTool
def my_tool_function(param: str, **kwargs) -> Dict[str, Any]:
"""My custom tool function."""
return {
"success": True,
"result": f"Processed: {param}"
}
def get_my_tools() -> List[FunctionTool]:
"""Get my custom tools."""
return [
FunctionTool(
name="my_tool",
description="A custom tool for processing data",
function=my_tool_function
)
]| Variable | Description | Required | Default |
|---|---|---|---|
GOOGLE_API_KEY |
Google ADK API key | Yes | - |
GOOGLE_MODEL_NAME |
Google model to use | No | gemini-2.5-flash |
GOOGLE_MAPS_API_KEY |
Google Maps API key | Yes | - |
DATABASE_URL |
PostgreSQL database URL | Yes | - |
REDIS_URL |
Redis connection URL | No | redis://localhost:6379/0 |
CONFERENCE_VENUE_NAME |
Event venue name | Yes | - |
CONFERENCE_VENUE_ADDRESS |
Venue address | Yes | - |
CONFERENCE_VENUE_COORDINATES |
Venue coordinates (lat,lng) | Yes | - |
CONFERENCE_DATES |
Event dates | Yes | - |
SUPPORT_PHONE |
Support phone number | Yes | - |
SUPPORT_EMAIL |
Support email | Yes | - |
SECRET_KEY |
Application secret key | Yes | - |
CORS_ORIGINS |
Allowed CORS origins | No | ["http://localhost:3000"] |
poetry run pytestpoetry run pytest --cov=appcd frontend
npm run lint-
Build production images
docker-compose -f docker-compose.yml build
-
Run in production mode
docker-compose -f docker-compose.yml up -d
For production deployment, ensure you have:
- Database: PostgreSQL instance
- Redis: Redis instance for caching
- API Keys: Valid Google ADK and Maps API keys
- SSL: HTTPS certificates for production
- Domain: Configured domain name
The application includes comprehensive logging and monitoring:
- Structured Logging: All operations are logged with context
- Health Checks: Built-in health check endpoints
- Performance Metrics: Request processing time headers
- Error Handling: Graceful error handling with fallback options
- Session Management: Conversation context tracking
DEBUG: Detailed debug informationINFO: General information (default)WARNING: Warning messagesERROR: Error messages
Configure allowed origins in your .env file:
CORS_ORIGINS=["http://localhost:3000", "https://yourdomain.com"]We welcome contributions! Please see CONTRIBUTING.md for details on how to get started.
- Python: Follow PEP 8, use Black for formatting
- TypeScript: Use ESLint and Prettier
- Google ADK: Follow Google ADK conventions for agent development
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Phone: Check your
.envfile for the support phone number - Email: Check your
.envfile for the support email - Documentation: Visit
/docswhen the server is running - AI Assistant: Chat with your event AI directly through the application
- No-code event configuration interface
- Drag-and-drop tool builder
- Multi-language support
- Mobile app integration
- Advanced analytics and insights
- Integration with social media platforms
- Voice interface
- Offline mode for basic functionality
- Event template marketplace
- Real-time collaboration features
Built with β€οΈ for event organizers worldwide
RTAC - Making every event intelligent and interactive! π€β¨