Better docs
All checks were successful
Build and push Docker image at git tag / build (push) Successful in 7m7s

This commit is contained in:
Magnus Bender 2024-10-08 13:20:04 +02:00
parent 28eee676c4
commit afc35be35a
Signed by: bender
GPG Key ID: 5149A211831F2BD7
16 changed files with 1586 additions and 192 deletions

View File

@ -27,7 +27,7 @@ services:
- ./data/persist-management/:/ums-agenten/persist/
# bind code from host to container (for development)
- ./ums/:/ums-agenten/plattform/ums/:ro
- ./web/:/ums-agenten/plattform/web/:ro
- ./web/:/ums-agenten/plattform/web/
# enable auto reloading (for development)
entrypoint: bash -c "nginx; uvicorn ums.management.main:app --uds /tmp/uvicorn.sock --proxy-headers --reload"
entrypoint: bash -c "nginx; SERVE=true uvicorn ums.management.main:app --uds /tmp/uvicorn.sock --proxy-headers --reload"

View File

@ -20,6 +20,7 @@ autorestart=false
[fcgi-program:uvicorn]
socket=unix:///tmp/uvicorn.sock
environment=SERVE=true
command=/usr/local/bin/uvicorn ums.management.main:app --uds /tmp/uvicorn.sock --proxy-headers
numprocs=4
process_name=uvicorn-%(process_num)d

File diff suppressed because one or more lines are too long

View File

@ -8,6 +8,8 @@
# source code released under the terms of GNU Public License Version 3
# https://www.gnu.org/licenses/gpl-3.0.txt
import os
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
@ -77,6 +79,6 @@ class WebMain():
return ex
if __name__ == "ums.management.main":
if __name__ == "ums.management.main" and os.environ.get('SERVE', 'false') == 'true':
main = WebMain()
app = main.app

46
web/public/docs/search.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -31,6 +31,8 @@
<h2>Submodules</h2>
<ul>
<li><a href="management/db.html">db</a></li>
<li><a href="management/interface.html">interface</a></li>
<li><a href="management/main.html">main</a></li>
</ul>

File diff suppressed because one or more lines are too long

View File

