pycityagent 2.0.0a30__tar.gz → 2.0.0a32__tar.gz

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.
Files changed (75) hide show
  1. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/PKG-INFO +1 -1
  2. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/simulation/agentgroup.py +77 -21
  3. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pyproject.toml +1 -1
  4. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/README.md +0 -0
  5. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/__init__.py +0 -0
  6. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/agent.py +0 -0
  7. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/economy/__init__.py +0 -0
  8. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/economy/econ_client.py +0 -0
  9. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/__init__.py +0 -0
  10. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/interact/__init__.py +0 -0
  11. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/interact/interact.py +0 -0
  12. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/message/__init__.py +0 -0
  13. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sence/__init__.py +0 -0
  14. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sence/static.py +0 -0
  15. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sidecar/__init__.py +0 -0
  16. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sidecar/sidecarv2.py +0 -0
  17. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sim/__init__.py +0 -0
  18. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sim/aoi_service.py +0 -0
  19. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sim/client.py +0 -0
  20. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sim/clock_service.py +0 -0
  21. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sim/economy_services.py +0 -0
  22. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sim/lane_service.py +0 -0
  23. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sim/light_service.py +0 -0
  24. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sim/person_service.py +0 -0
  25. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sim/road_service.py +0 -0
  26. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sim/sim_env.py +0 -0
  27. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/sim/social_service.py +0 -0
  28. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/simulator.py +0 -0
  29. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/utils/__init__.py +0 -0
  30. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/utils/base64.py +0 -0
  31. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/utils/const.py +0 -0
  32. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/utils/geojson.py +0 -0
  33. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/utils/grpc.py +0 -0
  34. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/utils/map_utils.py +0 -0
  35. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/utils/port.py +0 -0
  36. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/environment/utils/protobuf.py +0 -0
  37. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/llm/__init__.py +0 -0
  38. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/llm/embeddings.py +0 -0
  39. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/llm/llm.py +0 -0
  40. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/llm/llmconfig.py +0 -0
  41. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/llm/utils.py +0 -0
  42. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/memory/__init__.py +0 -0
  43. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/memory/const.py +0 -0
  44. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/memory/faiss_query.py +0 -0
  45. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/memory/memory.py +0 -0
  46. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/memory/memory_base.py +0 -0
  47. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/memory/profile.py +0 -0
  48. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/memory/self_define.py +0 -0
  49. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/memory/state.py +0 -0
  50. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/memory/utils.py +0 -0
  51. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/message/__init__.py +0 -0
  52. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/message/messager.py +0 -0
  53. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/metrics/__init__.py +0 -0
  54. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/metrics/mlflow_client.py +0 -0
  55. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/metrics/utils/const.py +0 -0
  56. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/simulation/__init__.py +0 -0
  57. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/simulation/simulation.py +0 -0
  58. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/simulation/storage/pg.py +0 -0
  59. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/survey/__init__.py +0 -0
  60. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/survey/manager.py +0 -0
  61. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/survey/models.py +0 -0
  62. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/utils/__init__.py +0 -0
  63. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/utils/avro_schema.py +0 -0
  64. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/utils/decorators.py +0 -0
  65. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/utils/parsers/__init__.py +0 -0
  66. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/utils/parsers/code_block_parser.py +0 -0
  67. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/utils/parsers/json_parser.py +0 -0
  68. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/utils/parsers/parser_base.py +0 -0
  69. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/utils/pg_query.py +0 -0
  70. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/utils/survey_util.py +0 -0
  71. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/workflow/__init__.py +0 -0
  72. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/workflow/block.py +0 -0
  73. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/workflow/prompt.py +0 -0
  74. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/workflow/tool.py +0 -0
  75. {pycityagent-2.0.0a30 → pycityagent-2.0.0a32}/pycityagent/workflow/trigger.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycityagent
3
- Version: 2.0.0a30
3
+ Version: 2.0.0a32
4
4
  Summary: LLM-based城市环境agent构建库
5
5
  License: MIT
6
6
  Author: Yuwei Yan
@@ -9,6 +9,7 @@ from typing import Any
9
9
  from uuid import UUID
10
10
 
11
11
  import fastavro
12
+ import pyproj
12
13
  import ray
13
14
  from langchain_core.embeddings import Embeddings
14
15
 
@@ -80,6 +81,7 @@ class AgentGroup:
80
81
  # Step:2 prepare Simulator
81
82
  logger.info(f"-----Creating Simulator in AgentGroup {self._uuid} ...")
82
83
  self.simulator = Simulator(config["simulator_request"])
84
+ self.projector = pyproj.Proj(self.simulator.map.header["projection"])
83
85
 
84
86
  # Step:3 prepare Economy client
85
87
  if "economy" in config["simulator_request"]:
@@ -264,8 +266,9 @@ class AgentGroup:
264
266
  for agent in self.agents:
265
267
  _date_time = datetime.now(timezone.utc)
266
268
  position = await agent.memory.get("position")
267
- lng = position["longlat_position"]["longitude"]
268
- lat = position["longlat_position"]["latitude"]
269
+ x = position["xy_position"]["x"]
270
+ y = position["xy_position"]["y"]
271
+ lng, lat = self.projector(x, y, inverse=True)
269
272
  if "aoi_position" in position:
