Spaces:
Running on Zero
Running on Zero
| # agent_factory.py | |
| from smolagents import CodeAgent, InferenceClientModel | |
| from config import AUTHORIZED_IMPORTS, CUSTOM_ROLE_CONVERSIONS, MODEL_ID | |
| from tools import build_tools | |
| # One model per process (generation is stateless) | |
| model = InferenceClientModel( | |
| model_id=MODEL_ID, | |
| custom_role_conversions=CUSTOM_ROLE_CONVERSIONS, | |
| ) | |
| # Build tools once; browser/HTTP sessions are reused across requests | |
| _web_tools, _document_inspection_tool, _visualizer = build_tools(model) | |
| def get_model(): | |
| return model | |
| def get_document_inspection_tool(): | |
| return _document_inspection_tool | |
| def create_agent(): | |
| """Return a fresh CodeAgent for each new user session.""" | |
| return CodeAgent( | |
| model=model, | |
| tools=[_visualizer] + _web_tools, | |
| max_steps=10, | |
| verbosity_level=1, | |
| additional_authorized_imports=AUTHORIZED_IMPORTS, | |
| planning_interval=4, | |
| ) |