Schema Idea
All checks were successful
Build and push Docker image at git tag / build (push) Successful in 44s

This commit is contained in:
Magnus Bender 2024-10-30 21:07:54 +01:00
parent 786a230e78
commit f2f9819d27
Signed by: bender
GPG Key ID: 5149A211831F2BD7
10 changed files with 1452 additions and 674 deletions

View File

@ -1,13 +1,25 @@
# 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 random
import random, os, json
from abc import abstractmethod, ABC
from enum import Enum
from typing import List, Callable
from pydantic import validate_call
from ums.utils import (
RiddleInformation, AgentMessage, RiddleDataType, RiddleData, Riddle,
RiddleStatus, RiddleSolution,
ExtractedData,
logger
)
@ -34,6 +46,7 @@ class BasicAgent(ABC):
"""
pass
@validate_call
def __init__(self, message:AgentMessage, send_message:Callable[[AgentMessage], bool]):
self._send_message = send_message
self._sub_cnt = 0
@ -57,7 +70,8 @@ class BasicAgent(ABC):
logger.debug(f"Response sent {self._response.id}")
else:
logger.debug(f"Stopped response {self._response.id}")
@validate_call
def before_response(self, response:AgentMessage, send_it:Callable[[], None]) -> bool:
"""
This method is called before the response is sent.
@ -69,12 +83,14 @@ class BasicAgent(ABC):
"""
return True
@validate_call
def message(self) -> AgentMessage:
"""
Get the message this agent object is working on.
"""
return self._message;
@validate_call
def sub_riddle(self,
riddle:Riddle, data:List[RiddleData]=[], status:RiddleStatus=None
) -> AgentMessage|bool:
@ -122,6 +138,21 @@ class BasicAgent(ABC):
"""
pass
@validate_call
def get_extracted(self, data:RiddleData) -> ExtractedData|None:
"""
Loads the extracted data from the `data` item (i.e., from the file `data.file_extracted`).
Returns None if no extracted data found.
"""
if not data.file_extracted is None:
return ExtractedData.model_validate(
json.load(open(data.file_extracted, 'r'))
)
return None
class ExtractAgent(BasicAgent):
"""
An extraction agent.
@ -154,11 +185,33 @@ class ExtractAgent(BasicAgent):
self._response.status.extract.finished = True
@abstractmethod
@validate_call
def handle(self, data:RiddleData) -> RiddleData:
"""
Process the item `data`, create extraction file and return `data` with populated `data.file_extracted`.
"""
@validate_call
def store_extracted(self, data:RiddleData, extracted:ExtractedData) -> str:
"""
Stores the newly extracted data (in `extracted`) from `data` (i.e., `data.file_plain`)
and returns the filename to use in `data.file_extracted`.
"""
path_name = data.file_plain[:data.file_plain.rfind('.')]
candidate = "{}.json".format(path_name)
cnt = 0
while os.path.isfile(candidate):
cnt += 1
candidate = "{}-{}.json".format(path_name, cnt)
with open(candidate, 'w+') as f:
f.write(extracted.model_dump_json())
return candidate
class ExtractTextAgent(ExtractAgent):
"""
An extraction agent for text, create a subclass for your agent.
@ -206,7 +259,8 @@ class SolveAgent(BasicAgent):
self._do_response = True
@abstractmethod
def handle(self, riddle:Riddle, data:RiddleData) -> RiddleSolution:
@validate_call
def handle(self, riddle: Riddle, data: List[RiddleData]) -> RiddleSolution:
"""
Solve the `riddle` using `data` and return a solution.
"""
@ -237,6 +291,7 @@ class GatekeeperAgent(BasicAgent):
self._do_response = True
@abstractmethod
@validate_call
def handle(self, solution:RiddleSolution, riddle:Riddle) -> RiddleSolution:
"""
Check the `solution` of `riddle` and return solution with populated `solution.accepted` and `solution.review`.

View File

@ -8,10 +8,10 @@
# source code released under the terms of GNU Public License Version 3
# https://www.gnu.org/licenses/gpl-3.0.txt
from typing import Callable
from typing import Callable, List
from ums.agent import ExtractAudioAgent, ExtractImageAgent, ExtractTextAgent, SolveAgent, GatekeeperAgent
from ums.utils.types import AgentMessage, Riddle, RiddleData, RiddleSolution, RiddleStatus
from ums.utils import AgentMessage, Riddle, RiddleData, RiddleSolution, RiddleStatus, ExtractedData
"""
Examples for simple agents.
@ -31,6 +31,9 @@ class MyExtractImageAgent(ExtractImageAgent):
def handle(self, data: RiddleData) -> RiddleData:
print("Image Process:", data.file_plain)
extracted = ExtractedData(other={"info":"just a test"})
data.file_extracted = self.store_extracted(data, extracted)
return data
class MyExtractTextAgent(ExtractTextAgent):
@ -46,7 +49,10 @@ class MyExtractTextAgent(ExtractTextAgent):
class MySolveAgent(SolveAgent):
def handle(self, riddle: Riddle, data: RiddleData) -> RiddleSolution:
def handle(self, riddle: Riddle, data: List[RiddleData]) -> RiddleSolution:
for d in data:
print(self.get_extracted(d))
if self.message().id == "test":
status = RiddleStatus()

View File