@ -6,7 +6,7 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="generator" content="pdoc 14.7.0"/>
<title>ums.management.main API documentation</title>
<title>ums.management.interface API documentation</title>
<style>/*! * Bootstrap Reboot v5.0.0 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}</style>
<style>/*! syntax-highlighting.css */pre{line-height:125%;}span.linenos{color:inherit; background-color:transparent; padding-left:5px; padding-right:20px;}.pdoc-code .hll{background-color:#ffffcc}.pdoc-code{background:#f8f8f8;}.pdoc-code .c{color:#3D7B7B; font-style:italic}.pdoc-code .err{border:1px solid #FF0000}.pdoc-code .k{color:#008000; font-weight:bold}.pdoc-code .o{color:#666666}.pdoc-code .ch{color:#3D7B7B; font-style:italic}.pdoc-code .cm{color:#3D7B7B; font-style:italic}.pdoc-code .cp{color:#9C6500}.pdoc-code .cpf{color:#3D7B7B; font-style:italic}.pdoc-code .c1{color:#3D7B7B; font-style:italic}.pdoc-code .cs{color:#3D7B7B; font-style:italic}.pdoc-code .gd{color:#A00000}.pdoc-code .ge{font-style:italic}.pdoc-code .gr{color:#E40000}.pdoc-code .gh{color:#000080; font-weight:bold}.pdoc-code .gi{color:#008400}.pdoc-code .go{color:#717171}.pdoc-code .gp{color:#000080; font-weight:bold}.pdoc-code .gs{font-weight:bold}.pdoc-code .gu{color:#800080; font-weight:bold}.pdoc-code .gt{color:#0044DD}.pdoc-code .kc{color:#008000; font-weight:bold}.pdoc-code .kd{color:#008000; font-weight:bold}.pdoc-code .kn{color:#008000; font-weight:bold}.pdoc-code .kp{color:#008000}.pdoc-code .kr{color:#008000; font-weight:bold}.pdoc-code .kt{color:#B00040}.pdoc-code .m{color:#666666}.pdoc-code .s{color:#BA2121}.pdoc-code .na{color:#687822}.pdoc-code .nb{color:#008000}.pdoc-code .nc{color:#0000FF; font-weight:bold}.pdoc-code .no{color:#880000}.pdoc-code .nd{color:#AA22FF}.pdoc-code .ni{color:#717171; font-weight:bold}.pdoc-code .ne{color:#CB3F38; font-weight:bold}.pdoc-code .nf{color:#0000FF}.pdoc-code .nl{color:#767600}.pdoc-code .nn{color:#0000FF; font-weight:bold}.pdoc-code .nt{color:#008000; font-weight:bold}.pdoc-code .nv{color:#19177C}.pdoc-code .ow{color:#AA22FF; font-weight:bold}.pdoc-code .w{color:#bbbbbb}.pdoc-code .mb{color:#666666}.pdoc-code .mf{color:#666666}.pdoc-code .mh{color:#666666}.pdoc-code .mi{color:#666666}.pdoc-code .mo{color:#666666}.pdoc-code .sa{color:#BA2121}.pdoc-code .sb{color:#BA2121}.pdoc-code .sc{color:#BA2121}.pdoc-code .dl{color:#BA2121}.pdoc-code .sd{color:#BA2121; font-style:italic}.pdoc-code .s2{color:#BA2121}.pdoc-code .se{color:#AA5D1F; font-weight:bold}.pdoc-code .sh{color:#BA2121}.pdoc-code .si{color:#A45A77; font-weight:bold}.pdoc-code .sx{color:#008000}.pdoc-code .sr{color:#A45A77}.pdoc-code .s1{color:#BA2121}.pdoc-code .ss{color:#19177C}.pdoc-code .bp{color:#008000}.pdoc-code .fm{color:#0000FF}.pdoc-code .vc{color:#19177C}.pdoc-code .vg{color:#19177C}.pdoc-code .vi{color:#19177C}.pdoc-code .vm{color:#19177C}.pdoc-code .il{color:#666666}</style>
@ -33,16 +33,22 @@
<h2>API Documentation</h2>
<ul class="memberlist">
<li>
<a class="variable" href="#app">app</a>
</li>
<li>
<a class="function" href="#read_root">read_root</a>
</li>
<li>
<a class="function" href="#huhu">huhu</a>
</li>
<li>
<a class="function" href="#read_item">read_item</a>
<a class="class" href="#Interface">Interface</a>
<ul class="memberlist">
<li>
<a class="function" href="#Interface.__init__">Interface</a>
</li>
<li>
<a class="variable" href="#Interface.template">template</a>
</li>
<li>
<a class="variable" href="#Interface.db">db</a>
</li>
<li>
<a class="variable" href="#Interface.router">router</a>
</li>
</ul>
</li>
</ul>
@ -58,12 +64,12 @@
<main class="pdoc">
<section class="module-info">
<h1 class="modulename">
<a href="./../../ums.html">ums</a><wbr>.<a href="./../management.html">management</a><wbr>.main </h1>
<a href="./../../ums.html">ums</a><wbr>.<a href="./../management.html">management</a><wbr>.interface </h1>
<input id="mod-main-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<input id="mod-interface-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<label class="view-source-button" for="mod-main-view-source"><span>View Source</span></label>
<label class="view-source-button" for="mod-interface-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="c1"># Agenten Plattform</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="c1">#</span>
@ -75,146 +81,130 @@
</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="c1"># TEST ONLY</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a>
</span><span id="L-13"><a href="#L-13"><span class="linenos">13</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">RiddleData</span><span class="p">,</span> <span class="n">RiddleDataType</span><span class="p">,</span> <span class="n">RiddleSolution</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a>
</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a><span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Union</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a>
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a><span class="kn">from</span> <span class="nn">fastapi</span> <span class="kn">import</span> <span class="n">FastAPI</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="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</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="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/&quot;</span><span class="p">)</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a><span class="k">def</span> <span class="nf">read_root</span><span class="p">():</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a> <span class="k">return</span> <span class="p">{</span><span class="s2">&quot;Hello&quot;</span><span class="p">:</span> <span class="s2">&quot;World&quot;</span><span class="p">}</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a><span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/test&quot;</span><span class="p">)</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a><span class="k">def</span> <span class="nf">huhu</span><span class="p">():</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a> <span class="n">ex</span> <span class="o">=</span> <span class="n">AgentMessage</span><span class="p">(</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a> <span class="nb">id</span><span class="o">=</span><span class="s2">&quot;ex1&quot;</span><span class="p">,</span>
</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a> <span class="n">riddle</span><span class="o">=</span><span class="p">{</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="s2">&quot;context&quot;</span><span class="p">:</span><span class="s2">&quot;Example 1&quot;</span><span class="p">,</span>
</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a> <span class="s2">&quot;question&quot;</span><span class="p">:</span><span class="s2">&quot;Get the name of the person.&quot;</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> <span class="p">},</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a> <span class="n">data</span><span class="o">=</span><span class="p">[</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a> <span class="n">RiddleData</span><span class="p">(</span>
</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="nb">type</span><span class="o">=</span><span class="n">RiddleDataType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="n">file_plain</span><span class="o">=</span><span class="s2">&quot;./cv.txt&quot;</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a> <span class="p">)</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a> <span class="p">]</span>
</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a> <span class="p">)</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a> <span class="n">ex</span><span class="o">.</span><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-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="n">ex</span><span class="o">.</span><span class="n">solution</span> <span class="o">=</span> <span class="n">RiddleSolution</span><span class="p">(</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> <span class="n">solution</span><span class="o">=</span><span class="s2">&quot;Otto&quot;</span><span class="p">,</span>
</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a> <span class="n">explanation</span><span class="o">=</span><span class="s2">&quot;Written in line 6 after &#39;Name:&#39;&quot;</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a> <span class="p">)</span>
</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">return</span> <span class="n">ex</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><span id="L-50"><a href="#L-50"><span class="linenos">50</span></a><span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/items/</span><span class="si">{item_id}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="L-51"><a href="#L-51"><span class="linenos">51</span></a><span class="k">def</span> <span class="nf">read_item</span><span class="p">(</span><span class="n">item_id</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="n">q</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="kc">None</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos">52</span></a> <span class="k">return</span> <span class="p">{</span><span class="s2">&quot;item_id&quot;</span><span class="p">:</span> <span class="n">item_id</span><span class="p">,</span> <span class="s2">&quot;q&quot;</span><span class="p">:</span> <span class="n">q</span><span class="p">}</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a><span class="kn">from</span> <span class="nn">fastapi</span> <span class="kn">import</span> <span class="n">APIRouter</span><span class="p">,</span> <span class="n">Request</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a><span class="kn">from</span> <span class="nn">fastapi.templating</span> <span class="kn">import</span> <span class="n">Jinja2Templates</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.management.db</span> <span class="kn">import</span> <span class="n">DB</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="k">class</span> <span class="nc">Interface</span><span class="p">():</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="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">template</span><span class="p">:</span><span class="n">Jinja2Templates</span><span class="p">,</span> <span class="n">db</span><span class="p">:</span><span class="n">DB</span><span class="p">):</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">template</span> <span class="o">=</span> <span class="n">template</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span> <span class="o">=</span> <span class="n">db</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="bp">self</span><span class="o">.</span><span class="n">router</span> <span class="o">=</span> <span class="n">APIRouter</span><span class="p">(</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;/app&quot;</span><span class="p">,</span>
</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a> <span class="n">tags</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;app, gui&quot;</span><span class="p">]</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a> <span class="p">)</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="bp">self</span><span class="o">.</span><span class="n">_add_routes</span><span class="p">()</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a>
</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a> <span class="k">def</span> <span class="nf">_add_routes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="nd">@self</span><span class="o">.</span><span class="n">router</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/&quot;</span><span class="p">,</span> <span class="n">summary</span><span class="o">=</span><span class="s2">&quot;Test&quot;</span><span class="p">)</span>
</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a> <span class="k">def</span> <span class="nf">corpus</span><span class="p">(</span><span class="n">request</span><span class="p">:</span> <span class="n">Request</span><span class="p">):</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a>
</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="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">by_count</span><span class="p">(</span><span class="mi">3</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="k">return</span> <span class="p">{}</span>
</span></pre></div>
</section>
<section id="app">
<div class="attr variable">
<span class="name">app</span> =
<span class="default_value">&lt;fastapi.applications.FastAPI object&gt;</span>
<section id="Interface">
<input id="Interface-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">Interface</span>:
<label class="view-source-button" for="Interface-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Interface"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Interface-17"><a href="#Interface-17"><span class="linenos">17</span></a><span class="k">class</span> <span class="nc">Interface</span><span class="p">():</span>
</span><span id="Interface-18"><a href="#Interface-18"><span class="linenos">18</span></a>
</span><span id="Interface-19"><a href="#Interface-19"><span class="linenos">19</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">template</span><span class="p">:</span><span class="n">Jinja2Templates</span><span class="p">,</span> <span class="n">db</span><span class="p">:</span><span class="n">DB</span><span class="p">):</span>
</span><span id="Interface-20"><a href="#Interface-20"><span class="linenos">20</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">template</span> <span class="o">=</span> <span class="n">template</span>
</span><span id="Interface-21"><a href="#Interface-21"><span class="linenos">21</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span> <span class="o">=</span> <span class="n">db</span>
</span><span id="Interface-22"><a href="#Interface-22"><span class="linenos">22</span></a>
</span><span id="Interface-23"><a href="#Interface-23"><span class="linenos">23</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">router</span> <span class="o">=</span> <span class="n">APIRouter</span><span class="p">(</span>
</span><span id="Interface-24"><a href="#Interface-24"><span class="linenos">24</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;/app&quot;</span><span class="p">,</span>
</span><span id="Interface-25"><a href="#Interface-25"><span class="linenos">25</span></a> <span class="n">tags</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;app, gui&quot;</span><span class="p">]</span>
</span><span id="Interface-26"><a href="#Interface-26"><span class="linenos">26</span></a> <span class="p">)</span>
</span><span id="Interface-27"><a href="#Interface-27"><span class="linenos">27</span></a>
</span><span id="Interface-28"><a href="#Interface-28"><span class="linenos">28</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add_routes</span><span class="p">()</span>
</span><span id="Interface-29"><a href="#Interface-29"><span class="linenos">29</span></a>
</span><span id="Interface-30"><a href="#Interface-30"><span class="linenos">30</span></a> <span class="k">def</span> <span class="nf">_add_routes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Interface-31"><a href="#Interface-31"><span class="linenos">31</span></a> <span class="nd">@self</span><span class="o">.</span><span class="n">router</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/&quot;</span><span class="p">,</span> <span class="n">summary</span><span class="o">=</span><span class="s2">&quot;Test&quot;</span><span class="p">)</span>
</span><span id="Interface-32"><a href="#Interface-32"><span class="linenos">32</span></a> <span class="k">def</span> <span class="nf">corpus</span><span class="p">(</span><span class="n">request</span><span class="p">:</span> <span class="n">Request</span><span class="p">):</span>
</span><span id="Interface-33"><a href="#Interface-33"><span class="linenos">33</span></a>
</span><span id="Interface-34"><a href="#Interface-34"><span class="linenos">34</span></a> <span class="nb">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">by_count</span><span class="p">(</span><span class="mi">3</span><span class="p">))</span>
</span><span id="Interface-35"><a href="#Interface-35"><span class="linenos">35</span></a>
</span><span id="Interface-36"><a href="#Interface-36"><span class="linenos">36</span></a> <span class="k">return</span> <span class="p">{}</span>
</span></pre></div>
<div id="Interface.__init__" class="classattr">
<input id="Interface.__init__-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="name">Interface</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">template</span><span class="p">:</span> <span class="n">starlette</span><span class="o">.</span><span class="n">templating</span><span class="o">.</span><span class="n">Jinja2Templates</span>,</span><span class="param"> <span class="n">db</span><span class="p">:</span> <span class="n"><a href="db.html#DB">ums.management.db.DB</a></span></span>)</span>
<label class="view-source-button" for="Interface.__init__-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Interface.__init__"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Interface.__init__-19"><a href="#Interface.__init__-19"><span class="linenos">19</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">template</span><span class="p">:</span><span class="n">Jinja2Templates</span><span class="p">,</span> <span class="n">db</span><span class="p">:</span><span class="n">DB</span><span class="p">):</span>
</span><span id="Interface.__init__-20"><a href="#Interface.__init__-20"><span class="linenos">20</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">template</span> <span class="o">=</span> <span class="n">template</span>
</span><span id="Interface.__init__-21"><a href="#Interface.__init__-21"><span class="linenos">21</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">db</span> <span class="o">=</span> <span class="n">db</span>
</span><span id="Interface.__init__-22"><a href="#Interface.__init__-22"><span class="linenos">22</span></a>
</span><span id="Interface.__init__-23"><a href="#Interface.__init__-23"><span class="linenos">23</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">router</span> <span class="o">=</span> <span class="n">APIRouter</span><span class="p">(</span>
</span><span id="Interface.__init__-24"><a href="#Interface.__init__-24"><span class="linenos">24</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;/app&quot;</span><span class="p">,</span>
</span><span id="Interface.__init__-25"><a href="#Interface.__init__-25"><span class="linenos">25</span></a> <span class="n">tags</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;app, gui&quot;</span><span class="p">]</span>
</span><span id="Interface.__init__-26"><a href="#Interface.__init__-26"><span class="linenos">26</span></a> <span class="p">)</span>
</span><span id="Interface.__init__-27"><a href="#Interface.__init__-27"><span class="linenos">27</span></a>
</span><span id="Interface.__init__-28"><a href="#Interface.__init__-28"><span class="linenos">28</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add_routes</span><span class="p">()</span>
</span></pre></div>
</div>
<div id="Interface.template" class="classattr">
<div class="attr variable">
<span class="name">template</span>
</div>
<a class="headerlink" href="#app"></a>
<a class="headerlink" href="#Interface.template"></a>
</section>
<section id="read_root">
<input id="read_root-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@app.get(&#39;/&#39;)</div>
<span class="def">def</span>
<span class="name">read_root</span><span class="signature pdoc-code condensed">(<span class="return-annotation">):</span></span>
<label class="view-source-button" for="read_root-view-source"><span>View Source</span></label>
</div>
<div id="Interface.db" class="classattr">
<div class="attr variable">
<span class="name">db</span>
</div>
<a class="headerlink" href="#read_root"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_root-22"><a href="#read_root-22"><span class="linenos">22</span></a><span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/&quot;</span><span class="p">)</span>
</span><span id="read_root-23"><a href="#read_root-23"><span class="linenos">23</span></a><span class="k">def</span> <span class="nf">read_root</span><span class="p">():</span>
</span><span id="read_root-24"><a href="#read_root-24"><span class="linenos">24</span></a> <span class="k">return</span> <span class="p">{</span><span class="s2">&quot;Hello&quot;</span><span class="p">:</span> <span class="s2">&quot;World&quot;</span><span class="p">}</span>
</span></pre></div>
<a class="headerlink" href="#Interface.db"></a>
</section>
<section id="huhu">
<input id="huhu-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@app.get(&#39;/test&#39;)</div>
<span class="def">def</span>
<span class="name">huhu</span><span class="signature pdoc-code condensed">(<span class="return-annotation">):</span></span>
<label class="view-source-button" for="huhu-view-source"><span>View Source</span></label>
</div>
<div id="Interface.router" class="classattr">
<div class="attr variable">
<span class="name">router</span>
</div>
<a class="headerlink" href="#huhu"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="huhu-26"><a href="#huhu-26"><span class="linenos">26</span></a><span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/test&quot;</span><span class="p">)</span>
</span><span id="huhu-27"><a href="#huhu-27"><span class="linenos">27</span></a><span class="k">def</span> <span class="nf">huhu</span><span class="p">():</span>
</span><span id="huhu-28"><a href="#huhu-28"><span class="linenos">28</span></a> <span class="n">ex</span> <span class="o">=</span> <span class="n">AgentMessage</span><span class="p">(</span>
</span><span id="huhu-29"><a href="#huhu-29"><span class="linenos">29</span></a> <span class="nb">id</span><span class="o">=</span><span class="s2">&quot;ex1&quot;</span><span class="p">,</span>
</span><span id="huhu-30"><a href="#huhu-30"><span class="linenos">30</span></a> <span class="n">riddle</span><span class="o">=</span><span class="p">{</span>
</span><span id="huhu-31"><a href="#huhu-31"><span class="linenos">31</span></a> <span class="s2">&quot;context&quot;</span><span class="p">:</span><span class="s2">&quot;Example 1&quot;</span><span class="p">,</span>
</span><span id="huhu-32"><a href="#huhu-32"><span class="linenos">32</span></a> <span class="s2">&quot;question&quot;</span><span class="p">:</span><span class="s2">&quot;Get the name of the person.&quot;</span>
</span><span id="huhu-33"><a href="#huhu-33"><span class="linenos">33</span></a> <span class="p">},</span>
</span><span id="huhu-34"><a href="#huhu-34"><span class="linenos">34</span></a> <span class="n">data</span><span class="o">=</span><span class="p">[</span>
</span><span id="huhu-35"><a href="#huhu-35"><span class="linenos">35</span></a> <span class="n">RiddleData</span><span class="p">(</span>
</span><span id="huhu-36"><a href="#huhu-36"><span class="linenos">36</span></a> <span class="nb">type</span><span class="o">=</span><span class="n">RiddleDataType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
</span><span id="huhu-37"><a href="#huhu-37"><span class="linenos">37</span></a> <span class="n">file_plain</span><span class="o">=</span><span class="s2">&quot;./cv.txt&quot;</span>
</span><span id="huhu-38"><a href="#huhu-38"><span class="linenos">38</span></a> <span class="p">)</span>
</span><span id="huhu-39"><a href="#huhu-39"><span class="linenos">39</span></a> <span class="p">]</span>
</span><span id="huhu-40"><a href="#huhu-40"><span class="linenos">40</span></a> <span class="p">)</span>
</span><span id="huhu-41"><a href="#huhu-41"><span class="linenos">41</span></a> <span class="n">ex</span><span class="o">.</span><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="huhu-42"><a href="#huhu-42"><span class="linenos">42</span></a>
</span><span id="huhu-43"><a href="#huhu-43"><span class="linenos">43</span></a> <span class="n">ex</span><span class="o">.</span><span class="n">solution</span> <span class="o">=</span> <span class="n">RiddleSolution</span><span class="p">(</span>
</span><span id="huhu-44"><a href="#huhu-44"><span class="linenos">44</span></a> <span class="n">solution</span><span class="o">=</span><span class="s2">&quot;Otto&quot;</span><span class="p">,</span>
</span><span id="huhu-45"><a href="#huhu-45"><span class="linenos">45</span></a> <span class="n">explanation</span><span class="o">=</span><span class="s2">&quot;Written in line 6 after &#39;Name:&#39;&quot;</span>
</span><span id="huhu-46"><a href="#huhu-46"><span class="linenos">46</span></a> <span class="p">)</span>
</span><span id="huhu-47"><a href="#huhu-47"><span class="linenos">47</span></a>
</span><span id="huhu-48"><a href="#huhu-48"><span class="linenos">48</span></a> <span class="k">return</span> <span class="n">ex</span>
</span></pre></div>
</section>
<section id="read_item">
<input id="read_item-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@app.get(&#39;/items/{item_id}&#39;)</div>
<span class="def">def</span>
<span class="name">read_item</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">item_id</span><span class="p">:</span> <span class="nb">int</span>, </span><span class="param"><span class="n">q</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="read_item-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#read_item"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_item-51"><a href="#read_item-51"><span class="linenos">51</span></a><span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/items/</span><span class="si">{item_id}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="read_item-52"><a href="#read_item-52"><span class="linenos">52</span></a><span class="k">def</span> <span class="nf">read_item</span><span class="p">(</span><span class="n">item_id</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="n">q</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="kc">None</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
</span><span id="read_item-53"><a href="#read_item-53"><span class="linenos">53</span></a> <span class="k">return</span> <span class="p">{</span><span class="s2">&quot;item_id&quot;</span><span class="p">:</span> <span class="n">item_id</span><span class="p">,</span> <span class="s2">&quot;q&quot;</span><span class="p">:</span> <span class="n">q</span><span class="p">}</span>
</span></pre></div>
<a class="headerlink" href="#Interface.router"></a>
</div>
</section>
</main>
<script>

