fix simulation reporting and research resilience

This commit is contained in:
2026-09-28 15:43:23 +08:00
parent 23297be2d7
commit a428214c53
25 changed files with 1488 additions and 244 deletions
+15 -5
View File
@@ -84,11 +84,17 @@ async def lifespan(app: FastAPI):
resolver = ActionResolver()
forecast = ForecastService()
narrator = Narrator(llm, forecast=forecast)
research = ResearchService(
llm,
enabled=settings.search_enabled,
max_per_round=settings.max_searches_per_round,
)
research = ResearchService(
llm,
enabled=settings.search_enabled,
max_per_round=settings.max_searches_per_round,
searxng_base_url=settings.searxng_base_url,
searxng_token=settings.searxng_token,
searxng_timeout=settings.searxng_timeout,
searxng_language=settings.searxng_language,
searxng_safesearch=settings.searxng_safesearch,
cache_ttl_seconds=settings.searxng_cache_ttl_seconds,
)
gossip = GossipEngine()
life_engine = LifeEngine(llm=llm)
engine = SimulationEngine(llm, store, tension, resolver, narrator, research=research, gossip=gossip, life_engine=life_engine, forecast=forecast)
@@ -106,6 +112,10 @@ async def lifespan(app: FastAPI):
logger.info("MiroSociety 已启动:模型=%s,地址=%s", settings.llm_model, settings.llm_base_url)
yield
logger.info("MiroSociety 正在关闭")
try:
await research.aclose()
except Exception as e:
logger.warning("关闭搜索客户端失败:%s", e)
app = FastAPI(title="MiroSociety", version="0.1.0", lifespan=lifespan)