跳转至

模型 Provider

ModelProvider 把不同模型服务转换成 Bumblehive 使用的统一请求和响应。

接口 用途
ModelProvider 自定义 Provider 的抽象基类
ModelRequest 发送给模型的统一请求
ModelResponse Provider 返回的统一结果
RetryConfig 可恢复错误的重试设置
ProviderManager 缓存并关闭默认 Provider

当前高层 Runtime 创建的是 openai_chat_completions Provider。接入自定义 Provider 时,请使用 AgentLoop 并显式传入 Provider。

公开接口

Model provider interfaces and implementations.

ModelProvider

Bases: ABC

Base interface for model providers.

generate abstractmethod async

generate(request: ModelRequest) -> ModelResponse

Generate one non-streaming model response.

generate_stream async

generate_stream(request: ModelRequest, *, callbacks: ModelStreamCallbacks | None = None) -> ModelResponse

Generate one response while reporting provider-native deltas.

generate_with_retry async

generate_with_retry(request: ModelRequest, *, retry: RetryConfig | None = None) -> ModelResponse

Return one model response, retrying recoverable provider errors.

The default implementation is intentionally provider-agnostic: concrete providers classify errors on ModelResponse.error.recoverable and may attach retry_after. This wrapper only decides whether and when to repeat the same request.

generate_stream_with_retry async

generate_stream_with_retry(request: ModelRequest, *, callbacks: ModelStreamCallbacks | None = None, retry: RetryConfig | None = None) -> ModelResponse

Return one streaming model response, retrying before deltas escape.

close async

close() -> None

Release provider-owned resources.

ModelRequest dataclass

A single model request after context construction.

ModelResponse dataclass

Provider-normalized model output.

ModelStreamCallbacks dataclass

Callbacks used by providers to report native streaming deltas.

OpenAIChatCompletionsProvider

Bases: ModelProvider

Provider for OpenAI-compatible Chat Completions APIs.

close async

close() -> None

Close the cached OpenAI SDK client, if it was created.

ProviderManager

Runtime-scoped cache of providers by connection settings.

Providers with different API keys or base URLs may be used concurrently. Cached providers remain open until the manager is closed.

close async

close() -> None

Close and forget every cached provider.

RetryConfig dataclass

Provider-agnostic retry settings for recoverable model errors.