File diff suppressed because one or more lines are too long

View File

@ -38,6 +38,12 @@
<li>
<a class="variable" href="#SHARE_PATH">SHARE_PATH</a>
</li>
<li>
<a class="variable" href="#PERSIST_PATH">PERSIST_PATH</a>
</li>
<li>
<a class="variable" href="#TEMPLATE_PATH">TEMPLATE_PATH</a>
</li>
</ul>
@ -79,8 +85,10 @@ See the content ...</p>
</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="kn">import</span> <span class="nn">os</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="n">BASE_PATH</span> <span class="o">=</span> <span class="s1">&#39;/ums-agent&#39;</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a><span class="n">BASE_PATH</span> <span class="o">=</span> <span class="s1">&#39;/ums-agenten&#39;</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a><span class="n">SHARE_PATH</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">BASE_PATH</span><span class="p">,</span> <span class="s1">&#39;share&#39;</span><span class="p">)</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a><span class="n">PERSIST_PATH</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">BASE_PATH</span><span class="p">,</span> <span class="s1">&#39;persist&#39;</span><span class="p">)</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a><span class="n">TEMPLATE_PATH</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">BASE_PATH</span><span class="p">,</span> <span class="s1">&#39;plattform&#39;</span><span class="p">,</span> <span class="s1">&#39;web&#39;</span><span class="p">,</span> <span class="s1">&#39;templates&#39;</span><span class="p">)</span>
</span></pre></div>
@ -88,7 +96,7 @@ See the content ...</p>
<section id="BASE_PATH">
<div class="attr variable">
<span class="name">BASE_PATH</span> =
<span class="default_value">&#39;/ums-agent&#39;</span>
<span class="default_value">&#39;/ums-agenten&#39;</span>
</div>
@ -100,7 +108,7 @@ See the content ...</p>
<section id="SHARE_PATH">
<div class="attr variable">
<span class="name">SHARE_PATH</span> =
<span class="default_value">&#39;/ums-agent/share&#39;</span>
<span class="default_value">&#39;/ums-agenten/share&#39;</span>
</div>
@ -108,6 +116,30 @@ See the content ...</p>
</section>
<section id="PERSIST_PATH">
<div class="attr variable">
<span class="name">PERSIST_PATH</span> =
<span class="default_value">&#39;/ums-agenten/persist&#39;</span>
</div>
<a class="headerlink" href="#PERSIST_PATH"></a>
</section>
<section id="TEMPLATE_PATH">
<div class="attr variable">
<span class="name">TEMPLATE_PATH</span> =
<span class="default_value">&#39;/ums-agenten/plattform/web/templates&#39;</span>
</div>
<a class="headerlink" href="#TEMPLATE_PATH"></a>
</section>
</main>
<script>

