pycityagent 2.0.0a25__py3-none-any.whl → 2.0.0a27__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -104,6 +104,8 @@ class Simulator:
104
104
  self._bbox: tuple[float, float, float, float] = (-1, -1, -1, -1)
105
105
  self.poi_matrix_centers = []
106
106
  self._lock = asyncio.Lock()
107
+ # poi id dict
108
+ self.poi_id_2_aoi_id: dict[int, int] = {}
107
109
  # poi STRtree
108
110
  self.set_poi_tree()
109
111
 
@@ -146,6 +148,7 @@ class Simulator:
146
148
  for tree_id, poi in enumerate(self.map.pois.values()):
147
149
  tree_id_2_poi_and_catg[tree_id] = (poi, poi["category"])
148
150
  poi_geos.append(Point([poi["position"][k] for k in ["x", "y"]]))
151
+ self.poi_id_2_aoi_id[poi["id"]] = poi["aoi_id"]
149
152
  self.tree_id_2_poi_and_catg = tree_id_2_poi_and_catg
150
153
  self.pois_tree = STRtree(poi_geos)
151
154
 
@@ -250,12 +253,21 @@ class Simulator:
250
253
  _schedules = []
251
254
  for target_pos, _time, _mode in zip(target_positions, departure_times, modes):
252
255
  if isinstance(target_pos, int):
