Skip to content

Commit 6e57272

Browse files
Merge pull request #189 from BrainBlend-AI/feature/add-fastapi-example
Add FastAPI integration example
2 parents aa3b415 + 71c8376 commit 6e57272

File tree

23 files changed

+4730
-46
lines changed

23 files changed

+4730
-46
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ client = instructor.from_openai(OpenAI())
112112
agent = AtomicAgent[BasicChatInputSchema, CustomOutputSchema](
113113
config=AgentConfig(
114114
client=client,
115-
model="gpt-4o-mini",
115+
model="gpt-5-mini",
116116
system_prompt_generator=system_prompt_generator,
117117
history=ChatHistory(),
118118
)
@@ -219,7 +219,7 @@ class QueryAgentInputSchema(BaseIOSchema):
219219
query_agent = AtomicAgent[QueryAgentInputSchema, SearXNGSearchTool.input_schema](
220220
config=AgentConfig(
221221
client=instructor.from_openai(openai.OpenAI()),
222-
model="gpt-4o-mini",
222+
model="gpt-5-mini",
223223
system_prompt_generator=SystemPromptGenerator(
224224
background=[
225225
"You are an intelligent query generation expert.",

UPGRADE_DOC.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ client = instructor.from_openai(OpenAI())
182182
agent = BaseAgent(
183183
BaseAgentConfig(
184184
client=client,
185-
model="gpt-4o-mini",
185+
model="gpt-5-mini",
186186
memory=AgentMemory()
187187
# No schema parameters = uses BaseAgentInputSchema and BaseAgentOutputSchema
188188
)
@@ -192,7 +192,7 @@ agent = BaseAgent(
192192
agent = BaseAgent(
193193
BaseAgentConfig(
194194
client=client,
195-
model="gpt-4o-mini",
195+
model="gpt-5-mini",
196196
memory=AgentMemory(),
197197
input_schema=CustomInputSchema, # Passed in config
198198
output_schema=CustomOutputSchema # Passed in config
@@ -226,7 +226,7 @@ client = instructor.from_openai(OpenAI())
226226
agent = AtomicAgent[BasicChatInputSchema, BasicChatOutputSchema](
227227
AgentConfig(
228228
client=client,
229-
model="gpt-4o-mini",
229+
model="gpt-5-mini",
230230
history=ChatHistory()
231231
)
232232
)
@@ -235,7 +235,7 @@ agent = AtomicAgent[BasicChatInputSchema, BasicChatOutputSchema](
235235
agent = AtomicAgent[CustomInputSchema, CustomOutputSchema](
236236
AgentConfig(
237237
client=client,
238-
model="gpt-4o-mini",
238+
model="gpt-5-mini",
239239
history=ChatHistory()
240240
# No schema parameters in config!
241241
)
@@ -262,7 +262,7 @@ agent = AtomicAgent[CustomInputSchema, CustomOutputSchema](
262262
agent = BaseAgent(
263263
BaseAgentConfig(
264264
client=client,
265-
model="gpt-4o-mini",
265+
model="gpt-5-mini",
266266
memory=AgentMemory(),
267267
input_schema=TranslationInput, # Was here
268268
output_schema=TranslationOutput # Was here
@@ -273,7 +273,7 @@ agent = AtomicAgent[CustomInputSchema, CustomOutputSchema](
273273
agent = AtomicAgent[TranslationInput, TranslationOutput](
274274
AgentConfig(
275275
client=client,
276-
model="gpt-4o-mini",
276+
model="gpt-5-mini",
277277
history=ChatHistory() # Note: memory → history
278278
# Schemas no longer in config!
279279
)
@@ -285,7 +285,7 @@ agent = AtomicAgent[CustomInputSchema, CustomOutputSchema](
285285
# OLD - Direct parameters
286286
config = BaseAgentConfig(
287287
client=client,
288-
model="gpt-4o-mini",
288+
model="gpt-5-mini",
289289
memory=AgentMemory(), # Old field name
290290
temperature=0.7, # Direct parameter
291291
max_tokens=1000 # Direct parameter
@@ -294,7 +294,7 @@ agent = AtomicAgent[CustomInputSchema, CustomOutputSchema](
294294
# NEW - Grouped parameters
295295
config = AgentConfig(
296296
client=client,
297-
model="gpt-4o-mini",
297+
model="gpt-5-mini",
298298
history=ChatHistory(), # New field name
299299
model_api_parameters={ # Temperature and max_tokens moved here
300300
"temperature": 0.7,
@@ -347,7 +347,7 @@ from atomic_agents.context import ChatHistory
347347

348348
client = instructor.from_openai(OpenAI())
349349
agent = AtomicAgent[BasicChatInputSchema, BasicChatOutputSchema](
350-
AgentConfig(client=client, model="gpt-4o-mini", history=ChatHistory())
350+
AgentConfig(client=client, model="gpt-5-mini", history=ChatHistory())
351351
)
352352

353353
# Non-streaming (same as v1.x) - Wait for complete response
@@ -372,7 +372,7 @@ import asyncio
372372

373373
client = instructor.from_openai(AsyncOpenAI())
374374
agent = AtomicAgent[BasicChatInputSchema, BasicChatOutputSchema](
375-
AgentConfig(client=client, model="gpt-4o-mini", history=ChatHistory())
375+
AgentConfig(client=client, model="gpt-5-mini", history=ChatHistory())
376376
)
377377

378378
# OLD (v1.x) - run_async was a streaming generator
@@ -605,7 +605,7 @@ system_prompt = SystemPromptGenerator(
605605
agent = BaseAgent(
606606
BaseAgentConfig(
607607
client=client,
608-
model="gpt-4o-mini",
608+
model="gpt-5-mini",
609609
memory=memory,
610610
system_prompt_generator=system_prompt,
611611
input_schema=SupportTicketInput,
@@ -663,7 +663,7 @@ system_prompt = SystemPromptGenerator(
663663
agent = AtomicAgent[SupportTicketInput, SupportTicketOutput]( # Schemas as type parameters
664664
AgentConfig(
665665
client=client,
666-
model="gpt-4o-mini",
666+
model="gpt-5-mini",
667667
history=history, # Changed from memory
668668
system_prompt_generator=system_prompt,
669669
# No input_schema or output_schema in config

agents.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ agent = AtomicAgent(
333333
system_prompt="You are a helpful assistant. Provide accurate answers.",
334334
input_schema=InputSchema,
335335
output_schema=OutputSchema,
336-
model="gpt-4o-mini",
336+
model="gpt-5-mini",
337337
)
338338

339339
# Run agent

atomic-agents/atomic_agents/agents/atomic_agent.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class BasicChatOutputSchema(BaseIOSchema):
6060

6161
class AgentConfig(BaseModel):
6262
client: instructor.client.Instructor = Field(..., description="Client for interacting with the language model.")
63-
model: str = Field(default="gpt-4o-mini", description="The model to use for generating responses.")
63+
model: str = Field(default="gpt-5-mini", description="The model to use for generating responses.")
6464
history: Optional[ChatHistory] = Field(default=None, description="History component for storing chat history.")
6565
system_prompt_generator: Optional[SystemPromptGenerator] = Field(
6666
default=None, description="Component for generating system prompts."
@@ -585,11 +585,11 @@ async def chat_loop(streaming: bool = False):
585585
"""
586586
if streaming:
587587
client = instructor.from_openai(AsyncOpenAI())
588-
config = AgentConfig(client=client, model="gpt-4o-mini")
588+
config = AgentConfig(client=client, model="gpt-5-mini")
589589
agent = AtomicAgent[BasicChatInputSchema, BasicChatOutputSchema](config)
590590
else:
591591
client = instructor.from_openai(OpenAI())
592-
config = AgentConfig(client=client, model="gpt-4o-mini")
592+
config = AgentConfig(client=client, model="gpt-5-mini")
593593
agent = AtomicAgent[BasicChatInputSchema, BasicChatOutputSchema](config)
594594

595595
# Display agent information before starting the chat

atomic-agents/tests/agents/test_atomic_agent.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def mock_system_prompt_generator():
7676
def agent_config(mock_instructor, mock_history, mock_system_prompt_generator):
7777
return AgentConfig(
7878
client=mock_instructor,
79-
model="gpt-4o-mini",
79+
model="gpt-5-mini",
8080
history=mock_history,
8181
system_prompt_generator=mock_system_prompt_generator,
8282
)
@@ -91,7 +91,7 @@ def agent(agent_config):
9191
def agent_config_async(mock_instructor_async, mock_history, mock_system_prompt_generator):
9292
return AgentConfig(
9393
client=mock_instructor_async,
94-
model="gpt-4o-mini",
94+
model="gpt-5-mini",
9595
history=mock_history,
9696
system_prompt_generator=mock_system_prompt_generator,
9797
)
@@ -104,7 +104,7 @@ def agent_async(agent_config_async):
104104

105105
def test_initialization(agent, mock_instructor, mock_history, mock_system_prompt_generator):
106106
assert agent.client == mock_instructor
107-
assert agent.model == "gpt-4o-mini"
107+
assert agent.model == "gpt-5-mini"
108108
assert agent.history == mock_history
109109
assert agent.system_prompt_generator == mock_system_prompt_generator
110110
assert "max_tokens" not in agent.model_api_parameters
@@ -114,7 +114,7 @@ def test_initialization(agent, mock_instructor, mock_history, mock_system_prompt
114114
def test_initialization_temperature_priority(mock_instructor, mock_history, mock_system_prompt_generator):
115115
config = AgentConfig(
116116
client=mock_instructor,
117-
model="gpt-4o-mini",
117+
model="gpt-5-mini",
118118
history=mock_history,
119119
system_prompt_generator=mock_system_prompt_generator,
120120
model_api_parameters={"temperature": 1.0},
@@ -126,7 +126,7 @@ def test_initialization_temperature_priority(mock_instructor, mock_history, mock
126126
def test_initialization_without_temperature(mock_instructor, mock_history, mock_system_prompt_generator):
127127
config = AgentConfig(
128128
client=mock_instructor,
129-
model="gpt-4o-mini",
129+
model="gpt-5-mini",
130130
history=mock_history,
131131
system_prompt_generator=mock_system_prompt_generator,
132132
model_api_parameters={"temperature": 0.5},
@@ -138,7 +138,7 @@ def test_initialization_without_temperature(mock_instructor, mock_history, mock_
138138
def test_initialization_without_max_tokens(mock_instructor, mock_history, mock_system_prompt_generator):
139139
config = AgentConfig(
140140
client=mock_instructor,
141-
model="gpt-4o-mini",
141+
model="gpt-5-mini",
142142
history=mock_history,
143143
system_prompt_generator=mock_system_prompt_generator,
144144
model_api_parameters={"max_tokens": 1024},
@@ -150,7 +150,7 @@ def test_initialization_without_max_tokens(mock_instructor, mock_history, mock_s
150150
def test_initialization_system_role_equals_developer(mock_instructor, mock_history, mock_system_prompt_generator):
151151
config = AgentConfig(
152152
client=mock_instructor,
153-
model="gpt-4o-mini",
153+
model="gpt-5-mini",
154154
history=mock_history,
155155
system_prompt_generator=mock_system_prompt_generator,
156156
system_role="developer",
@@ -164,7 +164,7 @@ def test_initialization_system_role_equals_developer(mock_instructor, mock_histo
164164
def test_initialization_system_role_equals_None(mock_instructor, mock_history, mock_system_prompt_generator):
165165
config = AgentConfig(
166166
client=mock_instructor,
167-
model="gpt-4o-mini",
167+
model="gpt-5-mini",
168168
history=mock_history,
169169
system_prompt_generator=mock_system_prompt_generator,
170170
system_role=None,
@@ -215,7 +215,7 @@ def test_unregister_context_provider(agent, mock_system_prompt_generator):
215215
def test_no_type_parameters(mock_instructor):
216216
custom_config = AgentConfig(
217217
client=mock_instructor,
218-
model="gpt-4o-mini",
218+
model="gpt-5-mini",
219219
)
220220

221221
custom_agent = AtomicAgent(custom_config)
@@ -233,7 +233,7 @@ class CustomOutputSchema(BaseModel):
233233

234234
custom_config = AgentConfig(
235235
client=mock_instructor,
236-
model="gpt-4o-mini",
236+
model="gpt-5-mini",
237237
)
238238

239239
custom_agent = AtomicAgent[CustomInputSchema, CustomOutputSchema](custom_config)
@@ -256,7 +256,7 @@ def __init__(self, extra_param: str):
256256
self.extra_param = extra_param
257257
config = AgentConfig(
258258
client=mock_instructor,
259-
model="gpt-4o-mini",
259+
model="gpt-5-mini",
260260
)
261261
super().__init__(config)
262262

@@ -319,7 +319,7 @@ def test_run_stream(mock_instructor, mock_history):
319319
# Create a AgentConfig with system_role set to None
320320
config = AgentConfig(
321321
client=mock_instructor,
322-
model="gpt-4o-mini",
322+
model="gpt-5-mini",
323323
history=mock_history,
324324
system_prompt_generator=None, # No system prompt generator
325325
)
@@ -457,7 +457,7 @@ def test_hook_registration_with_instructor_client(mock_instructor):
457457
mock_instructor.off = Mock()
458458
mock_instructor.clear = Mock()
459459

460-
config = AgentConfig(client=mock_instructor, model="gpt-4o-mini")
460+
config = AgentConfig(client=mock_instructor, model="gpt-5-mini")
461461
agent = AtomicAgent[BasicChatInputSchema, BasicChatOutputSchema](config)
462462

463463
def test_handler(error):
@@ -629,7 +629,7 @@ def test_agent_initialization_includes_hooks(mock_instructor, mock_history, mock
629629
"""Test that agent initialization properly sets up hook system."""
630630
config = AgentConfig(
631631
client=mock_instructor,
632-
model="gpt-4o-mini",
632+
model="gpt-5-mini",
633633
history=mock_history,
634634
system_prompt_generator=mock_system_prompt_generator,
635635
)
@@ -665,7 +665,7 @@ def test_backward_compatibility_no_breaking_changes(mock_instructor, mock_histor
665665

666666
config = AgentConfig(
667667
client=mock_instructor,
668-
model="gpt-4o-mini",
668+
model="gpt-5-mini",
669669
history=mock_history,
670670
system_prompt_generator=mock_system_prompt_generator,
671671
)
@@ -674,7 +674,7 @@ def test_backward_compatibility_no_breaking_changes(mock_instructor, mock_histor
674674

675675
# Test that all existing attributes still exist and work
676676
assert agent.client == mock_instructor
677-
assert agent.model == "gpt-4o-mini"
677+
assert agent.model == "gpt-5-mini"
678678
assert agent.history == mock_history
679679
assert agent.system_prompt_generator == mock_system_prompt_generator
680680

0 commit comments

Comments
 (0)