Download Game! Currently 83 players. Last logged in:GilbourneDesertDregasZandrea

Blitzer's Blog >> 72660

Back to blogs index
Posted: 21 Sep 2026 11:06 [ permalink ]
Kiitos! 

Kehitin toisessa chatissa toimivan mikropalvelun, jota voi kC$yttC$C$
seuraavasti: 

==[ Toinen chat ]==
TC$ssC$ on valmis ja kattava tekninen dokumentaatio-prompti, jonka voit
suoraan kopioida ja liittC$C$ toiseen chattiin. TC$mC$ on muotoiltu siten,
ettC$ vastaanottava LLM (tai ohjelmistokehittC$jC$) ymmC$rtC$C$ heti
arkkitehtuurin, rajapinnan sopimuksen ja sen, miten tC$tC$ visuaalista dataa
hyC6dynnetC$C$n.

---

**Kopioi alla oleva teksti:**

```text
[SYSTEM CONTEXT / DOCUMENTATION]
Olemme kehittC$neet uuden "UI Vision Extractor" -mikropalvelun konenC$kC6C$ ja
autonomisia RPA-agentteja varten. Palvelu on toteutettu Pythonilla,
FastAPI:lla ja asynkronisella Playwrightilla (Chrome DevTools Protocol). Sen
tarkoituksena on ratkaista LLM-pohjaisten agenttien hallusinointi ja
koordinaattien arvaaminen dynaamisissa tai monimutkaisissa kC$yttC6liittymissC$
 (esim. WhatsApp, SPA-sovellukset).

JC$rjestelmC$ kC$yttC$C$ Set-of-Mark (SoM) -tekniikkaa: se injektoi DOM-puuhun
vC$liaikaisia CSS-tyylejC$ ja absoluuttisesti asemoituja numeroituja merkkejC$
(badges), ottaa kuvat muistiin ja palauttaa DOMin alkuperC$iseen tilaan
salamannopeasti.

### API-rajapinta (REST)
**Endpoint:** `POST /api/v1/extract`
**Content-Type:** `application/json`

**Request Payload:**
{
B B "haku_termi": "whatsapp", // Etsii vC$lilehteC$ URL:n tai otsikon
perusteella
B B "full_page": false, // True pitkille sivuille, False SPA-sovelluksille
(kuten WhatsApp), joissa on height: 100vh
B B "wait_time_ms": 1000 // Aika millisekunteina, jonka selain odottaa tyylien
renderC6intiC$ ennen kaappausta
}

**Response Payload (JSON):**
{
B B "status": "success",
B B "metadata": {
B B B B "url": "https://web.whatsapp.com/...",
B B B B "element_count": 149
B B },
B B "semantic_map": [
B B B B {
B B B B B B "id": 132,
B B B B B B "tag": "SPAN",
B B B B B B "role": null,
B B B B B B "text": "Lue kokonaan",
B B B B B B "x": 677.5,
B B B B B B "y": 1001.0,
B B B B B B "width": 110.0,
B B B B B B "height": 20.0,
B B B B B B "center_x": 732.5,
B B B B B B "center_y": 1011.0
B B B B }
B B B B // ... (sisC$ltC$C$ kaikki interaktiiviset tai tekstiC$ sisC$ltC$vC$t
elementit)
B B ],
B B "images_base64": {
B B B B "numbered_outlines": "<BASE64_JPEG>", // Kuva 1: Magentat C$C$riviivat
+ elementtien ID-numerot ylC$kulmassa
B B B B "outlines_only": "<BASE64_JPEG>",B B B// Kuva 2: Vain magentat
C$C$riviivat (numerot piilotettu)
B B B B "clean_bitmap": "<BASE64_JPEG>"B B B B// Kuva 3: TC$ysin puhdas
alkuperC$inen nC$yttC6kuva (100% laatu)
B B }
}

### Suositeltu tyC6skentelymalli LLM-agentille:
1. PC$C$ttelyvaihe: Agentille syC6tetC$C$n `numbered_outlines` -kuva ja
pyydetC$C$n valitsemaan seuraava toimenpide palauttamalla halutun elementin ID
(esim. "[132]").
2. Varmistusvaihe: TaustajC$rjestelmC$ etsii ID:tC$ 132 `semantic_map`
-taulukosta. Jos se lC6ytyy, koordinaatit (`center_x`, `center_y`) ovat 100 %
tarkat fyysistC$ klikkausta varten.
3. Oppimisvaihe / Template Match: TaustajC$rjestelmC$ voi leikata
`clean_bitmap` -kuvasta tarkan palasen koordinaattien (`x`, `y`, `width`,
`height`) perusteella myC6hempC$C$ perinteistC$ konenC$kC6opetusta (esim.
OpenCV template matching) varten ilman, ettC$ magentat apuviivat pilaavat
opetusdataa.

Ota tC$mC$ arkkitehtuuri ja rajapinta huomioon, kun suunnittelemme seuraavia
askeleita palvelumme kehityksessC$.

```

---

==[ /Toinen chat ]==

Kokeilu (sis. ip:n): 

==[ Terminal ]==

user@workstation-01:~$ curl -X POST "http://100.70.107.47:8777/api/v1/extract"B
 B B -H "Content-Type: application/json"B B B -d '{"haku_termi": "whatsapp"}'
> test.out
B % TotalB B % Received % XferdB Average SpeedB BTimeB B TimeB B BTimeB
Current
B B B B B B B B B B B B B B B B BDloadB UploadB BTotalB BSpentB B LeftB Speed
100 1661kB 100 1661kB 100B B 26B B731kB B B11B 0:00:02B 0:00:02 --:--:--B 731k
user@workstation-01:~$ python3 pura_vastaus.py
Luetaan tiedosto test.out...
Tallennettu: varmistus_kartta.json (149 elementtiC$)
Tallennettu kuva: varmistus_numbered_outlines.jpg
Tallennettu kuva: varmistus_outlines_only.jpg
Tallennettu kuva: varmistus_clean_bitmap.jpg
user@workstation-01:~$

==[ /Terminal ]==