pycityagent 2.0.0a73__cp310-cp310-macosx_11_0_arm64.whl → 2.0.0a75__cp310-cp310-macosx_11_0_arm64.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.
- pycityagent/agent/agent.py +3 -2
- pycityagent/agent/agent_base.py +43 -3
- pycityagent/cityagent/blocks/cognition_block.py +2 -1
- pycityagent/cityagent/blocks/economy_block.py +3 -3
- pycityagent/cityagent/blocks/mobility_block.py +17 -20
- pycityagent/cityagent/blocks/needs_block.py +2 -0
- pycityagent/cityagent/blocks/plan_block.py +2 -4
- pycityagent/cityagent/blocks/utils.py +0 -1
- pycityagent/cityagent/initial.py +0 -2
- pycityagent/cityagent/memory_config.py +40 -41
- pycityagent/cityagent/societyagent.py +9 -10
- pycityagent/environment/sim/sim_env.py +6 -2
- pycityagent/environment/simulator.py +113 -84
- pycityagent/llm/llm.py +105 -104
- pycityagent/memory/memory.py +1 -1
- pycityagent/pycityagent-sim +0 -0
- pycityagent/simulation/agentgroup.py +25 -22
- pycityagent/simulation/simulation.py +71 -38
- pycityagent/tools/tool.py +1 -0
- {pycityagent-2.0.0a73.dist-info → pycityagent-2.0.0a75.dist-info}/METADATA +1 -1
- {pycityagent-2.0.0a73.dist-info → pycityagent-2.0.0a75.dist-info}/RECORD +25 -25
- {pycityagent-2.0.0a73.dist-info → pycityagent-2.0.0a75.dist-info}/LICENSE +0 -0
- {pycityagent-2.0.0a73.dist-info → pycityagent-2.0.0a75.dist-info}/WHEEL +0 -0
- {pycityagent-2.0.0a73.dist-info → pycityagent-2.0.0a75.dist-info}/entry_points.txt +0 -0
- {pycityagent-2.0.0a73.dist-info → pycityagent-2.0.0a75.dist-info}/top_level.txt +0 -0
@@ -22,12 +22,18 @@ from ..llm.llmconfig import LLMConfig
|
|
22
22
|
from ..memory import FaissQuery, Memory
|
23
23
|
from ..message import Messager
|
24
24
|
from ..metrics import MlflowClient
|
25
|
-
from ..utils import (
|
26
|
-
|
25
|
+
from ..utils import (
|
26
|
+
DIALOG_SCHEMA,
|
27
|
+
INSTITUTION_STATUS_SCHEMA,
|
28
|
+
PROFILE_SCHEMA,
|
29
|
+
STATUS_SCHEMA,
|
30
|
+
SURVEY_SCHEMA,
|
31
|
+
)
|
27
32
|
|
28
33
|
logger = logging.getLogger("pycityagent")
|
29
34
|
__all__ = ["AgentGroup"]
|
30
35
|
|
36
|
+
|
31
37
|
@ray.remote
|
32
38
|
class AgentGroup:
|
33
39
|
def __init__(
|
@@ -36,6 +42,7 @@ class AgentGroup:
|
|
36
42
|
number_of_agents: Union[int, list[int]],
|
37
43
|
memory_config_function_group: dict[type[Agent], Callable],
|
38
44
|
config: dict,
|
45
|
+
map_ref: ray.ObjectRef,
|
39
46
|
exp_name: str,
|
40
47
|
exp_id: Union[str, UUID],
|
41
48
|
enable_avro: bool,
|
@@ -47,8 +54,8 @@ class AgentGroup:
|
|
47
54
|
embedding_model: Embeddings,
|
48
55
|
logging_level: int,
|
49
56
|
agent_config_file: Optional[dict[type[Agent], str]] = None,
|
50
|
-
environment: Optional[dict[str, str]] = None,
|
51
57
|
llm_semaphore: int = 200,
|
58
|
+
environment: Optional[dict] = None,
|
52
59
|
):
|
53
60
|
"""
|
54
61
|
Represents a group of agents that can be deployed in a Ray distributed environment.
|
@@ -64,6 +71,7 @@ class AgentGroup:
|
|
64
71
|
- `number_of_agents` (Union[int, List[int]]): Number of instances to create for each agent class.
|
65
72
|
- `memory_config_function_group` (Dict[Type[Agent], Callable]): Functions to configure memory for each agent type.
|
66
73
|
- `config` (dict): Configuration settings for the agent group.
|
74
|
+
- `map_ref` (ray.ObjectRef): Reference to the map object.
|
67
75
|
- `exp_name` (str): Name of the experiment.
|
68
76
|
- `exp_id` (str | UUID): Identifier for the experiment.
|
69
77
|
- `enable_avro` (bool): Flag to enable AVRO file support.
|
@@ -143,10 +151,12 @@ class AgentGroup:
|
|
143
151
|
self.llm.set_semaphore(llm_semaphore)
|
144
152
|
|
145
153
|
# prepare Simulator
|
146
|
-
logger.info(f"-----
|
154
|
+
logger.info(f"-----Initializing Simulator in AgentGroup {self._uuid} ...")
|
147
155
|
self.simulator = Simulator(config["simulator_request"])
|
148
|
-
self.
|
149
|
-
self.
|
156
|
+
self.simulator.set_map(map_ref)
|
157
|
+
self.projector = pyproj.Proj(
|
158
|
+
ray.get(self.simulator.map.get_projector.remote()) # type:ignore
|
159
|
+
)
|
150
160
|
# prepare Economy client
|
151
161
|
logger.info(f"-----Creating Economy client in AgentGroup {self._uuid} ...")
|
152
162
|
self.economy_client = EconomyClient(
|
@@ -206,7 +216,7 @@ class AgentGroup:
|
|
206
216
|
@property
|
207
217
|
def agent_type(self):
|
208
218
|
return self.agent_class
|
209
|
-
|
219
|
+
|
210
220
|
async def get_economy_ids(self):
|
211
221
|
return await self.economy_client.get_ids()
|
212
222
|
|
@@ -430,16 +440,6 @@ class AgentGroup:
|
|
430
440
|
agent = self.id2agent[target_agent_uuid]
|
431
441
|
await agent.status.update(target_key, content)
|
432
442
|
|
433
|
-
async def update_environment(self, key: str, value: str):
|
434
|
-
"""
|
435
|
-
Updates the environment with a given key-value pair.
|
436
|
-
|
437
|
-
- **Args**:
|
438
|
-
- `key` (str): The key to update in the environment.
|
439
|
-
- `value` (str): The value to set for the specified key.
|
440
|
-
"""
|
441
|
-
self.simulator.update_environment(key, value)
|
442
|
-
|
443
443
|
async def message_dispatch(self):
|
444
444
|
"""
|
445
445
|
Dispatches messages received via MQTT to the appropriate agents.
|
@@ -788,15 +788,18 @@ class AgentGroup:
|
|
788
788
|
"""
|
789
789
|
try:
|
790
790
|
tasks = [agent.run() for agent in self.agents]
|
791
|
-
await asyncio.gather(*tasks)
|
792
|
-
simulator_log =
|
791
|
+
agent_time_log = await asyncio.gather(*tasks)
|
792
|
+
simulator_log = (
|
793
|
+
self.simulator.get_log_list() + self.economy_client.get_log_list()
|
794
|
+
)
|
793
795
|
group_logs = {
|
794
796
|
"llm_log": self.llm.get_log_list(),
|
795
|
-
"mqtt_log": ray.get(self.messager.get_log_list.remote()),
|
796
|
-
"simulator_log": simulator_log
|
797
|
+
"mqtt_log": ray.get(self.messager.get_log_list.remote()), # type:ignore
|
798
|
+
"simulator_log": simulator_log,
|
799
|
+
"agent_time_log": agent_time_log,
|
797
800
|
}
|
798
801
|
self.llm.clear_log_list()
|
799
|
-
self.messager.clear_log_list.remote()
|
802
|
+
self.messager.clear_log_list.remote() # type:ignore
|
800
803
|
self.simulator.clear_log_list()
|
801
804
|
self.economy_client.clear_log_list()
|
802
805
|
return group_logs
|
@@ -13,30 +13,21 @@ import yaml
|
|
13
13
|
from langchain_core.embeddings import Embeddings
|
14
14
|
|
15
15
|
from ..agent import Agent, InstitutionAgent
|
16
|
-
from ..cityagent import BankAgent, FirmAgent, GovernmentAgent, NBSAgent,
|
17
|
-
|
18
|
-
memory_config_bank,
|
19
|
-
memory_config_firm,
|
20
|
-
memory_config_government,
|
21
|
-
memory_config_nbs,
|
22
|
-
memory_config_societyagent,
|
23
|
-
memory_config_init,
|
24
|
-
)
|
16
|
+
from ..cityagent import (BankAgent, FirmAgent, GovernmentAgent, NBSAgent,
|
17
|
+
SocietyAgent)
|
25
18
|
from ..cityagent.initial import bind_agent_info, initialize_social_network
|
26
|
-
from ..cityagent.
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
19
|
+
from ..cityagent.memory_config import (memory_config_bank, memory_config_firm,
|
20
|
+
memory_config_government,
|
21
|
+
memory_config_init, memory_config_nbs,
|
22
|
+
memory_config_societyagent)
|
23
|
+
from ..cityagent.message_intercept import (EdgeMessageBlock,
|
24
|
+
MessageBlockListener,
|
25
|
+
PointMessageBlock)
|
31
26
|
from ..economy.econ_client import EconomyClient
|
32
27
|
from ..environment import Simulator
|
33
28
|
from ..llm import SimpleEmbedding
|
34
|
-
from ..message import (
|
35
|
-
|
36
|
-
MessageBlockListenerBase,
|
37
|
-
MessageInterceptor,
|
38
|
-
Messager,
|
39
|
-
)
|
29
|
+
from ..message import (MessageBlockBase, MessageBlockListenerBase,
|
30
|
+
MessageInterceptor, Messager)
|
40
31
|
from ..metrics import init_mlflow_connection
|
41
32
|
from ..metrics.mlflow_client import MlflowClient
|
42
33
|
from ..survey import Survey
|
@@ -49,6 +40,7 @@ logger = logging.getLogger("pycityagent")
|
|
49
40
|
|
50
41
|
__all__ = ["AgentSimulation"]
|
51
42
|
|
43
|
+
|
52
44
|
class AgentSimulation:
|
53
45
|
"""
|
54
46
|
A class to simulate a multi-agent system.
|
@@ -130,12 +122,16 @@ class AgentSimulation:
|
|
130
122
|
_simulator_config = config["simulator_request"].get("simulator", {})
|
131
123
|
if "server" in _simulator_config:
|
132
124
|
raise ValueError(f"Passing Traffic Simulation address is not supported!")
|
133
|
-
|
125
|
+
simulator = Simulator(config["simulator_request"], create_map=True)
|
126
|
+
self._simulator = simulator
|
127
|
+
self._map_ref = self._simulator.map
|
128
|
+
server_addr = self._simulator.get_server_addr()
|
129
|
+
config["simulator_request"]["simulator"]["server"] = server_addr
|
134
130
|
self._economy_client = EconomyClient(
|
135
131
|
config["simulator_request"]["simulator"]["server"]
|
136
132
|
)
|
137
133
|
if enable_institution:
|
138
|
-
self._economy_addr = economy_addr =
|
134
|
+
self._economy_addr = economy_addr = server_addr
|
139
135
|
if economy_addr is None:
|
140
136
|
raise ValueError(
|
141
137
|
f"`simulator` not provided in `simulator_request`, thus unable to activate economy!"
|
@@ -312,7 +308,7 @@ class AgentSimulation:
|
|
312
308
|
"crime": "The crime rate is low",
|
313
309
|
"pollution": "The pollution level is low",
|
314
310
|
"temperature": "The temperature is normal",
|
315
|
-
"day": "Workday"
|
311
|
+
"day": "Workday",
|
316
312
|
},
|
317
313
|
)
|
318
314
|
simulation._simulator.set_environment(environment)
|
@@ -382,24 +378,43 @@ class AgentSimulation:
|
|
382
378
|
llm_log_lists = []
|
383
379
|
mqtt_log_lists = []
|
384
380
|
simulator_log_lists = []
|
381
|
+
agent_time_log_lists = []
|
385
382
|
for step in config["workflow"]:
|
386
383
|
logger.info(
|
387
384
|
f"Running step: type: {step['type']} - description: {step.get('description', 'no description')}"
|
388
385
|
)
|
389
|
-
if step["type"] not in [
|
386
|
+
if step["type"] not in [
|
387
|
+
"run",
|
388
|
+
"step",
|
389
|
+
"interview",
|
390
|
+
"survey",
|
391
|
+
"intervene",
|
392
|
+
"pause",
|
393
|
+
"resume",
|
394
|
+
"function",
|
395
|
+
]:
|
390
396
|
raise ValueError(f"Invalid step type: {step['type']}")
|
391
397
|
if step["type"] == "run":
|
392
|
-
llm_log_list, mqtt_log_list, simulator_log_list =
|
398
|
+
llm_log_list, mqtt_log_list, simulator_log_list, agent_time_log_list = (
|
399
|
+
await simulation.run(step.get("days", 1))
|
400
|
+
)
|
393
401
|
llm_log_lists.extend(llm_log_list)
|
394
402
|
mqtt_log_lists.extend(mqtt_log_list)
|
395
403
|
simulator_log_lists.extend(simulator_log_list)
|
404
|
+
agent_time_log_lists.extend(agent_time_log_list)
|
396
405
|
elif step["type"] == "step":
|
397
406
|
times = step.get("times", 1)
|
398
407
|
for _ in range(times):
|
399
|
-
|
408
|
+
(
|
409
|
+
llm_log_list,
|
410
|
+
mqtt_log_list,
|
411
|
+
simulator_log_list,
|
412
|
+
agent_time_log_list,
|
413
|
+
) = await simulation.step()
|
400
414
|
llm_log_lists.extend(llm_log_list)
|
401
415
|
mqtt_log_lists.extend(mqtt_log_list)
|
402
416
|
simulator_log_lists.extend(simulator_log_list)
|
417
|
+
agent_time_log_lists.extend(agent_time_log_list)
|
403
418
|
elif step["type"] == "pause":
|
404
419
|
await simulation.pause_simulator()
|
405
420
|
elif step["type"] == "resume":
|
@@ -407,8 +422,8 @@ class AgentSimulation:
|
|
407
422
|
else:
|
408
423
|
await step["func"](simulation)
|
409
424
|
logger.info("Simulation finished")
|
410
|
-
return llm_log_lists, mqtt_log_lists, simulator_log_lists
|
411
|
-
|
425
|
+
return llm_log_lists, mqtt_log_lists, simulator_log_lists, agent_time_log_lists
|
426
|
+
|
412
427
|
@property
|
413
428
|
def enable_avro(
|
414
429
|
self,
|
@@ -742,6 +757,7 @@ class AgentSimulation:
|
|
742
757
|
number_of_agents,
|
743
758
|
memory_config_function_group,
|
744
759
|
self.config,
|
760
|
+
self._map_ref,
|
745
761
|
self.exp_name,
|
746
762
|
self.exp_id,
|
747
763
|
self.enable_avro,
|
@@ -753,8 +769,8 @@ class AgentSimulation:
|
|
753
769
|
embedding_model,
|
754
770
|
self.logging_level,
|
755
771
|
config_file,
|
756
|
-
environment,
|
757
772
|
llm_semaphore,
|
773
|
+
environment,
|
758
774
|
)
|
759
775
|
creation_tasks.append((group_name, group))
|
760
776
|
|
@@ -1018,7 +1034,9 @@ class AgentSimulation:
|
|
1018
1034
|
|
1019
1035
|
# step
|
1020
1036
|
simulator_day = await self._simulator.get_simulator_day()
|
1021
|
-
simulator_time = int(
|
1037
|
+
simulator_time = int(
|
1038
|
+
await self._simulator.get_simulator_second_from_start_of_day()
|
1039
|
+
)
|
1022
1040
|
logger.info(
|
1023
1041
|
f"Start simulation day {simulator_day} at {simulator_time}, step {self._total_steps}"
|
1024
1042
|
)
|
@@ -1029,14 +1047,17 @@ class AgentSimulation:
|
|
1029
1047
|
llm_log_list = []
|
1030
1048
|
mqtt_log_list = []
|
1031
1049
|
simulator_log_list = []
|
1050
|
+
agent_time_log_list = []
|
1032
1051
|
for log_messages_group in log_messages_groups:
|
1033
|
-
llm_log_list.extend(log_messages_group[
|
1034
|
-
mqtt_log_list.extend(log_messages_group[
|
1035
|
-
simulator_log_list.extend(log_messages_group[
|
1036
|
-
|
1052
|
+
llm_log_list.extend(log_messages_group["llm_log"])
|
1053
|
+
mqtt_log_list.extend(log_messages_group["mqtt_log"])
|
1054
|
+
simulator_log_list.extend(log_messages_group["simulator_log"])
|
1055
|
+
agent_time_log_list.extend(log_messages_group["agent_time_log"])
|
1037
1056
|
# save
|
1038
1057
|
simulator_day = await self._simulator.get_simulator_day()
|
1039
|
-
simulator_time = int(
|
1058
|
+
simulator_time = int(
|
1059
|
+
await self._simulator.get_simulator_second_from_start_of_day()
|
1060
|
+
)
|
1040
1061
|
save_tasks = []
|
1041
1062
|
for group in self._groups.values():
|
1042
1063
|
save_tasks.append(group.save.remote(simulator_day, simulator_time))
|
@@ -1050,7 +1071,7 @@ class AgentSimulation:
|
|
1050
1071
|
]
|
1051
1072
|
await self.extract_metric(to_excute_metric)
|
1052
1073
|
|
1053
|
-
return llm_log_list, mqtt_log_list, simulator_log_list
|
1074
|
+
return llm_log_list, mqtt_log_list, simulator_log_list, agent_time_log_list
|
1054
1075
|
except Exception as e:
|
1055
1076
|
import traceback
|
1056
1077
|
|
@@ -1081,6 +1102,7 @@ class AgentSimulation:
|
|
1081
1102
|
llm_log_lists = []
|
1082
1103
|
mqtt_log_lists = []
|
1083
1104
|
simulator_log_lists = []
|
1105
|
+
agent_time_log_lists = []
|
1084
1106
|
try:
|
1085
1107
|
self._exp_info["num_day"] += day
|
1086
1108
|
await self._update_exp_status(1) # 更新状态为运行中
|
@@ -1098,10 +1120,16 @@ class AgentSimulation:
|
|
1098
1120
|
current_time = await self._simulator.get_time()
|
1099
1121
|
if current_time >= end_time: # type:ignore
|
1100
1122
|
break
|
1101
|
-
|
1123
|
+
(
|
1124
|
+
llm_log_list,
|
1125
|
+
mqtt_log_list,
|
1126
|
+
simulator_log_list,
|
1127
|
+
agent_time_log_list,
|
1128
|
+
) = await self.step()
|
1102
1129
|
llm_log_lists.extend(llm_log_list)
|
1103
1130
|
mqtt_log_lists.extend(mqtt_log_list)
|
1104
1131
|
simulator_log_lists.extend(simulator_log_list)
|
1132
|
+
agent_time_log_lists.extend(agent_time_log_list)
|
1105
1133
|
finally:
|
1106
1134
|
# 设置停止事件
|
1107
1135
|
stop_event.set()
|
@@ -1110,7 +1138,12 @@ class AgentSimulation:
|
|
1110
1138
|
|
1111
1139
|
# 运行成功后更新状态
|
1112
1140
|
await self._update_exp_status(2)
|
1113
|
-
return
|
1141
|
+
return (
|
1142
|
+
llm_log_lists,
|
1143
|
+
mqtt_log_lists,
|
1144
|
+
simulator_log_lists,
|
1145
|
+
agent_time_log_lists,
|
1146
|
+
)
|
1114
1147
|
except Exception as e:
|
1115
1148
|
error_msg = f"模拟器运行错误: {str(e)}"
|
1116
1149
|
logger.error(error_msg)
|
pycityagent/tools/tool.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: pycityagent
|
3
|
-
Version: 2.0.
|
3
|
+
Version: 2.0.0a75
|
4
4
|
Summary: LLM-based city environment agent building library
|
5
5
|
Author-email: Yuwei Yan <pinkgranite86@gmail.com>, Junbo Yan <yanjb20thu@gmali.com>, Jun Zhang <zhangjun990222@gmali.com>
|
6
6
|
License: MIT License
|
@@ -1,10 +1,4 @@
|
|
1
|
-
pycityagent-
|
2
|
-
pycityagent-2.0.0a73.dist-info/LICENSE,sha256=n2HPXiupinpyHMnIkbCf3OTYd3KMqbmldu1e7av0CAU,1084
|
3
|
-
pycityagent-2.0.0a73.dist-info/WHEEL,sha256=ezfKMaDztqf77C8lvQ0NCnZxkTaOaKLprqJ8q932MhU,109
|
4
|
-
pycityagent-2.0.0a73.dist-info/entry_points.txt,sha256=BZcne49AAIFv-hawxGnPbblea7X3MtAtoPyDX8L4OC4,132
|
5
|
-
pycityagent-2.0.0a73.dist-info/top_level.txt,sha256=yOmeu6cSXmiUtScu53a3s0p7BGtLMaV0aff83EHCTic,43
|
6
|
-
pycityagent-2.0.0a73.dist-info/METADATA,sha256=6YwxQbl14QnhjbHMwMPu4RoaBquNt8mSIXGJFaoD_CQ,9110
|
7
|
-
pycityagent/pycityagent-sim,sha256=MYlRyvlpybVbiqKehzfV3GUbhatuQHNrxNWRBOs3nsU,35884466
|
1
|
+
pycityagent/pycityagent-sim,sha256=SKLQqFopRD0jOmZJUDtoo3l3Vuzqf_sfV1xeHPjchO8,35884466
|
8
2
|
pycityagent/__init__.py,sha256=PUKWTXc-xdMG7px8oTNclodsILUgypANj2Z647sY63k,808
|
9
3
|
pycityagent/pycityagent-ui,sha256=Ur95yZygIaZ5l_CDqP9394M5GQ66iV5PkcNPYFWqzvk,41225346
|
10
4
|
pycityagent/metrics/mlflow_client.py,sha256=-iyh4BPVnBkluhmfucUzibCUnBX2iftkz4tVJJVxwHw,6958
|
@@ -12,13 +6,13 @@ pycityagent/metrics/__init__.py,sha256=X08PaBbGVAd7_PRGLREXWxaqm7nS82WBQpD1zvQzc
|
|
12
6
|
pycityagent/economy/__init__.py,sha256=aonY4WHnx-6EGJ4WKrx4S-2jAkYNLtqUA04jp6q8B7w,75
|
13
7
|
pycityagent/economy/econ_client.py,sha256=FUE-7Kxpa3u41eH_4Xye7IYquk1i25Hfv8Smq0nR1-o,24757
|
14
8
|
pycityagent/tools/__init__.py,sha256=y7sMVMHf0AbivlczM2h-kr7mkgXK-WAx3S9BXLXkWvw,235
|
15
|
-
pycityagent/tools/tool.py,sha256
|
9
|
+
pycityagent/tools/tool.py,sha256=4ZJSHbNM8dfAVwZEw8T0a2_9OuPsPQpKSVL4WxZVBUc,9022
|
16
10
|
pycityagent/llm/llmconfig.py,sha256=6AqCMV4B_JqBD2mb98bLGzpUdlOCnziQKae-Hhxxp-E,469
|
17
11
|
pycityagent/llm/__init__.py,sha256=iWs6FLgrbRVIiqOf4ILS89gkVCTvS7HFC3vG-MWuyko,205
|
18
|
-
pycityagent/llm/llm.py,sha256=
|
12
|
+
pycityagent/llm/llm.py,sha256=8f7hNbdcCjZHri5Fkmnd7s1p5hfFujIuv_wB1ykjLH8,19470
|
19
13
|
pycityagent/llm/embeddings.py,sha256=3610I-_scAy8HwRNpT8hVJpH9_8_pTLCPptqnzSq10o,11322
|
20
14
|
pycityagent/llm/utils.py,sha256=rSx_fp-_Gh0vZ-x2rqAUqnpS56BVTZ4ChfAMarB8S1A,195
|
21
|
-
pycityagent/memory/memory.py,sha256=
|
15
|
+
pycityagent/memory/memory.py,sha256=5mUweo-BgQYbXmVRAk7HTUXsar6O6iYz79VbLuMAvjo,45063
|
22
16
|
pycityagent/memory/profile.py,sha256=Z1shwFc6MqakorbiY6rGqVAgCJP4YTpDrqnMQZcYQno,5227
|
23
17
|
pycityagent/memory/__init__.py,sha256=NClJAXC4G6I8kFWkPEcU2lbVDfyrRb5HrrBHgCXrzOU,125
|
24
18
|
pycityagent/memory/memory_base.py,sha256=av_sbD62PZbJyM8E9wmVuqYqgsutghcO7nJdAxGpHi0,9784
|
@@ -27,9 +21,9 @@ pycityagent/memory/utils.py,sha256=oJWLdPeJy_jcdKcDTo9JAH9kDZhqjoQhhv_zT9qWC0w,8
|
|
27
21
|
pycityagent/memory/const.py,sha256=nFmjvt-8FEB0hc0glOH3lliqJhkhf3D_NKxWI0pf6TY,936
|
28
22
|
pycityagent/memory/faiss_query.py,sha256=KPeyzIjD0dzkxr-TlOeCiIlkdh1WAyyipCAXUEt97Lk,17350
|
29
23
|
pycityagent/memory/state.py,sha256=JFCBuK1AS-HqscvdGS9ATF9AUU8t29_2leDY_6iO2_4,5158
|
30
|
-
pycityagent/simulation/simulation.py,sha256=
|
24
|
+
pycityagent/simulation/simulation.py,sha256=b4sFPVAMdCi1aiG6GX2cSE3vYa2Q14XfyRkxHp1GRCc,49526
|
31
25
|
pycityagent/simulation/__init__.py,sha256=u1WpgwVxPboXWMxrUQKMXJNmTKQYAeCaqZv9HmSxESY,118
|
32
|
-
pycityagent/simulation/agentgroup.py,sha256=
|
26
|
+
pycityagent/simulation/agentgroup.py,sha256=oXo2iRUThh_96JhXHMufT8_BPx0PrlwqbMpiVqK_viA,36957
|
33
27
|
pycityagent/simulation/storage/pg.py,sha256=xRshSOGttW-p0re0fNBOjOpb-nQ5msIE2LsdT79_E_Y,8425
|
34
28
|
pycityagent/message/message_interceptor.py,sha256=QWuTUqi1Cu214fhFs0f78tD2zflMnb6zEAGB4RutXxs,17736
|
35
29
|
pycityagent/message/__init__.py,sha256=f5QH7DKPqEAMyfSlBMnl3uouOKlsoel909STlIe7nUk,276
|
@@ -43,16 +37,16 @@ pycityagent/utils/parsers/__init__.py,sha256=AN2xgiPxszWK4rpX7zrqRsqNwfGF3WnCA5-
|
|
43
37
|
pycityagent/utils/parsers/code_block_parser.py,sha256=jy6wHx9zypvJTWneCKuUaLQL19d4yLK6C_awc7y8A-k,1179
|
44
38
|
pycityagent/utils/parsers/parser_base.py,sha256=ZbqRcqOBL9hfHVZSltQSQmJnWrtuJS9aYeOJU-FlJ0E,1725
|
45
39
|
pycityagent/utils/parsers/json_parser.py,sha256=sakKohUuMcUH2toR85CAG_37D02ZoAn6LlzLgftUjmo,2923
|
46
|
-
pycityagent/agent/agent_base.py,sha256=
|
40
|
+
pycityagent/agent/agent_base.py,sha256=nz9QNfNjWVDza1yd8OwqmjZM3sq4fqONnVpcI8mA8cI,39488
|
47
41
|
pycityagent/agent/__init__.py,sha256=U20yKu9QwSqAx_PHk5JwipfODkDfxONtumVfnsKjWFg,180
|
48
|
-
pycityagent/agent/agent.py,sha256=
|
42
|
+
pycityagent/agent/agent.py,sha256=Tq6VfEahZdZtWL4tdEM-rJM1FrLgjA5X0O04-sLYH-g,18881
|
49
43
|
pycityagent/cli/wrapper.py,sha256=bAwmfWTXbGld-uiMnIMhKp22IVRQjhLUToknyUDk9rQ,1147
|
50
44
|
pycityagent/workflow/__init__.py,sha256=H08Ko3eliZvuuCMajbEri-IP4-SeswYU6UjHBNA4Ze0,490
|
51
45
|
pycityagent/workflow/prompt.py,sha256=rzenP4EFGxbWE1aq-x2036b6umKvi5cQx2xtWULwgIk,3392
|
52
46
|
pycityagent/workflow/block.py,sha256=WJfCeL8e117GzkVPJCRNsQZZinccMnVyEubkwrf-17U,12295
|
53
47
|
pycityagent/workflow/trigger.py,sha256=4nzAwywGQsFabgo6gzp-vD2EV4wII7Z0LHGEAsflSEY,7608
|
54
48
|
pycityagent/environment/__init__.py,sha256=fFIth2jxxgZ92cXm-aoM2igHgaSqsYGwtBhyb7opjzk,166
|
55
|
-
pycityagent/environment/simulator.py,sha256=
|
49
|
+
pycityagent/environment/simulator.py,sha256=PpO4XyIbn5fSqycBlRYdGWuRumDzeXXM8ZQr8U5Mgcs,22608
|
56
50
|
pycityagent/environment/utils/port.py,sha256=3OM6kSUt3PxvDUOlgyiendBtETaWU8Mzk_8H0TzTmYg,295
|
57
51
|
pycityagent/environment/utils/grpc.py,sha256=_lB4-k4dTKuNvApaDiYgFxiLTPtYG42DVQtG9yOj9pQ,2022
|
58
52
|
pycityagent/environment/utils/base64.py,sha256=hoREzQo3FXMN79pqQLO2jgsDEvudciomyKii7MWljAM,374
|
@@ -64,7 +58,7 @@ pycityagent/environment/utils/const.py,sha256=1LqxnYJ8FSmq37fN5kIFlWLwycEDzFa8SF
|
|
64
58
|
pycityagent/environment/sim/pause_service.py,sha256=UUTa4pTBOX_MGKki9QDgKId7scch0waAWF9xRVmNlAs,1701
|
65
59
|
pycityagent/environment/sim/person_service.py,sha256=T1pRi5jDcivSInX7iGZoHKYZmgO7_t5MYtLhU12_LC4,10793
|
66
60
|
pycityagent/environment/sim/aoi_service.py,sha256=bYVJDrOfDn8hgOORDU7PxMaT-fpqXA5Z0A080l2EPBc,1242
|
67
|
-
pycityagent/environment/sim/sim_env.py,sha256=
|
61
|
+
pycityagent/environment/sim/sim_env.py,sha256=UPSMNrLJVGj1IqUPxHaoLE5NbgI200trOxCsP0RYi8s,4767
|
68
62
|
pycityagent/environment/sim/lane_service.py,sha256=bmf0zOWkxDzMEDlhTdHNRJRiTFGgzjbeqmex387gHZs,3964
|
69
63
|
pycityagent/environment/sim/client.py,sha256=x4REWPRFG_C2s0-CWz8MnYalD_esfu2pPHf_vpsCG78,2852
|
70
64
|
pycityagent/environment/sim/__init__.py,sha256=CyJc5Tey9MgzomZv0ynAcV0yaUlSE3bPbegYXar8wJc,601
|
@@ -73,25 +67,31 @@ pycityagent/environment/sim/light_service.py,sha256=q4pKcGrm7WU0h29I1dFIDOz2OV0B
|
|
73
67
|
pycityagent/environment/sim/clock_service.py,sha256=4Hly8CToghj0x_XbDgGrIZy1YYAlDH0EUGCiCDYpk_I,1375
|
74
68
|
pycityagent/environment/sim/road_service.py,sha256=Bb1sreO0Knt9tcqH_WJF-I3P3G92bRAlzDBEa--25GE,1297
|
75
69
|
pycityagent/cityagent/metrics.py,sha256=yXZ4uRXARjDAvPKyquut7YWs363nDcIV0J1KQgYacZE,2169
|
76
|
-
pycityagent/cityagent/memory_config.py,sha256=
|
70
|
+
pycityagent/cityagent/memory_config.py,sha256=_7ujYGgalnnulBvOT_HCuy9uITd5l6br5THkC53hgNE,11868
|
77
71
|
pycityagent/cityagent/bankagent.py,sha256=uL9ATilEddhJR25qW0p8jX6I9QKGm3gDi1wmJNr6Hbg,4036
|
78
72
|
pycityagent/cityagent/__init__.py,sha256=gcBQ-a50XegFtjigQ7xDXRBZrywBKqifiQFSRnEF8gM,572
|
79
73
|
pycityagent/cityagent/firmagent.py,sha256=x9Yvrd9j0dSILUm__e9dBT7FBgJ0q7VFzbNUC10Vg5A,3677
|
80
74
|
pycityagent/cityagent/nbsagent.py,sha256=2021QjPm2JFhDJ0KKNpEZwtTT8GaGyj2zf6KCKHdL3Y,4059
|
81
|
-
pycityagent/cityagent/initial.py,sha256=
|
82
|
-
pycityagent/cityagent/societyagent.py,sha256=
|
75
|
+
pycityagent/cityagent/initial.py,sha256=Nrmwj5nflk_wg81kRU69GGZQLNM49qhQTSRFpOUBk_Y,6071
|
76
|
+
pycityagent/cityagent/societyagent.py,sha256=dY8coUMtrTrcATCYDdI0MvVt42YXSyP-ZWi24H9xg7o,20090
|
83
77
|
pycityagent/cityagent/message_intercept.py,sha256=dyT1G-nMxKb2prhgtyFFHFz593qBrkk5DnHsHvG1OIc,4418
|
84
78
|
pycityagent/cityagent/governmentagent.py,sha256=XIyggG83FWUTZdOuoqc6ClCP3hhfkxNmtYRu9TFo0dU,3063
|
85
79
|
pycityagent/cityagent/blocks/dispatcher.py,sha256=U5BPeUrjrTyDaznYfT6YUJIW8vfKVRDF4EO0oOn6Td4,2886
|
86
|
-
pycityagent/cityagent/blocks/needs_block.py,sha256=
|
87
|
-
pycityagent/cityagent/blocks/cognition_block.py,sha256=
|
80
|
+
pycityagent/cityagent/blocks/needs_block.py,sha256=NYKrGDoYCuXoupMNMuSNhx4Ci1paC_EuGRWvp5-ZSA8,15909
|
81
|
+
pycityagent/cityagent/blocks/cognition_block.py,sha256=cCflH-1lAexWLamT412nXERoUln0tbaFMxdJKYmFpfs,15179
|
88
82
|
pycityagent/cityagent/blocks/social_block.py,sha256=eedOlwRTGI47QFELYmfe2a_aj0GuHJweSyDxA6AYXcU,15493
|
89
83
|
pycityagent/cityagent/blocks/__init__.py,sha256=h6si6WBcVVuglIskKQKA8Cxtf_VKen1sNPqOFKI311Q,420
|
90
|
-
pycityagent/cityagent/blocks/economy_block.py,sha256=
|
91
|
-
pycityagent/cityagent/blocks/utils.py,sha256=
|
84
|
+
pycityagent/cityagent/blocks/economy_block.py,sha256=1yHUdCSAzvvhdGFzMfSM_wtbW_3D6YeYSNlVV3yQqsA,19083
|
85
|
+
pycityagent/cityagent/blocks/utils.py,sha256=BVOTtZC8dJIc0eGGNmL0LQ_WnMfXr54q1gyrrDwRn-Y,2079
|
92
86
|
pycityagent/cityagent/blocks/other_block.py,sha256=LdtL6248xvMvvRQx6NvdlJrWWZFu8Xusjxb9yEh1M0k,4365
|
93
|
-
pycityagent/cityagent/blocks/plan_block.py,sha256=
|
94
|
-
pycityagent/cityagent/blocks/mobility_block.py,sha256=
|
87
|
+
pycityagent/cityagent/blocks/plan_block.py,sha256=A5DvtXIy98MZkRGUQmp26grNI5i0BVbl3aEM_Ebd6Z4,11271
|
88
|
+
pycityagent/cityagent/blocks/mobility_block.py,sha256=qkRiV0nkGOUUoo9lGIjAFE_Hl0kiyMev12-Zm7JyV7o,15089
|
95
89
|
pycityagent/survey/models.py,sha256=g3xni4GcA1Py3vlGt6z4ltutjgQ4G0uINYAM8vKRJAw,5225
|
96
90
|
pycityagent/survey/__init__.py,sha256=rxwou8U9KeFSP7rMzXtmtp2fVFZxK4Trzi-psx9LPIs,153
|
97
91
|
pycityagent/survey/manager.py,sha256=tHkdeq4lTfAHwvgf4-udsXri0z2l6E00rEbvwl7SqRs,3439
|
92
|
+
pycityagent-2.0.0a75.dist-info/RECORD,,
|
93
|
+
pycityagent-2.0.0a75.dist-info/LICENSE,sha256=n2HPXiupinpyHMnIkbCf3OTYd3KMqbmldu1e7av0CAU,1084
|
94
|
+
pycityagent-2.0.0a75.dist-info/WHEEL,sha256=ezfKMaDztqf77C8lvQ0NCnZxkTaOaKLprqJ8q932MhU,109
|
95
|
+
pycityagent-2.0.0a75.dist-info/entry_points.txt,sha256=BZcne49AAIFv-hawxGnPbblea7X3MtAtoPyDX8L4OC4,132
|
96
|
+
pycityagent-2.0.0a75.dist-info/top_level.txt,sha256=yOmeu6cSXmiUtScu53a3s0p7BGtLMaV0aff83EHCTic,43
|
97
|
+
pycityagent-2.0.0a75.dist-info/METADATA,sha256=uxmly0-t1dIjZF7m8XBXef9tOqvHmO6MmcZavJ4i7Yc,9110
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|