View File

@ -214,7 +214,7 @@ It provides validation, allow JSON serialization and works well with <a href="ht
<span class="w"> </span><span class="nt">&quot;data&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;type&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;text&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;file_plain&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;/ums-agent/share/cv.txt&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;file_plain&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;/ums-agenten/share/cv.txt&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;file_extracted&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">],</span>
@ -312,7 +312,7 @@ It provides validation, allow JSON serialization and works well with <a href="ht
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="sd"> &quot;data&quot;: [</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a><span class="sd"> {</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="sd"> &quot;type&quot;: &quot;text&quot;,</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="sd"> &quot;file_plain&quot;: &quot;/ums-agent/share/cv.txt&quot;,</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="sd"> &quot;file_plain&quot;: &quot;/ums-agenten/share/cv.txt&quot;,</span>
</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a><span class="sd"> &quot;file_extracted&quot;: null</span>
</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a><span class="sd"> }</span>
</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="sd"> ],</span>
@ -752,7 +752,7 @@ about a riddle.</p>
</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 0x103514f40&gt;)]</span>
<span class="name">file_plain</span><span class="annotation">: Annotated[str, AfterValidator(func=&lt;function _check_data_file at 0x104208f40&gt;)]</span>
</div>
@ -768,7 +768,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 0x103514f40&gt;)]]</span>
<span class="name">file_extracted</span><span class="annotation">: Optional[Annotated[str, AfterValidator(func=&lt;function _check_data_file at 0x104208f40&gt;)]]</span>
</div>