Run single tasks

This commit is contained in:
2024-10-30 20:24:12 +01:00
parent f2b9df7611
commit 786a230e78
9 changed files with 500 additions and 248 deletions

65
ums/agent/__main__.py Normal file
View File

@ -0,0 +1,65 @@
# Agenten Plattform
#
# (c) 2024 Magnus Bender
# Institute of Humanities-Centered Artificial Intelligence (CHAI)
# Universitaet Hamburg
# https://www.chai.uni-hamburg.de/~bender
#
# source code released under the terms of GNU Public License Version 3
# https://www.gnu.org/licenses/gpl-3.0.txt
import argparse, sys, os, json
from ums.agent.process import MessageProcessor
from ums.utils import AgentMessage, Riddle, SHARE_PATH, PERSIST_PATH
class _FakeBackgroundTask():
def add_task(self, call, *args):
call(*args)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Agenten Plattform Run Single Task')
parser.add_argument('-f', '--file', help="fetch the message (riddle) from this json file")
parser.add_argument('-d', '--dummy', help="use a dummy message (riddle)", action="store_true")
parser.add_argument('-i', '--stdin', help="get the message (riddle) from STDIN", action="store_true")
args = parser.parse_args()
message = None
if args.dummy:
message = AgentMessage(
id="dummy",
riddle=Riddle(context="Its a dummy.", question="No question!")
)
message.status.extract.required = False
elif args.stdin:
text = ''.join(sys.stdin.readlines())
message = AgentMessage.model_validate_json(text)
elif args.file:
if os.path.isfile(args.file):
f_name = args.file
elif os.path.isfile(os.path.join(SHARE_PATH, args.file)):
f_name = os.path.join(SHARE_PATH, args.file)
elif os.path.isfile(os.path.join(PERSIST_PATH, args.file)):
f_name = os.path.join(PERSIST_PATH, args.file)
else:
print()
print(f"\tFile {args.file} not found!")
print()
f_name = None
if not f_name is None:
message = AgentMessage.model_validate(
json.load(open(f_name, 'r'))
)
if message is None:
parser.print_help()
else:
mp = MessageProcessor(disable_messages=True)
response = mp.new_message(message, _FakeBackgroundTask())
print("\tResponse:")
print(response.model_dump_json(indent=2))