eval: Add support for reading from a .env file (#29426)

This PR adds support for the eval to read environment variables from a
`.env` file located in the `crates/eval` directory.

For instance, you can use it to set your Anthropic API key:

```
ANTHROPIC_API_KEY=<secret>
```

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2025-04-25 11:53:02 -04:00 committed by GitHub
parent 4f9cadabf7
commit a5405fcbd7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 18 additions and 1 deletions

View file

@ -34,9 +34,12 @@ use std::collections::VecDeque;
use std::env;
use std::path::{Path, PathBuf};
use std::rc::Rc;
use std::sync::Arc;
use std::sync::{Arc, LazyLock};
use util::ResultExt as _;
static CARGO_MANIFEST_DIR: LazyLock<PathBuf> =
LazyLock::new(|| PathBuf::from(env!("CARGO_MANIFEST_DIR")));
#[derive(Parser, Debug)]
#[command(name = "eval", disable_version_flag = true)]
struct Args {
@ -57,6 +60,8 @@ struct Args {
}
fn main() {
dotenv::from_filename(CARGO_MANIFEST_DIR.join(".env")).ok();
env_logger::init();
let system_id = ids::get_or_create_id(&ids::eval_system_id_path()).ok();