import httpx
from perplexity import Perplexity, DefaultHttpxClient
class PerplexityClientFactory:
@staticmethod
def development():
return Perplexity(
max_retries=1,
timeout=httpx.Timeout(10.0)
)
@staticmethod
def production():
return Perplexity(
max_retries=3,
timeout=httpx.Timeout(connect=5.0, read=60.0, write=10.0),
http_client=DefaultHttpxClient(
limits=httpx.Limits(
max_keepalive_connections=50,
max_connections=200
)
)
)
@staticmethod
def high_throughput():
return Perplexity(
max_retries=2,
timeout=httpx.Timeout(connect=2.0, read=30.0, write=5.0),
http_client=DefaultHttpxClient(
limits=httpx.Limits(
max_keepalive_connections=100,
max_connections=500
)
)
)
# Usage
client = PerplexityClientFactory.production()