use cognee_llm::OpenAIAdapter;
use std::sync::Arc;
pub fn require_env(var_name: &str) -> String {
let _ = dotenv::dotenv();
let canonical_fallback = match var_name {
"OPENAI_TOKEN" => Some("LLM_API_KEY"),
"OPENAI_URL" => Some("LLM_ENDPOINT"),
"OPENAI_MODEL" => Some("LLM_MODEL"),
_ => None,
};
if let Ok(v) = std::env::var(var_name)
&& !v.is_empty()
{
return v;
}
if let Some(canonical) = canonical_fallback
&& let Ok(v) = std::env::var(canonical)
&& !v.is_empty()
{
return v;
}
panic!("❌ Required environment variable '{var_name}' is not set")
}
#[allow(dead_code)]
pub fn create_adapter_from_env() -> Arc<OpenAIAdapter> {
let base_url = require_env("OPENAI_URL");
let api_token = require_env("OPENAI_TOKEN");
let model = std::env::var("LLM_MODEL")
.or_else(|_| std::env::var("OPENAI_MODEL"))
.unwrap_or_else(|_| "gpt-4o-mini".to_string());
Arc::new(
OpenAIAdapter::new(model, api_token, Some(base_url))
.unwrap_or_else(|e| panic!("❌ Failed to create OpenAI adapter: {e}")),
)
}