kind_openai/
auth.rs

1/// Any type that can provide a bearer auth token.
2pub trait AuthTokenProvider: Clone {
3    async fn resolve(&self) -> Option<String>;
4}
5
6/// Auth token provided that takes the auth token from the environment variable `OPENAI_API_KEY`.
7#[derive(Clone)]
8pub struct EnvironmentAuthTokenProvider;
9
10impl EnvironmentAuthTokenProvider {
11    const ENV_VAR: &'static str = "OPENAI_API_KEY";
12}
13
14impl AuthTokenProvider for EnvironmentAuthTokenProvider {
15    async fn resolve(&self) -> Option<String> {
16        std::env::var(Self::ENV_VAR).ok()
17    }
18}