wrap.OpenAI¶
Drop-in replacement for openai.OpenAI with automatic memory.
Install¶
Basic usage¶
from extremis.wrap import OpenAI
from extremis import Extremis
client = OpenAI(api_key="sk-...", memory=Extremis())
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "What's my name?"}]
)
print(response.choices[0].message.content)
Constructor¶
OpenAI(
memory=None, # Extremis or HostedClient instance
session_id=None, # str — defaults to UUID per instance
**kwargs # passed to openai.OpenAI()
)
What gets intercepted¶
Only client.chat.completions.create() is intercepted:
# ✅ Intercepted
client.chat.completions.create(...)
# ✅ Pass-through
client.models.list()
client.embeddings.create(...)
client.images.generate(...)
Context injection¶
Recalled memories are injected as a system message prepended to the messages list:
# Your call
messages=[{"role": "user", "content": "What's my name?"}]
# What gets sent to OpenAI
messages=[
{"role": "system", "content": "[Relevant context from memory]\n- User's name is Ashwani\n- ..."},
{"role": "user", "content": "What's my name?"}
]
If you already have a system message, the memory context is prepended to it.
With existing system prompt¶
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful assistant. Always respond in English."},
{"role": "user", "content": "What did I tell you last time?"}
]
)
# System sent to OpenAI:
# "[Relevant context from memory]\n- ...\n\nYou are a helpful assistant. Always respond in English."