Skip to content

Model API

agiwo.llm exports:

  • LLMConfig
  • Model
  • StreamChunk
  • ModelSpec
  • ModelProvider
  • create_model(...)
  • create_model_from_dict(...)
  • OpenAIModel
  • OpenAIResponsesModel
  • AnthropicModel
  • BedrockAnthropicModel
  • DeepseekModel
  • NvidiaModel

The shared base class for all providers.

class Model(ABC):
config: LLMConfig
async def arun_stream(
self,
messages: list[dict],
tools: list[dict] | None = None,
) -> AsyncIterator[StreamChunk]: ...
async def close(self) -> None: ...

Each provider yields normalized streaming deltas:

FieldPurpose
contentText delta
reasoning_contentReasoning delta when supported
tool_callsTool call delta
usageToken usage
finish_reasonProvider finish reason
from agiwo.llm import OpenAIModel
model = OpenAIModel(name="gpt-5.4")
from agiwo.llm import create_model_from_dict
model = create_model_from_dict(
provider="openai-compatible",
model_name="custom-model",
params={
"base_url": "https://api.example.com/v1",
"api_key_env_name": "MY_API_KEY",
},
)
  • openai
  • openai-response
  • openai-compatible
  • deepseek
  • anthropic
  • anthropic-compatible
  • nvidia
  • bedrock-anthropic