Skip to main content

get_base_url

Function get_base_url 

Source
pub fn get_base_url(
    provider: Option<Provider>,
    fallback: Option<&str>,
) -> String
Expand 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

  1. Environment Variable: OPEN_AGENT_BASE_URL (highest priority)
  2. Provider Default: The provider’s default URL if specified
  3. Fallback Parameter: Explicit fallback value
  4. 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 URL
  • fallback - 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