270
273
  parent_id = position["aoi_position"]["aoi_id"]
271
274
  elif "lane_position" in position:
@@ -379,8 +382,9 @@ class AgentGroup:
379
382
  for agent in self.agents:
380
383
  _date_time = datetime.now(timezone.utc)
381
384
  position = await agent.memory.get("position")
382
- lng = position["longlat_position"]["longitude"]
383
- lat = position["longlat_position"]["latitude"]
385
+ x = position["xy_position"]["x"]
386
+ y = position["xy_position"]["y"]
387
+ lng, lat = self.projector(x, y, inverse=True)
384
388
  if "aoi_position" in position:
385
389
  parent_id = position["aoi_position"]["aoi_id"]
386
390
  elif "lane_position" in position:
@@ -409,29 +413,81 @@ class AgentGroup:
409
413
  else:
410
414
  for agent in self.agents:
411
415
  _date_time = datetime.now(timezone.utc)
416
+ position = await agent.memory.get("position")
417
+ x = position["xy_position"]["x"]
418
+ y = position["xy_position"]["y"]
419
+ lng, lat = self.projector(x, y, inverse=True)
420
+ if "aoi_position" in position:
421
+ parent_id = position["aoi_position"]["aoi_id"]
422
+ elif "lane_position" in position:
423
+ parent_id = position["lane_position"]["lane_id"]
424
+ else:
425
+ # BUG: 需要处理
426
+ parent_id = -1
427
+ try:
428
+ nominal_gdp = await agent.memory.get("nominal_gdp")
429
+ except:
430
+ nominal_gdp = []
431
+ try:
432
+ real_gdp = await agent.memory.get("real_gdp")
433
+ except:
434
+ real_gdp = []
435
+ try:
436
+ unemployment = await agent.memory.get("unemployment")
437
+ except:
438
+ unemployment = []
439
+ try:
440
+ wages = await agent.memory.get("wages")
441
+ except:
442
+ wages = []
443
+ try:
444
+ prices = await agent.memory.get("prices")
445
+ except:
446
+ prices = []
447
+ try:
448
+ inventory = await agent.memory.get("inventory")
449
+ except:
450
+ inventory = 0
451
+ try:
452
+ price = await agent.memory.get("price")
453
+ except:
454
+ price = 0.0
455
+ try:
456
+ interest_rate = await agent.memory.get("interest_rate")
457
+ except:
458
+ interest_rate = 0.0
459
+ try:
460
+ bracket_cutoffs = await agent.memory.get("bracket_cutoffs")
461
+ except:
462
+ bracket_cutoffs = []
463
+ try:
464
+ bracket_rates = await agent.memory.get("bracket_rates")
465
+ except:
466
+ bracket_rates = []
467
+ try:
468
+ employees = await agent.memory.get("employees")
469
+ except:
470
+ employees = []
412
471
  _status_dict = {
413
472
  "id": agent._uuid,
414
473
  "day": await self.simulator.get_simulator_day(),
415
474
  "t": await self.simulator.get_simulator_second_from_start_of_day(),
416
- "lng": -1,
417
- "lat": -1,
418
- "parent_id": -1,
475
+ "lng": lng,
476
+ "lat": lat,
477
+ "parent_id": parent_id,
419
478
  "action": "",
420
479
  "type": await agent.memory.get("type"),
421
- "nominal_gdp": await agent.memory.get("nominal_gdp"),
422
- "real_gdp": await agent.memory.get("real_gdp"),
423
- "unemployment": await agent.memory.get("unemployment"),
424
- "wages": await agent.memory.get("wages"),
425
- "prices": await agent.memory.get("prices"),
426
- "inventory": await agent.memory.get("inventory"),
427
- "price": await agent.memory.get("price"),
428
- "interest_rate": await agent.memory.get("interest_rate"),
429
- "bracket_cutoffs": await agent.memory.get(
430
- "bracket_cutoffs"
431
- ),
432
- "bracket_rates": await agent.memory.get("bracket_rates"),
433
- "employees": await agent.memory.get("employees"),
434
- "customers": await agent.memory.get("customers"),
480
+ "nominal_gdp": nominal_gdp,
481
+ "real_gdp": real_gdp,
482
+ "unemployment": unemployment,
483
+ "wages": wages,
484
+ "prices": prices,
485
+ "inventory": inventory,
486
+ "price": price,
487
+ "interest_rate": interest_rate,
488
+ "bracket_cutoffs": bracket_cutoffs,
489
+ "bracket_rates": bracket_rates,
490
+ "employees": employees,
435
491
  "created_at": _date_time,
436
492
  }
437
493
  _statuses_time_list.append((_status_dict, _date_time))
@@ -3,7 +3,7 @@ in-project = true
3
3
 
4
4
  [tool.poetry]
5
5
  name = "pycityagent"
6
- version = "2.0.0a30"
6
+ version = "2.0.0a32"
7
7
  description = "LLM-based城市环境agent构建库"
8
8
  authors = ["Yuwei Yan <pinkgranite86@gmail.com>","Junbo Yan <yanjb20thu@gmali.com>"]
9
9
  license = "MIT"
File without changes