Notes 18.09.
This commit is contained in:
57
src/agent/agent.py
Normal file
57
src/agent/agent.py
Normal file
@ -0,0 +1,57 @@
|
||||
|
||||
from abc import abstractmethod
|
||||
from typing import List, Dict
|
||||
|
||||
from o_types import *
|
||||
|
||||
class Agent():
|
||||
|
||||
def process_result():
|
||||
pass
|
||||
|
||||
# hier die Kommunikation mit dem Management Server
|
||||
|
||||
""" ===== """
|
||||
|
||||
class ProcessAgent(Agent):
|
||||
TYPE:str = None
|
||||
|
||||
@abstractmethod
|
||||
def on_process_data(self, data:List[Data]):
|
||||
pass
|
||||
|
||||
class TextAgentExample(ProcessAgent):
|
||||
TYPE = Data.TYPE_TEXT
|
||||
def on_process_data(self, data:List[Data]):
|
||||
# Studi Code
|
||||
self.process_result(Data(...))
|
||||
|
||||
class ImageAgentExample(ProcessAgent):
|
||||
TYPE = Data.TYPE_IMAGE
|
||||
|
||||
class AudioAgentExample(ProcessAgent):
|
||||
TYPE = Data.TYPE_AUDIO
|
||||
|
||||
""" ===== """
|
||||
|
||||
class SolveAgent(Agent):
|
||||
|
||||
@abstractmethod
|
||||
def on_riddle_data(self, riddle:Riddle, data:List[Data]):
|
||||
pass
|
||||
|
||||
# Studi Code
|
||||
|
||||
self.new_riddle(Riddle('x', 'y', 'z'))
|
||||
self.send_riddle_result(...)
|
||||
|
||||
""" ===== """
|
||||
|
||||
class GatekeeperAgent(Agent):
|
||||
|
||||
@abstractmethod
|
||||
def on_result_check(self, xyz):
|
||||
|
||||
# Studi Code
|
||||
|
||||
self.send_check_result(accept=True|False, ...)
|
80
src/agent/basic_agent.py
Normal file
80
src/agent/basic_agent.py
Normal file
@ -0,0 +1,80 @@
|
||||
|
||||
from agent import Agent
|
||||
|
||||
class ProcessTextAgent(Agent):
|
||||
|
||||
TYPE = "text" or "image"
|
||||
|
||||
|
||||
def on_process_data(self, data:List[Dict]):
|
||||
return filter(lambda x: x["type"] == self.TYPE, data)
|
||||
|
||||
# {type: "text", "file" : ""}
|
||||
|
||||
class ExampleAgent(ProcessTextAgent):
|
||||
|
||||
|
||||
def on_process_data(self, data:List[Dict]):
|
||||
# {type: "text", "file" : ""}
|
||||
|
||||
self.after_process_data(result)
|
||||
|
||||
|
||||
|
||||
# disk -> 123
|
||||
# agent 1 disk -> 123
|
||||
|
||||
class Agent:
|
||||
def request_management(self, request):
|
||||
request.get(os.gentenv('MANAGEMENT'), data)
|
||||
# https ...
|
||||
|
||||
def write_result(...):
|
||||
self.request_management.write(...)
|
||||
|
||||
def read_result(...):
|
||||
self.request_management.read(...)
|
||||
|
||||
|
||||
class ProcessAgent(Agent):
|
||||
TYPE : str = None
|
||||
|
||||
def on_process_data(self, data:List[Dict]):
|
||||
pass
|
||||
|
||||
class TextAgent(ProcessAgent):
|
||||
TYPE = 'text'
|
||||
text_data = self.on_process_data()
|
||||
|
||||
def on_process_data(self, data:List[Dict]):
|
||||
text_data = filter_text_data()
|
||||
processed_data = text_func1(text_data)
|
||||
|
||||
self.write_result(processed_data)
|
||||
|
||||
def text_func1():
|
||||
...
|
||||
|
||||
def text_func2():
|
||||
...
|
||||
|
||||
def text_func3():
|
||||
...
|
||||
|
||||
class ImageAgent(ProcessAgent):
|
||||
TYPE = 'image'
|
||||
|
||||
image_data = self.on_process_data()
|
||||
|
||||
|
||||
def on_process_data(self, data:list[Dict])
|
||||
image_data = filter_image_data()
|
||||
|
||||
def image_func1():
|
||||
...
|
||||
|
||||
...
|
||||
|
||||
|
||||
|
||||
|
43
src/agent/o_types.py
Normal file
43
src/agent/o_types.py
Normal file
@ -0,0 +1,43 @@
|
||||
|
||||
from typing import List
|
||||
|
||||
class Riddle():
|
||||
|
||||
def __init__(self):
|
||||
self.id = "" # -> management.get_riddle_by_id(id)
|
||||
self.parent_id = "" # ?!
|
||||
|
||||
self.context = "1234"
|
||||
self.question = "12"
|
||||
|
||||
self.data:List[Data] = []
|
||||
|
||||
def from_json(json):
|
||||
return Riddle(json)
|
||||
|
||||
def to_json(self):
|
||||
return {
|
||||
"context" : self.context,
|
||||
"question" : self.question,
|
||||
"solution_before" : "", # if trial > 0
|
||||
"review_before": "" # if trial > 0
|
||||
}
|
||||
|
||||
class Data():
|
||||
|
||||
TYPE_TEXT = "text"
|
||||
TYPE_AUDIO = "audio"
|
||||
TYPE_IMAGE = "image"
|
||||
|
||||
def __init__(self):
|
||||
self.type = 1
|
||||
self.file = 2
|
||||
self.extraction = 3
|
||||
|
||||
def to_json(self):
|
||||
return {
|
||||
"type" : self.type,
|
||||
"file" : self.file,
|
||||
"extraction" : self.extraction
|
||||
}
|
||||
|
Reference in New Issue
Block a user