@ -38,3 +38,8 @@ from ums.utils.types import (
from ums.utils.request import ManagementRequest
from ums.utils.functions import list_shared_data, list_shared_schema
from ums.utils.schema import (
ExtractionSchema,
ExtractedData
)

View File

@ -13,15 +13,73 @@
The types are implemented using [pydantic](https://docs.pydantic.dev/).
It provides validation, allow JSON serialization and works well with [FastAPI](https://fastapi.tiangolo.com/) which is used internally for the http request between the agents and the management.
**This is work in progress!**
"""
from enum import Enum
from typing import List, Any
from typing import List, Any, Dict
from pydantic import BaseModel
class ExtractionSchema(BaseModel):
"""
This is the basic class used as superclass for all extracted information from data items.
"""
For all the `ExtractionSchema` is is required that the data can be serialized to json.
Thus, mostly only default data types like `int, str, bool, list, dict, tuple` also including `ExtractionSchema` and `RiddleInformation` can be used here!
"""
class ExtractedContent(ExtractionSchema):
"""
An extracted content item.
"""
type : str
"""
The type, as a string, the actual string will depend on the extraction agent.
"""
content : str | Any
"""
The extracted content
"""
class ExtractedPositions(ExtractionSchema):
"""
A position (like time, coordinates, ...) where something was extracted (each position should belong to a content item).
"""
type : str
"""
The type, as a string, the actual string will depend on the extraction agent.
"""
position : str | int | Any
"""
The position, will also depend on the extraction agent.
"""
description : str | Any = None
"""
An optional description for more details.
"""
class ExtractedData(ExtractionSchema):
"""
Contains the extracted items from a data file.
"""
contents : List[ExtractedContent] = []
"""
The extracted contents (i.e., transcriptions etc.), each item here should belong a position item at the same index.
"""
positions : List[ExtractedPositions] = []
"""
The positions of extracted contents, each item here should belong a content item at the same index.
"""
other : Dict[str, Any] = {}
"""
Possibly more data. Use a keywords (depending on agent) and store the data there.
"""

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -114,10 +114,10 @@
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="c1"># source code released under the terms of GNU Public License Version 3</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="c1"># https://www.gnu.org/licenses/gpl-3.0.txt</span>
</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a>
</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a><span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Callable</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a><span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">List</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a><span class="kn">from</span> <span class="nn">ums.agent</span> <span class="kn">import</span> <span class="n">ExtractAudioAgent</span><span class="p">,</span> <span class="n">ExtractImageAgent</span><span class="p">,</span> <span class="n">ExtractTextAgent</span><span class="p">,</span> <span class="n">SolveAgent</span><span class="p">,</span> <span class="n">GatekeeperAgent</span>
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a><span class="kn">from</span> <span class="nn">ums.utils.types</span> <span class="kn">import</span> <span class="n">AgentMessage</span><span class="p">,</span> <span class="n">Riddle</span><span class="p">,</span> <span class="n">RiddleData</span><span class="p">,</span> <span class="n">RiddleSolution</span><span class="p">,</span> <span class="n">RiddleStatus</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a><span class="kn">from</span> <span class="nn">ums.utils</span> <span class="kn">import</span> <span class="n">AgentMessage</span><span class="p">,</span> <span class="n">Riddle</span><span class="p">,</span> <span class="n">RiddleData</span><span class="p">,</span> <span class="n">RiddleSolution</span><span class="p">,</span> <span class="n">RiddleStatus</span><span class="p">,</span> <span class="n">ExtractedData</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a><span class="sd"> Examples for simple agents.</span>
@ -137,44 +137,50 @@
</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a>
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">RiddleData</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleData</span><span class="p">:</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Image Process:&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">file_plain</span><span class="p">)</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a> <span class="k">return</span> <span class="n">data</span>
</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a>
</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a><span class="k">class</span> <span class="nc">MyExtractTextAgent</span><span class="p">(</span><span class="n">ExtractTextAgent</span><span class="p">):</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a>
</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a> <span class="k">def</span> <span class="nf">before_response</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">response</span><span class="p">:</span> <span class="n">AgentMessage</span><span class="p">,</span> <span class="n">send_it</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[],</span> <span class="kc">None</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;The response will be:&quot;</span><span class="p">,</span> <span class="n">response</span><span class="p">)</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a> <span class="k">return</span> <span class="kc">True</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a>
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">RiddleData</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleData</span><span class="p">:</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Text Process:&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">file_plain</span><span class="p">)</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a> <span class="k">return</span> <span class="n">data</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a>
</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a>
</span><span id="L-47"><a href="#L-47"><span class="linenos">47</span></a><span class="k">class</span> <span class="nc">MySolveAgent</span><span class="p">(</span><span class="n">SolveAgent</span><span class="p">):</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a>
</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="n">extracted</span> <span class="o">=</span> <span class="n">ExtractedData</span><span class="p">(</span><span class="n">other</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;info&quot;</span><span class="p">:</span><span class="s2">&quot;just a test&quot;</span><span class="p">})</span>
</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="n">data</span><span class="o">.</span><span class="n">file_extracted</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">store_extracted</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">extracted</span><span class="p">)</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a> <span class="k">return</span> <span class="n">data</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a>
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a><span class="k">class</span> <span class="nc">MyExtractTextAgent</span><span class="p">(</span><span class="n">ExtractTextAgent</span><span class="p">):</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a>
</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a> <span class="k">def</span> <span class="nf">before_response</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">response</span><span class="p">:</span> <span class="n">AgentMessage</span><span class="p">,</span> <span class="n">send_it</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[],</span> <span class="kc">None</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;The response will be:&quot;</span><span class="p">,</span> <span class="n">response</span><span class="p">)</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> <span class="k">return</span> <span class="kc">True</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a>
</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">RiddleData</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleData</span><span class="p">:</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Text Process:&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">file_plain</span><span class="p">)</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos">47</span></a> <span class="k">return</span> <span class="n">data</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos">48</span></a>
</span><span id="L-49"><a href="#L-49"><span class="linenos">49</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">riddle</span><span class="p">:</span> <span class="n">Riddle</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">RiddleData</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleSolution</span><span class="p">:</span>
</span><span id="L-50"><a href="#L-50"><span class="linenos">50</span></a>
</span><span id="L-51"><a href="#L-51"><span class="linenos">51</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">message</span><span class="p">()</span><span class="o">.</span><span class="n">id</span> <span class="o">==</span> <span class="s2">&quot;test&quot;</span><span class="p">:</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos">52</span></a> <span class="n">status</span> <span class="o">=</span> <span class="n">RiddleStatus</span><span class="p">()</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos">53</span></a> <span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">required</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos">54</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sub_riddle</span><span class="p">(</span><span class="n">riddle</span><span class="o">=</span><span class="n">Riddle</span><span class="p">(</span><span class="n">context</span><span class="o">=</span><span class="s2">&quot;Haha&quot;</span><span class="p">,</span> <span class="n">question</span><span class="o">=</span><span class="s2">&quot;Blubber&quot;</span><span class="p">),</span> <span class="n">status</span><span class="o">=</span><span class="n">status</span><span class="p">)</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos">55</span></a>
</span><span id="L-56"><a href="#L-56"><span class="linenos">56</span></a> <span class="k">return</span> <span class="n">RiddleSolution</span><span class="p">(</span><span class="n">solution</span><span class="o">=</span><span class="s2">&quot;Huii&quot;</span><span class="p">,</span> <span class="n">explanation</span><span class="o">=</span><span class="s2">&quot;Blubb&quot;</span><span class="p">)</span>
</span><span id="L-57"><a href="#L-57"><span class="linenos">57</span></a>
</span><span id="L-58"><a href="#L-58"><span class="linenos">58</span></a>
</span><span id="L-59"><a href="#L-59"><span class="linenos">59</span></a><span class="k">class</span> <span class="nc">MyGatekeeperAgent</span><span class="p">(</span><span class="n">GatekeeperAgent</span><span class="p">):</span>
</span><span id="L-60"><a href="#L-60"><span class="linenos">60</span></a>
</span><span id="L-61"><a href="#L-61"><span class="linenos">61</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="n">RiddleSolution</span><span class="p">,</span> <span class="n">riddle</span><span class="p">:</span> <span class="n">Riddle</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleSolution</span><span class="p">:</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos">62</span></a> <span class="n">solution</span><span class="o">.</span><span class="n">accepted</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos">63</span></a> <span class="n">solution</span><span class="o">.</span><span class="n">review</span> <span class="o">=</span> <span class="s2">&quot;Ok&quot;</span>
</span><span id="L-64"><a href="#L-64"><span class="linenos">64</span></a>
</span><span id="L-65"><a href="#L-65"><span class="linenos">65</span></a> <span class="k">return</span> <span class="n">solution</span>
</span><span id="L-49"><a href="#L-49"><span class="linenos">49</span></a>
</span><span id="L-50"><a href="#L-50"><span class="linenos">50</span></a><span class="k">class</span> <span class="nc">MySolveAgent</span><span class="p">(</span><span class="n">SolveAgent</span><span class="p">):</span>
</span><span id="L-51"><a href="#L-51"><span class="linenos">51</span></a>
</span><span id="L-52"><a href="#L-52"><span class="linenos">52</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">riddle</span><span class="p">:</span> <span class="n">Riddle</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">RiddleData</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">RiddleSolution</span><span class="p">:</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos">53</span></a>
</span><span id="L-54"><a href="#L-54"><span class="linenos">54</span></a> <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos">55</span></a> <span class="nb">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_extracted</span><span class="p">(</span><span class="n">d</span><span class="p">))</span>
</span><span id="L-56"><a href="#L-56"><span class="linenos">56</span></a>
</span><span id="L-57"><a href="#L-57"><span class="linenos">57</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">message</span><span class="p">()</span><span class="o">.</span><span class="n">id</span> <span class="o">==</span> <span class="s2">&quot;test&quot;</span><span class="p">:</span>
</span><span id="L-58"><a href="#L-58"><span class="linenos">58</span></a> <span class="n">status</span> <span class="o">=</span> <span class="n">RiddleStatus</span><span class="p">()</span>
</span><span id="L-59"><a href="#L-59"><span class="linenos">59</span></a> <span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">required</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="L-60"><a href="#L-60"><span class="linenos">60</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sub_riddle</span><span class="p">(</span><span class="n">riddle</span><span class="o">=</span><span class="n">Riddle</span><span class="p">(</span><span class="n">context</span><span class="o">=</span><span class="s2">&quot;Haha&quot;</span><span class="p">,</span> <span class="n">question</span><span class="o">=</span><span class="s2">&quot;Blubber&quot;</span><span class="p">),</span> <span class="n">status</span><span class="o">=</span><span class="n">status</span><span class="p">)</span>
</span><span id="L-61"><a href="#L-61"><span class="linenos">61</span></a>
</span><span id="L-62"><a href="#L-62"><span class="linenos">62</span></a> <span class="k">return</span> <span class="n">RiddleSolution</span><span class="p">(</span><span class="n">solution</span><span class="o">=</span><span class="s2">&quot;Huii&quot;</span><span class="p">,</span> <span class="n">explanation</span><span class="o">=</span><span class="s2">&quot;Blubb&quot;</span><span class="p">)</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos">63</span></a>
</span><span id="L-64"><a href="#L-64"><span class="linenos">64</span></a>
</span><span id="L-65"><a href="#L-65"><span class="linenos">65</span></a><span class="k">class</span> <span class="nc">MyGatekeeperAgent</span><span class="p">(</span><span class="n">GatekeeperAgent</span><span class="p">):</span>
</span><span id="L-66"><a href="#L-66"><span class="linenos">66</span></a>
</span><span id="L-67"><a href="#L-67"><span class="linenos">67</span></a><span class="n">AGENT_CLASSES</span> <span class="o">=</span> <span class="p">[</span>
</span><span id="L-68"><a href="#L-68"><span class="linenos">68</span></a> <span class="n">MyExtractAudioAgent</span><span class="p">,</span> <span class="n">MyExtractImageAgent</span><span class="p">,</span> <span class="n">MyExtractTextAgent</span><span class="p">,</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos">69</span></a> <span class="n">MySolveAgent</span><span class="p">,</span>
</span><span id="L-70"><a href="#L-70"><span class="linenos">70</span></a> <span class="n">MyGatekeeperAgent</span>
</span><span id="L-71"><a href="#L-71"><span class="linenos">71</span></a><span class="p">]</span>
</span><span id="L-67"><a href="#L-67"><span class="linenos">67</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="n">RiddleSolution</span><span class="p">,</span> <span class="n">riddle</span><span class="p">:</span> <span class="n">Riddle</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleSolution</span><span class="p">:</span>
</span><span id="L-68"><a href="#L-68"><span class="linenos">68</span></a> <span class="n">solution</span><span class="o">.</span><span class="n">accepted</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos">69</span></a> <span class="n">solution</span><span class="o">.</span><span class="n">review</span> <span class="o">=</span> <span class="s2">&quot;Ok&quot;</span>
</span><span id="L-70"><a href="#L-70"><span class="linenos">70</span></a>
</span><span id="L-71"><a href="#L-71"><span class="linenos">71</span></a> <span class="k">return</span> <span class="n">solution</span>
</span><span id="L-72"><a href="#L-72"><span class="linenos">72</span></a>
</span><span id="L-73"><a href="#L-73"><span class="linenos">73</span></a><span class="n">AGENT_CLASSES</span> <span class="o">=</span> <span class="p">[</span>
</span><span id="L-74"><a href="#L-74"><span class="linenos">74</span></a> <span class="n">MyExtractAudioAgent</span><span class="p">,</span> <span class="n">MyExtractImageAgent</span><span class="p">,</span> <span class="n">MyExtractTextAgent</span><span class="p">,</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos">75</span></a> <span class="n">MySolveAgent</span><span class="p">,</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos">76</span></a> <span class="n">MyGatekeeperAgent</span>
</span><span id="L-77"><a href="#L-77"><span class="linenos">77</span></a><span class="p">]</span>
</span></pre></div>
@ -232,6 +238,7 @@
<dd id="MyExtractAudioAgent.before_response" class="function"><a href="../agent/agent.html#BasicAgent.before_response">before_response</a></dd>
<dd id="MyExtractAudioAgent.message" class="function"><a href="../agent/agent.html#BasicAgent.message">message</a></dd>
<dd id="MyExtractAudioAgent.sub_riddle" class="function"><a href="../agent/agent.html#BasicAgent.sub_riddle">sub_riddle</a></dd>
<dd id="MyExtractAudioAgent.get_extracted" class="function"><a href="../agent/agent.html#BasicAgent.get_extracted">get_extracted</a></dd>
</div>
<div><dt><a href="../agent/agent.html#ExtractAudioAgent">ums.agent.agent.ExtractAudioAgent</a></dt>
@ -240,6 +247,7 @@
</div>
<div><dt><a href="../agent/agent.html#ExtractAgent">ums.agent.agent.ExtractAgent</a></dt>
<dd id="MyExtractAudioAgent.agent_capability" class="function"><a href="../agent/agent.html#ExtractAgent.agent_capability">agent_capability</a></dd>
<dd id="MyExtractAudioAgent.store_extracted" class="function"><a href="../agent/agent.html#ExtractAgent.store_extracted">store_extracted</a></dd>
</div>
</dl>
@ -260,7 +268,10 @@
</span><span id="MyExtractImageAgent-32"><a href="#MyExtractImageAgent-32"><span class="linenos">32</span></a>
</span><span id="MyExtractImageAgent-33"><a href="#MyExtractImageAgent-33"><span class="linenos">33</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">RiddleData</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleData</span><span class="p">:</span>
</span><span id="MyExtractImageAgent-34"><a href="#MyExtractImageAgent-34"><span class="linenos">34</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Image Process:&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">file_plain</span><span class="p">)</span>
</span><span id="MyExtractImageAgent-35"><a href="#MyExtractImageAgent-35"><span class="linenos">35</span></a> <span class="k">return</span> <span class="n">data</span>
</span><span id="MyExtractImageAgent-35"><a href="#MyExtractImageAgent-35"><span class="linenos">35</span></a>
</span><span id="MyExtractImageAgent-36"><a href="#MyExtractImageAgent-36"><span class="linenos">36</span></a> <span class="n">extracted</span> <span class="o">=</span> <span class="n">ExtractedData</span><span class="p">(</span><span class="n">other</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;info&quot;</span><span class="p">:</span><span class="s2">&quot;just a test&quot;</span><span class="p">})</span>
</span><span id="MyExtractImageAgent-37"><a href="#MyExtractImageAgent-37"><span class="linenos">37</span></a> <span class="n">data</span><span class="o">.</span><span class="n">file_extracted</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">store_extracted</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">extracted</span><span class="p">)</span>
</span><span id="MyExtractImageAgent-38"><a href="#MyExtractImageAgent-38"><span class="linenos">38</span></a> <span class="k">return</span> <span class="n">data</span>
</span></pre></div>
@ -281,7 +292,10 @@
<a class="headerlink" href="#MyExtractImageAgent.handle"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MyExtractImageAgent.handle-33"><a href="#MyExtractImageAgent.handle-33"><span class="linenos">33</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">RiddleData</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleData</span><span class="p">:</span>
</span><span id="MyExtractImageAgent.handle-34"><a href="#MyExtractImageAgent.handle-34"><span class="linenos">34</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Image Process:&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">file_plain</span><span class="p">)</span>
</span><span id="MyExtractImageAgent.handle-35"><a href="#MyExtractImageAgent.handle-35"><span class="linenos">35</span></a> <span class="k">return</span> <span class="n">data</span>
</span><span id="MyExtractImageAgent.handle-35"><a href="#MyExtractImageAgent.handle-35"><span class="linenos">35</span></a>
</span><span id="MyExtractImageAgent.handle-36"><a href="#MyExtractImageAgent.handle-36"><span class="linenos">36</span></a> <span class="n">extracted</span> <span class="o">=</span> <span class="n">ExtractedData</span><span class="p">(</span><span class="n">other</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;info&quot;</span><span class="p">:</span><span class="s2">&quot;just a test&quot;</span><span class="p">})</span>
</span><span id="MyExtractImageAgent.handle-37"><a href="#MyExtractImageAgent.handle-37"><span class="linenos">37</span></a> <span class="n">data</span><span class="o">.</span><span class="n">file_extracted</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">store_extracted</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">extracted</span><span class="p">)</span>
</span><span id="MyExtractImageAgent.handle-38"><a href="#MyExtractImageAgent.handle-38"><span class="linenos">38</span></a> <span class="k">return</span> <span class="n">data</span>
</span></pre></div>
@ -298,6 +312,7 @@
<dd id="MyExtractImageAgent.before_response" class="function"><a href="../agent/agent.html#BasicAgent.before_response">before_response</a></dd>
<dd id="MyExtractImageAgent.message" class="function"><a href="../agent/agent.html#BasicAgent.message">message</a></dd>
<dd id="MyExtractImageAgent.sub_riddle" class="function"><a href="../agent/agent.html#BasicAgent.sub_riddle">sub_riddle</a></dd>
<dd id="MyExtractImageAgent.get_extracted" class="function"><a href="../agent/agent.html#BasicAgent.get_extracted">get_extracted</a></dd>
</div>
<div><dt><a href="../agent/agent.html#ExtractImageAgent">ums.agent.agent.ExtractImageAgent</a></dt>
@ -306,6 +321,7 @@
</div>
<div><dt><a href="../agent/agent.html#ExtractAgent">ums.agent.agent.ExtractAgent</a></dt>
<dd id="MyExtractImageAgent.agent_capability" class="function"><a href="../agent/agent.html#ExtractAgent.agent_capability">agent_capability</a></dd>
<dd id="MyExtractImageAgent.store_extracted" class="function"><a href="../agent/agent.html#ExtractAgent.store_extracted">store_extracted</a></dd>
</div>
</dl>
@ -322,15 +338,15 @@
</div>
<a class="headerlink" href="#MyExtractTextAgent"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MyExtractTextAgent-37"><a href="#MyExtractTextAgent-37"><span class="linenos">37</span></a><span class="k">class</span> <span class="nc">MyExtractTextAgent</span><span class="p">(</span><span class="n">ExtractTextAgent</span><span class="p">):</span>
</span><span id="MyExtractTextAgent-38"><a href="#MyExtractTextAgent-38"><span class="linenos">38</span></a>
</span><span id="MyExtractTextAgent-39"><a href="#MyExtractTextAgent-39"><span class="linenos">39</span></a> <span class="k">def</span> <span class="nf">before_response</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">response</span><span class="p">:</span> <span class="n">AgentMessage</span><span class="p">,</span> <span class="n">send_it</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[],</span> <span class="kc">None</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="MyExtractTextAgent-40"><a href="#MyExtractTextAgent-40"><span class="linenos">40</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;The response will be:&quot;</span><span class="p">,</span> <span class="n">response</span><span class="p">)</span>
</span><span id="MyExtractTextAgent-41"><a href="#MyExtractTextAgent-41"><span class="linenos">41</span></a> <span class="k">return</span> <span class="kc">True</span>
</span><span id="MyExtractTextAgent-42"><a href="#MyExtractTextAgent-42"><span class="linenos">42</span></a>
</span><span id="MyExtractTextAgent-43"><a href="#MyExtractTextAgent-43"><span class="linenos">43</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">RiddleData</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleData</span><span class="p">:</span>
</span><span id="MyExtractTextAgent-44"><a href="#MyExtractTextAgent-44"><span class="linenos">44</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Text Process:&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">file_plain</span><span class="p">)</span>
</span><span id="MyExtractTextAgent-45"><a href="#MyExtractTextAgent-45"><span class="linenos">45</span></a> <span class="k">return</span> <span class="n">data</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="MyExtractTextAgent-40"><a href="#MyExtractTextAgent-40"><span class="linenos">40</span></a><span class="k">class</span> <span class="nc">MyExtractTextAgent</span><span class="p">(</span><span class="n">ExtractTextAgent</span><span class="p">):</span>
</span><span id="MyExtractTextAgent-41"><a href="#MyExtractTextAgent-41"><span class="linenos">41</span></a>
</span><span id="MyExtractTextAgent-42"><a href="#MyExtractTextAgent-42"><span class="linenos">42</span></a> <span class="k">def</span> <span class="nf">before_response</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">response</span><span class="p">:</span> <span class="n">AgentMessage</span><span class="p">,</span> <span class="n">send_it</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[],</span> <span class="kc">None</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="MyExtractTextAgent-43"><a href="#MyExtractTextAgent-43"><span class="linenos">43</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;The response will be:&quot;</span><span class="p">,</span> <span class="n">response</span><span class="p">)</span>
</span><span id="MyExtractTextAgent-44"><a href="#MyExtractTextAgent-44"><span class="linenos">44</span></a> <span class="k">return</span> <span class="kc">True</span>
</span><span id="MyExtractTextAgent-45"><a href="#MyExtractTextAgent-45"><span class="linenos">45</span></a>
</span><span id="MyExtractTextAgent-46"><a href="#MyExtractTextAgent-46"><span class="linenos">46</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">RiddleData</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleData</span><span class="p">:</span>
</span><span id="MyExtractTextAgent-47"><a href="#MyExtractTextAgent-47"><span class="linenos">47</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Text Process:&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">file_plain</span><span class="p">)</span>
</span><span id="MyExtractTextAgent-48"><a href="#MyExtractTextAgent-48"><span class="linenos">48</span></a> <span class="k">return</span> <span class="n">data</span>
</span></pre></div>
@ -349,9 +365,9 @@
</div>
<a class="headerlink" href="#MyExtractTextAgent.before_response"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MyExtractTextAgent.before_response-39"><a href="#MyExtractTextAgent.before_response-39"><span class="linenos">39</span></a> <span class="k">def</span> <span class="nf">before_response</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">response</span><span class="p">:</span> <span class="n">AgentMessage</span><span class="p">,</span> <span class="n">send_it</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[],</span> <span class="kc">None</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="MyExtractTextAgent.before_response-40"><a href="#MyExtractTextAgent.before_response-40"><span class="linenos">40</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;The response will be:&quot;</span><span class="p">,</span> <span class="n">response</span><span class="p">)</span>
</span><span id="MyExtractTextAgent.before_response-41"><a href="#MyExtractTextAgent.before_response-41"><span class="linenos">41</span></a> <span class="k">return</span> <span class="kc">True</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="MyExtractTextAgent.before_response-42"><a href="#MyExtractTextAgent.before_response-42"><span class="linenos">42</span></a> <span class="k">def</span> <span class="nf">before_response</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">response</span><span class="p">:</span> <span class="n">AgentMessage</span><span class="p">,</span> <span class="n">send_it</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[],</span> <span class="kc">None</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="MyExtractTextAgent.before_response-43"><a href="#MyExtractTextAgent.before_response-43"><span class="linenos">43</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;The response will be:&quot;</span><span class="p">,</span> <span class="n">response</span><span class="p">)</span>
</span><span id="MyExtractTextAgent.before_response-44"><a href="#MyExtractTextAgent.before_response-44"><span class="linenos">44</span></a> <span class="k">return</span> <span class="kc">True</span>
</span></pre></div>
@ -376,9 +392,9 @@ Thus, by overwriting this method, a response can be prevented.</p>
</div>
<a class="headerlink" href="#MyExtractTextAgent.handle"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MyExtractTextAgent.handle-43"><a href="#MyExtractTextAgent.handle-43"><span class="linenos">43</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">RiddleData</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleData</span><span class="p">:</span>
</span><span id="MyExtractTextAgent.handle-44"><a href="#MyExtractTextAgent.handle-44"><span class="linenos">44</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Text Process:&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">file_plain</span><span class="p">)</span>
</span><span id="MyExtractTextAgent.handle-45"><a href="#MyExtractTextAgent.handle-45"><span class="linenos">45</span></a> <span class="k">return</span> <span class="n">data</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="MyExtractTextAgent.handle-46"><a href="#MyExtractTextAgent.handle-46"><span class="linenos">46</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">RiddleData</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleData</span><span class="p">:</span>
</span><span id="MyExtractTextAgent.handle-47"><a href="#MyExtractTextAgent.handle-47"><span class="linenos">47</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Text Process:&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">.</span><span class="n">file_plain</span><span class="p">)</span>
</span><span id="MyExtractTextAgent.handle-48"><a href="#MyExtractTextAgent.handle-48"><span class="linenos">48</span></a> <span class="k">return</span> <span class="n">data</span>
</span></pre></div>
@ -394,6 +410,7 @@ Thus, by overwriting this method, a response can be prevented.</p>
<dd id="MyExtractTextAgent.__init__" class="function"><a href="../agent/agent.html#BasicAgent.__init__">BasicAgent</a></dd>
<dd id="MyExtractTextAgent.message" class="function"><a href="../agent/agent.html#BasicAgent.message">message</a></dd>
<dd id="MyExtractTextAgent.sub_riddle" class="function"><a href="../agent/agent.html#BasicAgent.sub_riddle">sub_riddle</a></dd>
<dd id="MyExtractTextAgent.get_extracted" class="function"><a href="../agent/agent.html#BasicAgent.get_extracted">get_extracted</a></dd>
</div>
<div><dt><a href="../agent/agent.html#ExtractTextAgent">ums.agent.agent.ExtractTextAgent</a></dt>
@ -402,6 +419,7 @@ Thus, by overwriting this method, a response can be prevented.</p>
</div>
<div><dt><a href="../agent/agent.html#ExtractAgent">ums.agent.agent.ExtractAgent</a></dt>
<dd id="MyExtractTextAgent.agent_capability" class="function"><a href="../agent/agent.html#ExtractAgent.agent_capability">agent_capability</a></dd>
<dd id="MyExtractTextAgent.store_extracted" class="function"><a href="../agent/agent.html#ExtractAgent.store_extracted">store_extracted</a></dd>
</div>
</dl>
@ -418,16 +436,19 @@ Thus, by overwriting this method, a response can be prevented.</p>
</div>
<a class="headerlink" href="#MySolveAgent"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MySolveAgent-48"><a href="#MySolveAgent-48"><span class="linenos">48</span></a><span class="k">class</span> <span class="nc">MySolveAgent</span><span class="p">(</span><span class="n">SolveAgent</span><span class="p">):</span>
</span><span id="MySolveAgent-49"><a href="#MySolveAgent-49"><span class="linenos">49</span></a>
</span><span id="MySolveAgent-50"><a href="#MySolveAgent-50"><span class="linenos">50</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">riddle</span><span class="p">:</span> <span class="n">Riddle</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">RiddleData</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleSolution</span><span class="p">:</span>
</span><span id="MySolveAgent-51"><a href="#MySolveAgent-51"><span class="linenos">51</span></a>
</span><span id="MySolveAgent-52"><a href="#MySolveAgent-52"><span class="linenos">52</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">message</span><span class="p">()</span><span class="o">.</span><span class="n">id</span> <span class="o">==</span> <span class="s2">&quot;test&quot;</span><span class="p">:</span>
</span><span id="MySolveAgent-53"><a href="#MySolveAgent-53"><span class="linenos">53</span></a> <span class="n">status</span> <span class="o">=</span> <span class="n">RiddleStatus</span><span class="p">()</span>
</span><span id="MySolveAgent-54"><a href="#MySolveAgent-54"><span class="linenos">54</span></a> <span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">required</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="MySolveAgent-55"><a href="#MySolveAgent-55"><span class="linenos">55</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sub_riddle</span><span class="p">(</span><span class="n">riddle</span><span class="o">=</span><span class="n">Riddle</span><span class="p">(</span><span class="n">context</span><span class="o">=</span><span class="s2">&quot;Haha&quot;</span><span class="p">,</span> <span class="n">question</span><span class="o">=</span><span class="s2">&quot;Blubber&quot;</span><span class="p">),</span> <span class="n">status</span><span class="o">=</span><span class="n">status</span><span class="p">)</span>
</span><span id="MySolveAgent-56"><a href="#MySolveAgent-56"><span class="linenos">56</span></a>
</span><span id="MySolveAgent-57"><a href="#MySolveAgent-57"><span class="linenos">57</span></a> <span class="k">return</span> <span class="n">RiddleSolution</span><span class="p">(</span><span class="n">solution</span><span class="o">=</span><span class="s2">&quot;Huii&quot;</span><span class="p">,</span> <span class="n">explanation</span><span class="o">=</span><span class="s2">&quot;Blubb&quot;</span><span class="p">)</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="MySolveAgent-51"><a href="#MySolveAgent-51"><span class="linenos">51</span></a><span class="k">class</span> <span class="nc">MySolveAgent</span><span class="p">(</span><span class="n">SolveAgent</span><span class="p">):</span>
</span><span id="MySolveAgent-52"><a href="#MySolveAgent-52"><span class="linenos">52</span></a>
</span><span id="MySolveAgent-53"><a href="#MySolveAgent-53"><span class="linenos">53</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">riddle</span><span class="p">:</span> <span class="n">Riddle</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">RiddleData</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">RiddleSolution</span><span class="p">:</span>
</span><span id="MySolveAgent-54"><a href="#MySolveAgent-54"><span class="linenos">54</span></a>
</span><span id="MySolveAgent-55"><a href="#MySolveAgent-55"><span class="linenos">55</span></a> <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
</span><span id="MySolveAgent-56"><a href="#MySolveAgent-56"><span class="linenos">56</span></a> <span class="nb">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_extracted</span><span class="p">(</span><span class="n">d</span><span class="p">))</span>
</span><span id="MySolveAgent-57"><a href="#MySolveAgent-57"><span class="linenos">57</span></a>
</span><span id="MySolveAgent-58"><a href="#MySolveAgent-58"><span class="linenos">58</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">message</span><span class="p">()</span><span class="o">.</span><span class="n">id</span> <span class="o">==</span> <span class="s2">&quot;test&quot;</span><span class="p">:</span>
</span><span id="MySolveAgent-59"><a href="#MySolveAgent-59"><span class="linenos">59</span></a> <span class="n">status</span> <span class="o">=</span> <span class="n">RiddleStatus</span><span class="p">()</span>
</span><span id="MySolveAgent-60"><a href="#MySolveAgent-60"><span class="linenos">60</span></a> <span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">required</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="MySolveAgent-61"><a href="#MySolveAgent-61"><span class="linenos">61</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sub_riddle</span><span class="p">(</span><span class="n">riddle</span><span class="o">=</span><span class="n">Riddle</span><span class="p">(</span><span class="n">context</span><span class="o">=</span><span class="s2">&quot;Haha&quot;</span><span class="p">,</span> <span class="n">question</span><span class="o">=</span><span class="s2">&quot;Blubber&quot;</span><span class="p">),</span> <span class="n">status</span><span class="o">=</span><span class="n">status</span><span class="p">)</span>
</span><span id="MySolveAgent-62"><a href="#MySolveAgent-62"><span class="linenos">62</span></a>
</span><span id="MySolveAgent-63"><a href="#MySolveAgent-63"><span class="linenos">63</span></a> <span class="k">return</span> <span class="n">RiddleSolution</span><span class="p">(</span><span class="n">solution</span><span class="o">=</span><span class="s2">&quot;Huii&quot;</span><span class="p">,</span> <span class="n">explanation</span><span class="o">=</span><span class="s2">&quot;Blubb&quot;</span><span class="p">)</span>
</span></pre></div>
@ -440,20 +461,23 @@ Thus, by overwriting this method, a response can be prevented.</p>
<div class="attr function">
<span class="def">def</span>
<span class="name">handle</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">riddle</span><span class="p">:</span> <span class="n"><a href="../utils/types.html#Riddle">ums.utils.types.Riddle</a></span>,</span><span class="param"> <span class="n">data</span><span class="p">:</span> <span class="n"><a href="../utils/types.html#RiddleData">ums.utils.types.RiddleData</a></span></span><span class="return-annotation">) -> <span class="n"><a href="../utils/types.html#RiddleSolution">ums.utils.types.RiddleSolution</a></span>:</span></span>
<span class="name">handle</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">riddle</span><span class="p">:</span> <span class="n"><a href="../utils/types.html#Riddle">ums.utils.types.Riddle</a></span>,</span><span class="param"> <span class="n">data</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n"><a href="../utils/types.html#RiddleData">ums.utils.types.RiddleData</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="../utils/types.html#RiddleSolution">ums.utils.types.RiddleSolution</a></span>:</span></span>
<label class="view-source-button" for="MySolveAgent.handle-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#MySolveAgent.handle"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MySolveAgent.handle-50"><a href="#MySolveAgent.handle-50"><span class="linenos">50</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">riddle</span><span class="p">:</span> <span class="n">Riddle</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">RiddleData</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleSolution</span><span class="p">:</span>
</span><span id="MySolveAgent.handle-51"><a href="#MySolveAgent.handle-51"><span class="linenos">51</span></a>
</span><span id="MySolveAgent.handle-52"><a href="#MySolveAgent.handle-52"><span class="linenos">52</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">message</span><span class="p">()</span><span class="o">.</span><span class="n">id</span> <span class="o">==</span> <span class="s2">&quot;test&quot;</span><span class="p">:</span>
</span><span id="MySolveAgent.handle-53"><a href="#MySolveAgent.handle-53"><span class="linenos">53</span></a> <span class="n">status</span> <span class="o">=</span> <span class="n">RiddleStatus</span><span class="p">()</span>
</span><span id="MySolveAgent.handle-54"><a href="#MySolveAgent.handle-54"><span class="linenos">54</span></a> <span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">required</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="MySolveAgent.handle-55"><a href="#MySolveAgent.handle-55"><span class="linenos">55</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sub_riddle</span><span class="p">(</span><span class="n">riddle</span><span class="o">=</span><span class="n">Riddle</span><span class="p">(</span><span class="n">context</span><span class="o">=</span><span class="s2">&quot;Haha&quot;</span><span class="p">,</span> <span class="n">question</span><span class="o">=</span><span class="s2">&quot;Blubber&quot;</span><span class="p">),</span> <span class="n">status</span><span class="o">=</span><span class="n">status</span><span class="p">)</span>
</span><span id="MySolveAgent.handle-56"><a href="#MySolveAgent.handle-56"><span class="linenos">56</span></a>
</span><span id="MySolveAgent.handle-57"><a href="#MySolveAgent.handle-57"><span class="linenos">57</span></a> <span class="k">return</span> <span class="n">RiddleSolution</span><span class="p">(</span><span class="n">solution</span><span class="o">=</span><span class="s2">&quot;Huii&quot;</span><span class="p">,</span> <span class="n">explanation</span><span class="o">=</span><span class="s2">&quot;Blubb&quot;</span><span class="p">)</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="MySolveAgent.handle-53"><a href="#MySolveAgent.handle-53"><span class="linenos">53</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">riddle</span><span class="p">:</span> <span class="n">Riddle</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">RiddleData</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">RiddleSolution</span><span class="p">:</span>
</span><span id="MySolveAgent.handle-54"><a href="#MySolveAgent.handle-54"><span class="linenos">54</span></a>
</span><span id="MySolveAgent.handle-55"><a href="#MySolveAgent.handle-55"><span class="linenos">55</span></a> <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
</span><span id="MySolveAgent.handle-56"><a href="#MySolveAgent.handle-56"><span class="linenos">56</span></a> <span class="nb">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_extracted</span><span class="p">(</span><span class="n">d</span><span class="p">))</span>
</span><span id="MySolveAgent.handle-57"><a href="#MySolveAgent.handle-57"><span class="linenos">57</span></a>
</span><span id="MySolveAgent.handle-58"><a href="#MySolveAgent.handle-58"><span class="linenos">58</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">message</span><span class="p">()</span><span class="o">.</span><span class="n">id</span> <span class="o">==</span> <span class="s2">&quot;test&quot;</span><span class="p">:</span>
</span><span id="MySolveAgent.handle-59"><a href="#MySolveAgent.handle-59"><span class="linenos">59</span></a> <span class="n">status</span> <span class="o">=</span> <span class="n">RiddleStatus</span><span class="p">()</span>
</span><span id="MySolveAgent.handle-60"><a href="#MySolveAgent.handle-60"><span class="linenos">60</span></a> <span class="n">status</span><span class="o">.</span><span class="n">extract</span><span class="o">.</span><span class="n">required</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="MySolveAgent.handle-61"><a href="#MySolveAgent.handle-61"><span class="linenos">61</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sub_riddle</span><span class="p">(</span><span class="n">riddle</span><span class="o">=</span><span class="n">Riddle</span><span class="p">(</span><span class="n">context</span><span class="o">=</span><span class="s2">&quot;Haha&quot;</span><span class="p">,</span> <span class="n">question</span><span class="o">=</span><span class="s2">&quot;Blubber&quot;</span><span class="p">),</span> <span class="n">status</span><span class="o">=</span><span class="n">status</span><span class="p">)</span>
</span><span id="MySolveAgent.handle-62"><a href="#MySolveAgent.handle-62"><span class="linenos">62</span></a>
</span><span id="MySolveAgent.handle-63"><a href="#MySolveAgent.handle-63"><span class="linenos">63</span></a> <span class="k">return</span> <span class="n">RiddleSolution</span><span class="p">(</span><span class="n">solution</span><span class="o">=</span><span class="s2">&quot;Huii&quot;</span><span class="p">,</span> <span class="n">explanation</span><span class="o">=</span><span class="s2">&quot;Blubb&quot;</span><span class="p">)</span>
</span></pre></div>
@ -470,6 +494,7 @@ Thus, by overwriting this method, a response can be prevented.</p>
<dd id="MySolveAgent.before_response" class="function"><a href="../agent/agent.html#BasicAgent.before_response">before_response</a></dd>
<dd id="MySolveAgent.message" class="function"><a href="../agent/agent.html#BasicAgent.message">message</a></dd>
<dd id="MySolveAgent.sub_riddle" class="function"><a href="../agent/agent.html#BasicAgent.sub_riddle">sub_riddle</a></dd>
<dd id="MySolveAgent.get_extracted" class="function"><a href="../agent/agent.html#BasicAgent.get_extracted">get_extracted</a></dd>
</div>
<div><dt><a href="../agent/agent.html#SolveAgent">ums.agent.agent.SolveAgent</a></dt>
@ -490,13 +515,13 @@ Thus, by overwriting this method, a response can be prevented.</p>
</div>
<a class="headerlink" href="#MyGatekeeperAgent"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MyGatekeeperAgent-60"><a href="#MyGatekeeperAgent-60"><span class="linenos">60</span></a><span class="k">class</span> <span class="nc">MyGatekeeperAgent</span><span class="p">(</span><span class="n">GatekeeperAgent</span><span class="p">):</span>
</span><span id="MyGatekeeperAgent-61"><a href="#MyGatekeeperAgent-61"><span class="linenos">61</span></a>
</span><span id="MyGatekeeperAgent-62"><a href="#MyGatekeeperAgent-62"><span class="linenos">62</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="n">RiddleSolution</span><span class="p">,</span> <span class="n">riddle</span><span class="p">:</span> <span class="n">Riddle</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleSolution</span><span class="p">:</span>
</span><span id="MyGatekeeperAgent-63"><a href="#MyGatekeeperAgent-63"><span class="linenos">63</span></a> <span class="n">solution</span><span class="o">.</span><span class="n">accepted</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="MyGatekeeperAgent-64"><a href="#MyGatekeeperAgent-64"><span class="linenos">64</span></a> <span class="n">solution</span><span class="o">.</span><span class="n">review</span> <span class="o">=</span> <span class="s2">&quot;Ok&quot;</span>
</span><span id="MyGatekeeperAgent-65"><a href="#MyGatekeeperAgent-65"><span class="linenos">65</span></a>
</span><span id="MyGatekeeperAgent-66"><a href="#MyGatekeeperAgent-66"><span class="linenos">66</span></a> <span class="k">return</span> <span class="n">solution</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="MyGatekeeperAgent-66"><a href="#MyGatekeeperAgent-66"><span class="linenos">66</span></a><span class="k">class</span> <span class="nc">MyGatekeeperAgent</span><span class="p">(</span><span class="n">GatekeeperAgent</span><span class="p">):</span>
</span><span id="MyGatekeeperAgent-67"><a href="#MyGatekeeperAgent-67"><span class="linenos">67</span></a>
</span><span id="MyGatekeeperAgent-68"><a href="#MyGatekeeperAgent-68"><span class="linenos">68</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="n">RiddleSolution</span><span class="p">,</span> <span class="n">riddle</span><span class="p">:</span> <span class="n">Riddle</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleSolution</span><span class="p">:</span>
</span><span id="MyGatekeeperAgent-69"><a href="#MyGatekeeperAgent-69"><span class="linenos">69</span></a> <span class="n">solution</span><span class="o">.</span><span class="n">accepted</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="MyGatekeeperAgent-70"><a href="#MyGatekeeperAgent-70"><span class="linenos">70</span></a> <span class="n">solution</span><span class="o">.</span><span class="n">review</span> <span class="o">=</span> <span class="s2">&quot;Ok&quot;</span>
</span><span id="MyGatekeeperAgent-71"><a href="#MyGatekeeperAgent-71"><span class="linenos">71</span></a>
</span><span id="MyGatekeeperAgent-72"><a href="#MyGatekeeperAgent-72"><span class="linenos">72</span></a> <span class="k">return</span> <span class="n">solution</span>
</span></pre></div>
@ -515,11 +540,11 @@ Thus, by overwriting this method, a response can be prevented.</p>
</div>
<a class="headerlink" href="#MyGatekeeperAgent.handle"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MyGatekeeperAgent.handle-62"><a href="#MyGatekeeperAgent.handle-62"><span class="linenos">62</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="n">RiddleSolution</span><span class="p">,</span> <span class="n">riddle</span><span class="p">:</span> <span class="n">Riddle</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleSolution</span><span class="p">:</span>
</span><span id="MyGatekeeperAgent.handle-63"><a href="#MyGatekeeperAgent.handle-63"><span class="linenos">63</span></a> <span class="n">solution</span><span class="o">.</span><span class="n">accepted</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="MyGatekeeperAgent.handle-64"><a href="#MyGatekeeperAgent.handle-64"><span class="linenos">64</span></a> <span class="n">solution</span><span class="o">.</span><span class="n">review</span> <span class="o">=</span> <span class="s2">&quot;Ok&quot;</span>
</span><span id="MyGatekeeperAgent.handle-65"><a href="#MyGatekeeperAgent.handle-65"><span class="linenos">65</span></a>
</span><span id="MyGatekeeperAgent.handle-66"><a href="#MyGatekeeperAgent.handle-66"><span class="linenos">66</span></a> <span class="k">return</span> <span class="n">solution</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="MyGatekeeperAgent.handle-68"><a href="#MyGatekeeperAgent.handle-68"><span class="linenos">68</span></a> <span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="n">RiddleSolution</span><span class="p">,</span> <span class="n">riddle</span><span class="p">:</span> <span class="n">Riddle</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RiddleSolution</span><span class="p">:</span>
</span><span id="MyGatekeeperAgent.handle-69"><a href="#MyGatekeeperAgent.handle-69"><span class="linenos">69</span></a> <span class="n">solution</span><span class="o">.</span><span class="n">accepted</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="MyGatekeeperAgent.handle-70"><a href="#MyGatekeeperAgent.handle-70"><span class="linenos">70</span></a> <span class="n">solution</span><span class="o">.</span><span class="n">review</span> <span class="o">=</span> <span class="s2">&quot;Ok&quot;</span>
</span><span id="MyGatekeeperAgent.handle-71"><a href="#MyGatekeeperAgent.handle-71"><span class="linenos">71</span></a>
</span><span id="MyGatekeeperAgent.handle-72"><a href="#MyGatekeeperAgent.handle-72"><span class="linenos">72</span></a> <span class="k">return</span> <span class="n">solution</span>
</span></pre></div>
@ -536,6 +561,7 @@ Thus, by overwriting this method, a response can be prevented.</p>
<dd id="MyGatekeeperAgent.before_response" class="function"><a href="../agent/agent.html#BasicAgent.before_response">before_response</a></dd>
<dd id="MyGatekeeperAgent.message" class="function"><a href="../agent/agent.html#BasicAgent.message">message</a></dd>
<dd id="MyGatekeeperAgent.sub_riddle" class="function"><a href="../agent/agent.html#BasicAgent.sub_riddle">sub_riddle</a></dd>
<dd id="MyGatekeeperAgent.get_extracted" class="function"><a href="../agent/agent.html#BasicAgent.get_extracted">get_extracted</a></dd>
</div>
<div><dt><a href="../agent/agent.html#GatekeeperAgent">ums.agent.agent.GatekeeperAgent</a></dt>

