Skip to content

OpenAIModel

Environment variables: OPENAI_API_KEY, OPENAI_MODEL_NAME

python
import os
from elsai_model.openai import OpenAIModel

model = OpenAIModel(
    model_id=os.getenv("OPENAI_MODEL_NAME", "gpt-4o-mini"),
    client_args={"api_key": os.environ["OPENAI_API_KEY"]},
    params={"temperature": 0.2},
)
messages = [{"role": "user", "content": "Say hello in one short sentence."}]

response = model.invoke(messages)
print(response.choices[0].message.content)

for chunk in model.stream_text(messages):
    print(chunk, end="", flush=True)

Or via the factory:

python
from elsai_model import LLM, Provider

model = LLM(
    provider=Provider.OPENAI,
    model=os.getenv("OPENAI_MODEL_NAME", "gpt-4o-mini"),
    api_key=os.environ["OPENAI_API_KEY"],
    params={"temperature": 0.2},
)

LangChain backend

Use the LangChain-backed client instead of the native OpenAI SDK. Requires the langchain extra:

bash
pip install --extra-index-url https://core-packages.elsai.ai/root/ "elsai-model[langchain]==2.1.0"
python
model = OpenAIModel(
    model_id="gpt-4o-mini",
    client_args={"api_key": os.environ["OPENAI_API_KEY"]},
    params={"temperature": 0.2},
    implementation="langchain",  # default is "native"
)

Bedrock Mantle routing

Route OpenAIModel through Amazon Bedrock's OpenAI-compatible Mantle endpoint (uses AWS credentials, not OPENAI_API_KEY):

python
model = OpenAIModel(
    model_id=os.getenv("BEDROCK_MANTLE_MODEL_ID", "openai.gpt-oss-120b"),
    bedrock_mantle_config={"region": os.getenv("AWS_REGION", "us-east-1")},
    params={"temperature": 0.2, "max_tokens": 256},
)

See also

Copyright © 2026 elsai foundry.