pub fn get_base_url(
provider: Option<Provider>,
fallback: Option<&str>,
) -> StringExpand description
Get the base URL for API requests with environment variable support.
This function implements a priority-based resolution strategy for determining the API base URL, making it easy to override defaults during development or deployment.
§Resolution Priority
- Environment Variable:
OPEN_AGENT_BASE_URL(highest priority) - Provider Default: The provider’s default URL if specified
- Fallback Parameter: Explicit fallback value
- Ultimate Default: LM Studio’s default URL (http://localhost:1234/v1)
§Use Cases
- Development: Use provider defaults for quick setup
- Testing: Override with environment variable to point to test server
- Production: Specify explicit fallback for reliability
§Arguments
provider- Optional provider enum to use its default URLfallback- Optional explicit fallback URL string
§Returns
The resolved base URL as a String. Always returns a value (never None).
§Examples
use open_agent::{get_base_url, Provider};
// Use Ollama's default (http://localhost:11434/v1)
let url = get_base_url(Some(Provider::Ollama), None);
// With explicit fallback
let url = get_base_url(None, Some("http://localhost:1234/v1"));
// Override via environment (takes precedence over everything)
// SAFETY: This is a doctest example showing how env vars work
unsafe { std::env::set_var("OPEN_AGENT_BASE_URL", "http://custom-server:8080/v1"); }
let url = get_base_url(Some(Provider::Ollama), None);
// Returns "http://custom-server:8080/v1" despite provider being set