253
- aoi_id = target_pos
254
- end = {
255
- "aoi_position": {
256
- "aoi_id": aoi_id,
256
+ if target_pos >= POI_START_ID:
257
+ poi_id = target_pos
258
+ end = {
259
+ "aoi_position": {
260
+ "aoi_id": self.poi_id_2_aoi_id[poi_id],
261
+ "poi_id": poi_id,
262
+ }
263
+ }
264
+ else:
265
+ aoi_id = target_pos
266
+ end = {
267
+ "aoi_position": {
268
+ "aoi_id": aoi_id,
269
+ }
257
270
  }
258
- }
259
271
  else:
260
272
  aoi_id, poi_id = target_pos
261
273
  end = {"aoi_position": {"aoi_id": aoi_id, "poi_id": poi_id}}
@@ -1,3 +1,5 @@
1
+ from mosstool.map._map_util.const import AOI_START_ID, POI_START_ID
2
+
1
3
  POI_CATG_DICT = {
2
4
  "户外活动": [
3
5
  "bandstand",
@@ -271,7 +271,6 @@ class AgentGroup:
271
271
  elif "lane_position" in position:
272
272
  parent_id = position["lane_position"]["lane_id"]
273
273
  else:
274
- # BUG: 需要处理
275
274
  parent_id = -1
276
275
  needs = await agent.memory.get("needs")
277
276
  action = await agent.memory.get("current_step")
@@ -297,23 +296,66 @@ class AgentGroup:
297
296
  else:
298
297
  for agent in self.agents:
299
298
  _date_time = datetime.now(timezone.utc)
299
+ try:
300
+ nominal_gdp = await agent.memory.get("nominal_gdp")
301
+ except:
302
+ nominal_gdp = []
303
+ try:
304
+ real_gdp = await agent.memory.get("real_gdp")
305
+ except:
306
+ real_gdp = []
307
+ try:
308
+ unemployment = await agent.memory.get("unemployment")
309
+ except:
310
+ unemployment = []
311
+ try:
312
+ wages = await agent.memory.get("wages")
313
+ except:
314
+ wages = []
315
+ try:
316
+ prices = await agent.memory.get("prices")
317
+ except:
318
+ prices = []
319
+ try:
320
+ inventory = await agent.memory.get("inventory")
321
+ except:
322
+ inventory = 0
323
+ try:
324
+ price = await agent.memory.get("price")
325
+ except:
326
+ price = 0.0
327
+ try:
328
+ interest_rate = await agent.memory.get("interest_rate")
329
+ except:
330
+ interest_rate = 0.0
331
+ try:
332
+ bracket_cutoffs = await agent.memory.get("bracket_cutoffs")
333
+ except:
334
+ bracket_cutoffs = []
335
+ try:
336
+ bracket_rates = await agent.memory.get("bracket_rates")
337
+ except:
338
+ bracket_rates = []
339
+ try:
340
+ employees = await agent.memory.get("employees")
341
+ except:
342
+ employees = []
300
343
  avro = {
301
344
  "id": agent._uuid,
302
345
  "day": await self.simulator.get_simulator_day(),
303
346
  "t": await self.simulator.get_simulator_second_from_start_of_day(),
304
347
  "type": await agent.memory.get("type"),
305
- "nominal_gdp": await agent.memory.get("nominal_gdp"),
306
- "real_gdp": await agent.memory.get("real_gdp"),
307
- "unemployment": await agent.memory.get("unemployment"),
308
- "wages": await agent.memory.get("wages"),
309
- "prices": await agent.memory.get("prices"),
310
- "inventory": await agent.memory.get("inventory"),
311
- "price": await agent.memory.get("price"),
312
- "interest_rate": await agent.memory.get("interest_rate"),
313
- "bracket_cutoffs": await agent.memory.get("bracket_cutoffs"),
314
- "bracket_rates": await agent.memory.get("bracket_rates"),
315
- "employees": await agent.memory.get("employees"),
316
- "customers": await agent.memory.get("customers"),
348
+ "nominal_gdp": nominal_gdp,
349
+ "real_gdp": real_gdp,
350
+ "unemployment": unemployment,
351
+ "wages": wages,
352
+ "prices": prices,
353
+ "inventory": inventory,
354
+ "price": price,
355
+ "interest_rate": interest_rate,
356
+ "bracket_cutoffs": bracket_cutoffs,
357
+ "bracket_rates": bracket_rates,
358
+ "employees": employees,
317
359
  }
318
360
  avros.append(avro)
319
361
  _statuses_time_list.append((avro, _date_time))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycityagent
3
- Version: 2.0.0a25
3
+ Version: 2.0.0a27
4
4
  Summary: LLM-based城市环境agent构建库
5
5
  License: MIT
6
6
  Author: Yuwei Yan
@@ -21,10 +21,10 @@ pycityagent/environment/sim/person_service.py,sha256=5r1F2Itn7dKJ2U4hSLovrk5p4qy
21
21
  pycityagent/environment/sim/road_service.py,sha256=bKyn3_me0sGmaJVyF6eNeFbdU-9C1yWsa9L7pieDJzg,1285
22
22
  pycityagent/environment/sim/sim_env.py,sha256=HI1LcS_FotDKQ6vBnx0e49prXSABOfA20aU9KM-ZkCY,4625
23
23
  pycityagent/environment/sim/social_service.py,sha256=9EFJAwVdUuUQkNkFRn9qZRDfD1brh2fqkvasnXUEBhQ,2014
24
- pycityagent/environment/simulator.py,sha256=Vm8Rvczv20ETpAWhCYyxbnN25uoRyAv6DX7WoavjEVU,12446
24
+ pycityagent/environment/simulator.py,sha256=KVfwSwVGXPqUHQGyD9jv_RXRgGal2k7NloUFVdmWE8I,12943
25
25
  pycityagent/environment/utils/__init__.py,sha256=1m4Q1EfGvNpUsa1bgQzzCyWhfkpElnskNImjjFD3Znc,237
26
26
  pycityagent/environment/utils/base64.py,sha256=hoREzQo3FXMN79pqQLO2jgsDEvudciomyKii7MWljAM,374
27
- pycityagent/environment/utils/const.py,sha256=3RMNy7_bE7-23K90j9DFW_tWEzu8s7hSTgKbV-3BFl4,5327
27
+ pycityagent/environment/utils/const.py,sha256=1LqxnYJ8FSmq37fN5kIFlWLwycEDzFa8SFS-8plrFlU,5396
28
28
  pycityagent/environment/utils/geojson.py,sha256=LVHAdEhnZM8d0BoUnuPiIL_gaeXBIIglrLrfje5M0b4,661
29
29
  pycityagent/environment/utils/grpc.py,sha256=6EJwKXXktIWb1NcUiJzIRmfrY0S03QAXXGcCDHqAT00,1998
30
30
  pycityagent/environment/utils/map_utils.py,sha256=lYOEoCFFK6-e9N5txLMMq4HUlxMqc8Uw1YrGW5oJmgg,5749
@@ -50,7 +50,7 @@ pycityagent/metrics/__init__.py,sha256=X08PaBbGVAd7_PRGLREXWxaqm7nS82WBQpD1zvQzc
50
50
  pycityagent/metrics/mlflow_client.py,sha256=g_tHxWkWTDijtbGL74-HmiYzWVKb1y8-w12QrY9jL30,4449
51
51
  pycityagent/metrics/utils/const.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  pycityagent/simulation/__init__.py,sha256=P5czbcg2d8S0nbbnsQXFIhwzO4CennAhZM8OmKvAeYw,194
53
- pycityagent/simulation/agentgroup.py,sha256=r8arCAQkKMhv3yr35XsYJL-MfG6o6rWwHItBmxfDtA4,20589
53
+ pycityagent/simulation/agentgroup.py,sha256=0uMoRBektdK9WEXmqYT2gASg42CtS6JjaQ7slP8IWkY,22011
54
54
  pycityagent/simulation/simulation.py,sha256=9kkdgXSEOAN8wiewVFyORksti4IdVNU0opObV6ZYa9k,23344
55
55
  pycityagent/simulation/storage/pg.py,sha256=Ws04mUgRcbbvWi_eQm3PXYa6w7AQUbDPWhSU7HFtsD8,6026
56
56
  pycityagent/survey/__init__.py,sha256=rxwou8U9KeFSP7rMzXtmtp2fVFZxK4Trzi-psx9LPIs,153
@@ -70,6 +70,6 @@ pycityagent/workflow/block.py,sha256=l-z9iJo9_USZQRyj4TLMfihK0-tnNDG0a6jVk9WhG0o
70
70
  pycityagent/workflow/prompt.py,sha256=6jI0Rq54JLv3-IXqZLYug62vse10wTI83xvf4ZX42nk,2929
71
71
  pycityagent/workflow/tool.py,sha256=xADxhNgVsjNiMxlhdwn3xGUstFOkLEG8P67ez8VmwSI,8555
72
72
  pycityagent/workflow/trigger.py,sha256=Df-MOBEDWBbM-v0dFLQLXteLsipymT4n8vqexmK2GiQ,5643
73
- pycityagent-2.0.0a25.dist-info/METADATA,sha256=lB0qL357khfixTBH-M-cX2-FxCGhsD3IuUyPqVY07uI,8033
74
- pycityagent-2.0.0a25.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
75
- pycityagent-2.0.0a25.dist-info/RECORD,,
73
+ pycityagent-2.0.0a27.dist-info/METADATA,sha256=a0J5mbDiwBkYcPqDwPFJCwwkSTAU1g-g-jqVCwDYVhE,8033
74
+ pycityagent-2.0.0a27.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
75
+ pycityagent-2.0.0a27.dist-info/RECORD,,