Initial commit: add .gitignore and README
This commit is contained in:
15
fusionagi/multi_agent/consensus.py
Normal file
15
fusionagi/multi_agent/consensus.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from typing import Any
|
||||
from collections import Counter
|
||||
from fusionagi._logger import logger
|
||||
|
||||
def consensus_vote(answers: list, key=None):
|
||||
if not answers:
|
||||
return None
|
||||
values = [a.get(key, a) if isinstance(a, dict) else a for a in answers] if key else list(answers)
|
||||
return Counter(values).most_common(1)[0][0]
|
||||
|
||||
def arbitrate(proposals: list, arbitrator="coordinator"):
|
||||
if not proposals:
|
||||
return {}
|
||||
logger.info("Arbitrate", extra={"arbitrator": arbitrator, "count": len(proposals)})
|
||||
return proposals[0]
|
||||
Reference in New Issue
Block a user