View File

@ -104,6 +104,11 @@
</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a><span class="kn">from</span> <span class="nn">ums.utils.request</span> <span class="kn">import</span> <span class="n">ManagementRequest</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a>
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a><span class="kn">from</span> <span class="nn">ums.utils.functions</span> <span class="kn">import</span> <span class="n">list_shared_data</span><span class="p">,</span> <span class="n">list_shared_schema</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a>
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a><span class="kn">from</span> <span class="nn">ums.utils.schema</span> <span class="kn">import</span> <span class="p">(</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> <span class="n">ExtractionSchema</span><span class="p">,</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a> <span class="n">ExtractedData</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a><span class="p">)</span>
</span></pre></div>

View File

@ -38,6 +38,48 @@
</ul>
</li>
<li>
<a class="class" href="#ExtractedContent">ExtractedContent</a>
<ul class="memberlist">
<li>
<a class="variable" href="#ExtractedContent.type">type</a>
</li>
<li>
<a class="variable" href="#ExtractedContent.content">content</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#ExtractedPositions">ExtractedPositions</a>
<ul class="memberlist">
<li>
<a class="variable" href="#ExtractedPositions.type">type</a>
</li>
<li>
<a class="variable" href="#ExtractedPositions.position">position</a>
</li>
<li>
<a class="variable" href="#ExtractedPositions.description">description</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#ExtractedData">ExtractedData</a>
<ul class="memberlist">
<li>
<a class="variable" href="#ExtractedData.contents">contents</a>
</li>
<li>
<a class="variable" href="#ExtractedData.positions">positions</a>
</li>
<li>
<a class="variable" href="#ExtractedData.other">other</a>
</li>
</ul>
</li>
</ul>
@ -57,6 +99,8 @@
<div class="docstring"><p>This represents the basic types used for representing extracted information from the data.
The types are implemented using <a href="https://docs.pydantic.dev/">pydantic</a>.
It provides validation, allow JSON serialization and works well with <a href="https://fastapi.tiangolo.com/">FastAPI</a> which is used internally for the http request between the agents and the management.</p>
<p><strong>This is work in progress!</strong></p>
</div>
<input id="mod-schema-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
@ -78,18 +122,75 @@ It provides validation, allow JSON serialization and works well with <a href="ht
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="sd"> The types are implemented using [pydantic](https://docs.pydantic.dev/).</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a><span class="sd"> It provides validation, allow JSON serialization and works well with [FastAPI](https://fastapi.tiangolo.com/) which is used internally for the http request between the agents and the management.</span>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a>
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a><span class="kn">from</span> <span class="nn">enum</span> <span class="kn">import</span> <span class="n">Enum</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a>
</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a><span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">List</span><span class="p">,</span> <span class="n">Any</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a>
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a><span class="kn">from</span> <span class="nn">pydantic</span> <span class="kn">import</span> <span class="n">BaseModel</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a><span class="k">class</span> <span class="nc">ExtractionSchema</span><span class="p">(</span><span class="n">BaseModel</span><span class="p">):</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a><span class="sd"> This is the basic class used as superclass for all extracted information from data items.</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="sd"> **This is work in progress!**</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a>
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a><span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">List</span><span class="p">,</span> <span class="n">Any</span><span class="p">,</span> <span class="n">Dict</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a>
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a><span class="kn">from</span> <span class="nn">pydantic</span> <span class="kn">import</span> <span class="n">BaseModel</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a>
</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a><span class="k">class</span> <span class="nc">ExtractionSchema</span><span class="p">(</span><span class="n">BaseModel</span><span class="p">):</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a><span class="sd"> This is the basic class used as superclass for all extracted information from data items.</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a>
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a><span class="sd"> For all the `ExtractionSchema` is is required that the data can be serialized to json. </span>
</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a><span class="sd"> Thus, mostly only default data types like `int, str, bool, list, dict, tuple` also including `ExtractionSchema` and `RiddleInformation` can be used here!</span>
</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a>
</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a><span class="k">class</span> <span class="nc">ExtractedContent</span><span class="p">(</span><span class="n">ExtractionSchema</span><span class="p">):</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a><span class="sd"> An extracted content item.</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a>
</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="nb">type</span> <span class="p">:</span> <span class="nb">str</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a><span class="sd"> The type, as a string, the actual string will depend on the extraction agent.</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a>
</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a> <span class="n">content</span> <span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Any</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a><span class="sd"> The extracted content</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a>
</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a><span class="k">class</span> <span class="nc">ExtractedPositions</span><span class="p">(</span><span class="n">ExtractionSchema</span><span class="p">):</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos">47</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos">48</span></a><span class="sd"> A position (like time, coordinates, ...) where something was extracted (each position should belong to a content item).</span>
</span><span id="L-49"><a href="#L-49"><span class="linenos">49</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-50"><a href="#L-50"><span class="linenos">50</span></a>
</span><span id="L-51"><a href="#L-51"><span class="linenos">51</span></a> <span class="nb">type</span> <span class="p">:</span> <span class="nb">str</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos">52</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-53"><a href="#L-53"><span class="linenos">53</span></a><span class="sd"> The type, as a string, the actual string will depend on the extraction agent.</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos">54</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos">55</span></a>
</span><span id="L-56"><a href="#L-56"><span class="linenos">56</span></a> <span class="n">position</span> <span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="nb">int</span> <span class="o">|</span> <span class="n">Any</span>
</span><span id="L-57"><a href="#L-57"><span class="linenos">57</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-58"><a href="#L-58"><span class="linenos">58</span></a><span class="sd"> The position, will also depend on the extraction agent.</span>
</span><span id="L-59"><a href="#L-59"><span class="linenos">59</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-60"><a href="#L-60"><span class="linenos">60</span></a>
</span><span id="L-61"><a href="#L-61"><span class="linenos">61</span></a> <span class="n">description</span> <span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Any</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos">62</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos">63</span></a><span class="sd"> An optional description for more details.</span>
</span><span id="L-64"><a href="#L-64"><span class="linenos">64</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-65"><a href="#L-65"><span class="linenos">65</span></a>
</span><span id="L-66"><a href="#L-66"><span class="linenos">66</span></a><span class="k">class</span> <span class="nc">ExtractedData</span><span class="p">(</span><span class="n">ExtractionSchema</span><span class="p">):</span>
</span><span id="L-67"><a href="#L-67"><span class="linenos">67</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-68"><a href="#L-68"><span class="linenos">68</span></a><span class="sd"> Contains the extracted items from a data file.</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos">69</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-70"><a href="#L-70"><span class="linenos">70</span></a>
</span><span id="L-71"><a href="#L-71"><span class="linenos">71</span></a> <span class="n">contents</span> <span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">ExtractedContent</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-72"><a href="#L-72"><span class="linenos">72</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-73"><a href="#L-73"><span class="linenos">73</span></a><span class="sd"> The extracted contents (i.e., transcriptions etc.), each item here should belong a position item at the same index.</span>
</span><span id="L-74"><a href="#L-74"><span class="linenos">74</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos">75</span></a>
</span><span id="L-76"><a href="#L-76"><span class="linenos">76</span></a> <span class="n">positions</span> <span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">ExtractedPositions</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-77"><a href="#L-77"><span class="linenos">77</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-78"><a href="#L-78"><span class="linenos">78</span></a><span class="sd"> The positions of extracted contents, each item here should belong a content item at the same index.</span>
</span><span id="L-79"><a href="#L-79"><span class="linenos">79</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-80"><a href="#L-80"><span class="linenos">80</span></a>
</span><span id="L-81"><a href="#L-81"><span class="linenos">81</span></a> <span class="n">other</span> <span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos">82</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos">83</span></a><span class="sd"> Possibly more data. Use a keywords (depending on agent) and store the data there.</span>
</span><span id="L-84"><a href="#L-84"><span class="linenos">84</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span></pre></div>
@ -105,14 +206,20 @@ It provides validation, allow JSON serialization and works well with <a href="ht
</div>
<a class="headerlink" href="#ExtractionSchema"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ExtractionSchema-25"><a href="#ExtractionSchema-25"><span class="linenos">25</span></a><span class="k">class</span> <span class="nc">ExtractionSchema</span><span class="p">(</span><span class="n">BaseModel</span><span class="p">):</span>
</span><span id="ExtractionSchema-26"><a href="#ExtractionSchema-26"><span class="linenos">26</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractionSchema-27"><a href="#ExtractionSchema-27"><span class="linenos">27</span></a><span class="sd"> This is the basic class used as superclass for all extracted information from data items.</span>
</span><span id="ExtractionSchema-28"><a href="#ExtractionSchema-28"><span class="linenos">28</span></a><span class="sd"> &quot;&quot;&quot;</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="ExtractionSchema-24"><a href="#ExtractionSchema-24"><span class="linenos">24</span></a><span class="k">class</span> <span class="nc">ExtractionSchema</span><span class="p">(</span><span class="n">BaseModel</span><span class="p">):</span>
</span><span id="ExtractionSchema-25"><a href="#ExtractionSchema-25"><span class="linenos">25</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractionSchema-26"><a href="#ExtractionSchema-26"><span class="linenos">26</span></a><span class="sd"> This is the basic class used as superclass for all extracted information from data items.</span>
</span><span id="ExtractionSchema-27"><a href="#ExtractionSchema-27"><span class="linenos">27</span></a>
</span><span id="ExtractionSchema-28"><a href="#ExtractionSchema-28"><span class="linenos">28</span></a><span class="sd"> For all the `ExtractionSchema` is is required that the data can be serialized to json. </span>
</span><span id="ExtractionSchema-29"><a href="#ExtractionSchema-29"><span class="linenos">29</span></a><span class="sd"> Thus, mostly only default data types like `int, str, bool, list, dict, tuple` also including `ExtractionSchema` and `RiddleInformation` can be used here!</span>
</span><span id="ExtractionSchema-30"><a href="#ExtractionSchema-30"><span class="linenos">30</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span></pre></div>
<div class="docstring"><p>This is the basic class used as superclass for all extracted information from data items.</p>
<p>For all the <code><a href="#ExtractionSchema">ExtractionSchema</a></code> is is required that the data can be serialized to json.
Thus, mostly only default data types like <code>int, str, bool, list, dict, tuple</code> also including <code><a href="#ExtractionSchema">ExtractionSchema</a></code> and <code>RiddleInformation</code> can be used here!</p>
</div>
@ -151,6 +258,321 @@ It provides validation, allow JSON serialization and works well with <a href="ht
</dl>
</div>
</section>
<section id="ExtractedContent">
<input id="ExtractedContent-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ExtractedContent</span><wbr>(<span class="base"><a href="#ExtractionSchema">ExtractionSchema</a></span>):
<label class="view-source-button" for="ExtractedContent-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ExtractedContent"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ExtractedContent-32"><a href="#ExtractedContent-32"><span class="linenos">32</span></a><span class="k">class</span> <span class="nc">ExtractedContent</span><span class="p">(</span><span class="n">ExtractionSchema</span><span class="p">):</span>
</span><span id="ExtractedContent-33"><a href="#ExtractedContent-33"><span class="linenos">33</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractedContent-34"><a href="#ExtractedContent-34"><span class="linenos">34</span></a><span class="sd"> An extracted content item.</span>
</span><span id="ExtractedContent-35"><a href="#ExtractedContent-35"><span class="linenos">35</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="ExtractedContent-36"><a href="#ExtractedContent-36"><span class="linenos">36</span></a>
</span><span id="ExtractedContent-37"><a href="#ExtractedContent-37"><span class="linenos">37</span></a> <span class="nb">type</span> <span class="p">:</span> <span class="nb">str</span>
</span><span id="ExtractedContent-38"><a href="#ExtractedContent-38"><span class="linenos">38</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractedContent-39"><a href="#ExtractedContent-39"><span class="linenos">39</span></a><span class="sd"> The type, as a string, the actual string will depend on the extraction agent.</span>
</span><span id="ExtractedContent-40"><a href="#ExtractedContent-40"><span class="linenos">40</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="ExtractedContent-41"><a href="#ExtractedContent-41"><span class="linenos">41</span></a>
</span><span id="ExtractedContent-42"><a href="#ExtractedContent-42"><span class="linenos">42</span></a> <span class="n">content</span> <span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Any</span>
</span><span id="ExtractedContent-43"><a href="#ExtractedContent-43"><span class="linenos">43</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractedContent-44"><a href="#ExtractedContent-44"><span class="linenos">44</span></a><span class="sd"> The extracted content</span>
</span><span id="ExtractedContent-45"><a href="#ExtractedContent-45"><span class="linenos">45</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span></pre></div>
<div class="docstring"><p>An extracted content item.</p>
</div>
<div id="ExtractedContent.type" class="classattr">
<div class="attr variable">
<span class="name">type</span><span class="annotation">: str</span>
</div>
<a class="headerlink" href="#ExtractedContent.type"></a>
<div class="docstring"><p>The type, as a string, the actual string will depend on the extraction agent.</p>
</div>
</div>
<div id="ExtractedContent.content" class="classattr">
<div class="attr variable">
<span class="name">content</span><span class="annotation">: str | typing.Any</span>
</div>
<a class="headerlink" href="#ExtractedContent.content"></a>
<div class="docstring"><p>The extracted content</p>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt>pydantic.main.BaseModel</dt>
<dd id="ExtractedContent.__init__" class="function">BaseModel</dd>
<dd id="ExtractedContent.model_extra" class="variable">model_extra</dd>
<dd id="ExtractedContent.model_fields_set" class="variable">model_fields_set</dd>
<dd id="ExtractedContent.model_construct" class="function">model_construct</dd>
<dd id="ExtractedContent.model_copy" class="function">model_copy</dd>
<dd id="ExtractedContent.model_dump" class="function">model_dump</dd>
<dd id="ExtractedContent.model_dump_json" class="function">model_dump_json</dd>
<dd id="ExtractedContent.model_json_schema" class="function">model_json_schema</dd>
<dd id="ExtractedContent.model_parametrized_name" class="function">model_parametrized_name</dd>
<dd id="ExtractedContent.model_post_init" class="function">model_post_init</dd>
<dd id="ExtractedContent.model_rebuild" class="function">model_rebuild</dd>
<dd id="ExtractedContent.model_validate" class="function">model_validate</dd>
<dd id="ExtractedContent.model_validate_json" class="function">model_validate_json</dd>
<dd id="ExtractedContent.model_validate_strings" class="function">model_validate_strings</dd>
<dd id="ExtractedContent.dict" class="function">dict</dd>
<dd id="ExtractedContent.json" class="function">json</dd>
<dd id="ExtractedContent.parse_obj" class="function">parse_obj</dd>
<dd id="ExtractedContent.parse_raw" class="function">parse_raw</dd>
<dd id="ExtractedContent.parse_file" class="function">parse_file</dd>
<dd id="ExtractedContent.from_orm" class="function">from_orm</dd>
<dd id="ExtractedContent.construct" class="function">construct</dd>
<dd id="ExtractedContent.copy" class="function">copy</dd>
<dd id="ExtractedContent.schema" class="function">schema</dd>
<dd id="ExtractedContent.schema_json" class="function">schema_json</dd>
<dd id="ExtractedContent.validate" class="function">validate</dd>
<dd id="ExtractedContent.update_forward_refs" class="function">update_forward_refs</dd>
</div>
</dl>
</div>
</section>
<section id="ExtractedPositions">
<input id="ExtractedPositions-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ExtractedPositions</span><wbr>(<span class="base"><a href="#ExtractionSchema">ExtractionSchema</a></span>):
<label class="view-source-button" for="ExtractedPositions-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ExtractedPositions"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ExtractedPositions-47"><a href="#ExtractedPositions-47"><span class="linenos">47</span></a><span class="k">class</span> <span class="nc">ExtractedPositions</span><span class="p">(</span><span class="n">ExtractionSchema</span><span class="p">):</span>
</span><span id="ExtractedPositions-48"><a href="#ExtractedPositions-48"><span class="linenos">48</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractedPositions-49"><a href="#ExtractedPositions-49"><span class="linenos">49</span></a><span class="sd"> A position (like time, coordinates, ...) where something was extracted (each position should belong to a content item).</span>
</span><span id="ExtractedPositions-50"><a href="#ExtractedPositions-50"><span class="linenos">50</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="ExtractedPositions-51"><a href="#ExtractedPositions-51"><span class="linenos">51</span></a>
</span><span id="ExtractedPositions-52"><a href="#ExtractedPositions-52"><span class="linenos">52</span></a> <span class="nb">type</span> <span class="p">:</span> <span class="nb">str</span>
</span><span id="ExtractedPositions-53"><a href="#ExtractedPositions-53"><span class="linenos">53</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractedPositions-54"><a href="#ExtractedPositions-54"><span class="linenos">54</span></a><span class="sd"> The type, as a string, the actual string will depend on the extraction agent.</span>
</span><span id="ExtractedPositions-55"><a href="#ExtractedPositions-55"><span class="linenos">55</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="ExtractedPositions-56"><a href="#ExtractedPositions-56"><span class="linenos">56</span></a>
</span><span id="ExtractedPositions-57"><a href="#ExtractedPositions-57"><span class="linenos">57</span></a> <span class="n">position</span> <span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="nb">int</span> <span class="o">|</span> <span class="n">Any</span>
</span><span id="ExtractedPositions-58"><a href="#ExtractedPositions-58"><span class="linenos">58</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractedPositions-59"><a href="#ExtractedPositions-59"><span class="linenos">59</span></a><span class="sd"> The position, will also depend on the extraction agent.</span>
</span><span id="ExtractedPositions-60"><a href="#ExtractedPositions-60"><span class="linenos">60</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="ExtractedPositions-61"><a href="#ExtractedPositions-61"><span class="linenos">61</span></a>
</span><span id="ExtractedPositions-62"><a href="#ExtractedPositions-62"><span class="linenos">62</span></a> <span class="n">description</span> <span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Any</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="ExtractedPositions-63"><a href="#ExtractedPositions-63"><span class="linenos">63</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractedPositions-64"><a href="#ExtractedPositions-64"><span class="linenos">64</span></a><span class="sd"> An optional description for more details.</span>
</span><span id="ExtractedPositions-65"><a href="#ExtractedPositions-65"><span class="linenos">65</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span></pre></div>
<div class="docstring"><p>A position (like time, coordinates, ...) where something was extracted (each position should belong to a content item).</p>
</div>
<div id="ExtractedPositions.type" class="classattr">
<div class="attr variable">
<span class="name">type</span><span class="annotation">: str</span>
</div>
<a class="headerlink" href="#ExtractedPositions.type"></a>
<div class="docstring"><p>The type, as a string, the actual string will depend on the extraction agent.</p>
</div>
</div>
<div id="ExtractedPositions.position" class="classattr">
<div class="attr variable">
<span class="name">position</span><span class="annotation">: str | int | typing.Any</span>
</div>
<a class="headerlink" href="#ExtractedPositions.position"></a>
<div class="docstring"><p>The position, will also depend on the extraction agent.</p>
</div>
</div>
<div id="ExtractedPositions.description" class="classattr">
<div class="attr variable">
<span class="name">description</span><span class="annotation">: str | typing.Any</span>
</div>
<a class="headerlink" href="#ExtractedPositions.description"></a>
<div class="docstring"><p>An optional description for more details.</p>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt>pydantic.main.BaseModel</dt>
<dd id="ExtractedPositions.__init__" class="function">BaseModel</dd>
<dd id="ExtractedPositions.model_extra" class="variable">model_extra</dd>
<dd id="ExtractedPositions.model_fields_set" class="variable">model_fields_set</dd>
<dd id="ExtractedPositions.model_construct" class="function">model_construct</dd>
<dd id="ExtractedPositions.model_copy" class="function">model_copy</dd>
<dd id="ExtractedPositions.model_dump" class="function">model_dump</dd>
<dd id="ExtractedPositions.model_dump_json" class="function">model_dump_json</dd>
<dd id="ExtractedPositions.model_json_schema" class="function">model_json_schema</dd>
<dd id="ExtractedPositions.model_parametrized_name" class="function">model_parametrized_name</dd>
<dd id="ExtractedPositions.model_post_init" class="function">model_post_init</dd>
<dd id="ExtractedPositions.model_rebuild" class="function">model_rebuild</dd>
<dd id="ExtractedPositions.model_validate" class="function">model_validate</dd>
<dd id="ExtractedPositions.model_validate_json" class="function">model_validate_json</dd>
<dd id="ExtractedPositions.model_validate_strings" class="function">model_validate_strings</dd>
<dd id="ExtractedPositions.dict" class="function">dict</dd>
<dd id="ExtractedPositions.json" class="function">json</dd>
<dd id="ExtractedPositions.parse_obj" class="function">parse_obj</dd>
<dd id="ExtractedPositions.parse_raw" class="function">parse_raw</dd>
<dd id="ExtractedPositions.parse_file" class="function">parse_file</dd>
<dd id="ExtractedPositions.from_orm" class="function">from_orm</dd>
<dd id="ExtractedPositions.construct" class="function">construct</dd>
<dd id="ExtractedPositions.copy" class="function">copy</dd>
<dd id="ExtractedPositions.schema" class="function">schema</dd>
<dd id="ExtractedPositions.schema_json" class="function">schema_json</dd>
<dd id="ExtractedPositions.validate" class="function">validate</dd>
<dd id="ExtractedPositions.update_forward_refs" class="function">update_forward_refs</dd>
</div>
</dl>
</div>
</section>
<section id="ExtractedData">
<input id="ExtractedData-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ExtractedData</span><wbr>(<span class="base"><a href="#ExtractionSchema">ExtractionSchema</a></span>):
<label class="view-source-button" for="ExtractedData-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ExtractedData"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ExtractedData-67"><a href="#ExtractedData-67"><span class="linenos">67</span></a><span class="k">class</span> <span class="nc">ExtractedData</span><span class="p">(</span><span class="n">ExtractionSchema</span><span class="p">):</span>
</span><span id="ExtractedData-68"><a href="#ExtractedData-68"><span class="linenos">68</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractedData-69"><a href="#ExtractedData-69"><span class="linenos">69</span></a><span class="sd"> Contains the extracted items from a data file.</span>
</span><span id="ExtractedData-70"><a href="#ExtractedData-70"><span class="linenos">70</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="ExtractedData-71"><a href="#ExtractedData-71"><span class="linenos">71</span></a>
</span><span id="ExtractedData-72"><a href="#ExtractedData-72"><span class="linenos">72</span></a> <span class="n">contents</span> <span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">ExtractedContent</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="ExtractedData-73"><a href="#ExtractedData-73"><span class="linenos">73</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractedData-74"><a href="#ExtractedData-74"><span class="linenos">74</span></a><span class="sd"> The extracted contents (i.e., transcriptions etc.), each item here should belong a position item at the same index.</span>
</span><span id="ExtractedData-75"><a href="#ExtractedData-75"><span class="linenos">75</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="ExtractedData-76"><a href="#ExtractedData-76"><span class="linenos">76</span></a>
</span><span id="ExtractedData-77"><a href="#ExtractedData-77"><span class="linenos">77</span></a> <span class="n">positions</span> <span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">ExtractedPositions</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="ExtractedData-78"><a href="#ExtractedData-78"><span class="linenos">78</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractedData-79"><a href="#ExtractedData-79"><span class="linenos">79</span></a><span class="sd"> The positions of extracted contents, each item here should belong a content item at the same index.</span>
</span><span id="ExtractedData-80"><a href="#ExtractedData-80"><span class="linenos">80</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="ExtractedData-81"><a href="#ExtractedData-81"><span class="linenos">81</span></a>
</span><span id="ExtractedData-82"><a href="#ExtractedData-82"><span class="linenos">82</span></a> <span class="n">other</span> <span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="ExtractedData-83"><a href="#ExtractedData-83"><span class="linenos">83</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="ExtractedData-84"><a href="#ExtractedData-84"><span class="linenos">84</span></a><span class="sd"> Possibly more data. Use a keywords (depending on agent) and store the data there.</span>
</span><span id="ExtractedData-85"><a href="#ExtractedData-85"><span class="linenos">85</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span></pre></div>
<div class="docstring"><p>Contains the extracted items from a data file.</p>
</div>
<div id="ExtractedData.contents" class="classattr">
<div class="attr variable">
<span class="name">contents</span><span class="annotation">: List[<a href="#ExtractedContent">ExtractedContent</a>]</span>
</div>
<a class="headerlink" href="#ExtractedData.contents"></a>
<div class="docstring"><p>The extracted contents (i.e., transcriptions etc.), each item here should belong a position item at the same index.</p>
</div>
</div>
<div id="ExtractedData.positions" class="classattr">
<div class="attr variable">
<span class="name">positions</span><span class="annotation">: List[<a href="#ExtractedPositions">ExtractedPositions</a>]</span>
</div>
<a class="headerlink" href="#ExtractedData.positions"></a>
<div class="docstring"><p>The positions of extracted contents, each item here should belong a content item at the same index.</p>
</div>
</div>
<div id="ExtractedData.other" class="classattr">
<div class="attr variable">
<span class="name">other</span><span class="annotation">: Dict[str, Any]</span>
</div>
<a class="headerlink" href="#ExtractedData.other"></a>
<div class="docstring"><p>Possibly more data. Use a keywords (depending on agent) and store the data there.</p>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt>pydantic.main.BaseModel</dt>
<dd id="ExtractedData.__init__" class="function">BaseModel</dd>
<dd id="ExtractedData.model_extra" class="variable">model_extra</dd>
<dd id="ExtractedData.model_fields_set" class="variable">model_fields_set</dd>
<dd id="ExtractedData.model_construct" class="function">model_construct</dd>
<dd id="ExtractedData.model_copy" class="function">model_copy</dd>
<dd id="ExtractedData.model_dump" class="function">model_dump</dd>
<dd id="ExtractedData.model_dump_json" class="function">model_dump_json</dd>
<dd id="ExtractedData.model_json_schema" class="function">model_json_schema</dd>
<dd id="ExtractedData.model_parametrized_name" class="function">model_parametrized_name</dd>
<dd id="ExtractedData.model_post_init" class="function">model_post_init</dd>
<dd id="ExtractedData.model_rebuild" class="function">model_rebuild</dd>
<dd id="ExtractedData.model_validate" class="function">model_validate</dd>
<dd id="ExtractedData.model_validate_json" class="function">model_validate_json</dd>
<dd id="ExtractedData.model_validate_strings" class="function">model_validate_strings</dd>
<dd id="ExtractedData.dict" class="function">dict</dd>
<dd id="ExtractedData.json" class="function">json</dd>
<dd id="ExtractedData.parse_obj" class="function">parse_obj</dd>
<dd id="ExtractedData.parse_raw" class="function">parse_raw</dd>
<dd id="ExtractedData.parse_file" class="function">parse_file</dd>
<dd id="ExtractedData.from_orm" class="function">from_orm</dd>
<dd id="ExtractedData.construct" class="function">construct</dd>
<dd id="ExtractedData.copy" class="function">copy</dd>
<dd id="ExtractedData.schema" class="function">schema</dd>
<dd id="ExtractedData.schema_json" class="function">schema_json</dd>
<dd id="ExtractedData.validate" class="function">validate</dd>
<dd id="ExtractedData.update_forward_refs" class="function">update_forward_refs</dd>
</div>
</dl>
</div>
</section>
</main>
<script>
function escapeHTML(html) {

View File

@ -949,7 +949,7 @@ is set to <code>'allow'</code>.</li>
</div>
<div id="RiddleData.file_plain" class="classattr">
<div class="attr variable">
<span class="name">file_plain</span><span class="annotation">: Annotated[str, AfterValidator(func=&lt;function _check_data_file at 0x101d893a0&gt;), WrapValidator(func=&lt;function _ignore_file_missing at 0x1020ad800&gt;, json_schema_input_type=PydanticUndefined)]</span>
<span class="name">file_plain</span><span class="annotation">: Annotated[str, AfterValidator(func=&lt;function _check_data_file at 0x1029c23e0&gt;), WrapValidator(func=&lt;function _ignore_file_missing at 0x102a73100&gt;, json_schema_input_type=PydanticUndefined)]</span>
</div>
@ -965,7 +965,7 @@ The file must exist.</p>
</div>
<div id="RiddleData.file_extracted" class="classattr">
<div class="attr variable">
<span class="name">file_extracted</span><span class="annotation">: Optional[Annotated[str, AfterValidator(func=&lt;function _check_data_file at 0x101d893a0&gt;), WrapValidator(func=&lt;function _ignore_file_missing at 0x1020ad800&gt;, json_schema_input_type=PydanticUndefined)]]</span>
<span class="name">file_extracted</span><span class="annotation">: Optional[Annotated[str, AfterValidator(func=&lt;function _check_data_file at 0x1029c23e0&gt;), WrapValidator(func=&lt;function _ignore_file_missing at 0x102a73100&gt;, json_schema_input_type=PydanticUndefined)]]</span>
</div>