Run single tasks
This commit is contained in:
65
ums/agent/__main__.py
Normal file
65
ums/agent/__main__.py
Normal 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))
|
Reference in New Issue
Block a user