| Server IP : 3.147.158.171 / Your IP : 216.73.216.88 Web Server : Apache/2.4.67 (Amazon Linux) OpenSSL/3.5.5 System : Linux ip-172-31-2-178.us-east-2.compute.internal 6.1.172-216.329.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Wed May 20 06:31:34 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.21 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /tsai/www/html/api.johnturman.net/app/ |
Upload File : |
"""
Shared singleton OpenAI clients.
All modules should import clients from here to avoid creating duplicate instances.
Each OpenAI/AsyncOpenAI client uses ~10-15MB of memory, so consolidating them
eliminates significant memory waste.
"""
from dotenv import load_dotenv
from markdown_it import MarkdownIt
from openai import AsyncOpenAI, OpenAI
# Load environment variables before creating clients
load_dotenv()
# Shared singleton instances
openai_client = OpenAI()
async_openai_client = AsyncOpenAI()
# Shared MarkdownIt parser - configured for commonmark with breaks, html, and table support
markdown_parser = MarkdownIt('commonmark', {'breaks': True, 'html': True}).enable('table')