Skip to main content

Crate everruns_openai

Crate everruns_openai 

Source
Expand description

OpenAI provider drivers for Everruns.

everruns-openai is part of the Everruns ecosystem. It implements the ChatDriver contract from everruns-core and registers OpenAI providers into a DriverRegistry.

The crate exposes two drivers:

OpenRouter lives in the separate everruns-openrouter crate.

§Registering the Driver

use everruns_provider::DriverRegistry;
use everruns_openai::register_driver;

let mut registry = DriverRegistry::new();
register_driver(&mut registry);

§Embedded Agent Example

use everruns_provider::{
    CapabilityRegistry, CredentialProvider, DriverRegistry, DriverId, EnvCredentialProvider,
    ResolvedModel, PlatformDefinition,
};
use everruns_runtime::InProcessRuntimeBuilder;

let mut drivers = DriverRegistry::new();
everruns_openai::register_driver(&mut drivers);

// Standalone/dev: resolve credentials through the injectable env provider.
// Driver code never reads the environment itself (see specs/llm-drivers.md).
let creds = EnvCredentialProvider
    .resolve(&DriverId::OpenAI)
    .expect("OPENAI_API_KEY not set");

let platform = PlatformDefinition::new(CapabilityRegistry::new(), drivers);
let runtime = InProcessRuntimeBuilder::new()
    .platform_definition(platform)
    .default_model(ResolvedModel {
        model: "gpt-5.4-mini".into(),
        provider_type: DriverId::OpenAI,
        api_key: creds.api_key,
        base_url: creds.base_url,
    })
    .single_session(|s| {
        s.harness("assistant", "You are a helpful assistant.")
            .agent("openai-agent", "Answer clearly and concisely.")
    })
    .build()
    .await?;

let session_id = runtime.default_session_id().expect("single_session id");
let result = runtime.run_text_turn(session_id, "Write a one-line status update.").await?;
println!("{}", result.response);

Structs§

ChatMessage
Provider-agnostic chat message following OpenAI’s format
ChatRequest
OpenAI chat completion request format
CompletionMetadata
Completion metadata returned on stream completion
DriverRegistry
Registry for LLM drivers
LlmConfig
LLM configuration following OpenAI’s API parameters
OpenAIChatDriver
OpenAI Chat Driver using Open Responses API
OpenAICompletionsChatDriver
OpenAI Chat Driver using Chat Completions API
OpenAIEmbeddingsDriver
Embeddings driver for OpenAI’s /v1/embeddings endpoint.

Enums§

LlmStreamEvent
Events emitted during LLM streaming
MessageRole
Message role in conversation (OpenAI format)

Traits§

ChatDriver
Trait for LLM drivers

Functions§

register_driver
Register all OpenAI drivers with the driver registry