llm-worker 0.2.0

A library for building autonomous LLM-powered systems
Documentation
use llm_worker::llm_client::providers::openai::OpenAIClient;
use llm_worker::{Worker, WorkerError};

#[test]
fn test_openai_top_k_warning() {
    // ダミーキーでクライアント作成(validate_configは通信しないため安全)
    let client = OpenAIClient::new("dummy-key", "gpt-4o");

    // top_kを設定したWorkerを作成
    let worker = Worker::new(client).top_k(50); // OpenAIはtop_k非対応

    // validate()を実行
    let result = worker.validate();

    // エラーが返り、ConfigWarningsが含まれていることを確認
    match result {
        Err(WorkerError::ConfigWarnings(warnings)) => {
            assert_eq!(warnings.len(), 1);
            assert_eq!(warnings[0].option_name, "top_k");
            println!("Got expected warning: {}", warnings[0]);
        }
        Ok(_) => panic!("Should have returned validation error"),
        Err(e) => panic!("Unexpected error type: {:?}", e),
    }
}

#[test]
fn test_openai_valid_config() {
    let client = OpenAIClient::new("dummy-key", "gpt-4o");

    // validな設定(temperatureのみ)
    let worker = Worker::new(client).temperature(0.7);

    // validate()を実行
    let result = worker.validate();

    // 成功を確認
    assert!(result.is_ok());
}