Notes 18.09.

This commit is contained in:
2024-09-18 16:32:01 +02:00
parent 28d579ce59
commit 622f8bc009
7 changed files with 336 additions and 71 deletions

57
src/agent/agent.py Normal file
View 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
View 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
View 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
}