mirror of
https://github.com/basicmachines-co/basic-memory
synced 2026-06-21 13:47:35 +00:00
473f70c949
Signed-off-by: phernandez <paul@basicmachines.co> Co-authored-by: Claude <noreply@anthropic.com>
30 lines
966 B
Python
30 lines
966 B
Python
from httpx import ASGITransport, AsyncClient
|
|
from loguru import logger
|
|
|
|
from basic_memory.api.app import app as fastapi_app
|
|
from basic_memory.config import ConfigManager
|
|
|
|
def create_client() -> AsyncClient:
|
|
"""Create an HTTP client based on configuration.
|
|
|
|
Returns:
|
|
AsyncClient configured for either local ASGI or remote HTTP transport
|
|
"""
|
|
config_manager = ConfigManager()
|
|
config = config_manager.load_config()
|
|
|
|
if config.api_url:
|
|
# Use HTTP transport for remote API
|
|
logger.info(f"Creating HTTP client for remote Basic Memory API: {config.api_url}")
|
|
return AsyncClient(base_url=config.api_url)
|
|
else:
|
|
# Use ASGI transport for local API
|
|
logger.debug("Creating ASGI client for local Basic Memory API")
|
|
return AsyncClient(
|
|
transport=ASGITransport(app=fastapi_app),
|
|
base_url="http://test"
|
|
)
|
|
|
|
# Create shared async client
|
|
client = create_client()
|