Skip to content

Commit

Permalink
readme finished
Browse files Browse the repository at this point in the history
  • Loading branch information
christophlandolt committed Dec 3, 2023
1 parent 86ce559 commit 4b9790f
Show file tree
Hide file tree
Showing 8 changed files with 139 additions and 1 deletion.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -160,4 +160,7 @@ cython_debug/
#.idea/
src/data_acquisition/__pycache__/__init__.cpython-310.pyc
src/data_acquisition/__pycache__/web_crawler.cpython-310.pyc
.vscode/
.vscode/
doku/.$setup.drawio.bkp
doku/.$system.drawio.bkp
doku/.$system.drawio.dtmp
37 changes: 37 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Sitios Accessibility Information System

## Überblick

Das Sitios Accessibility Information System wurde entwickelt, um detaillierte Informationen über die Zugänglichkeit von Gebäuden zu liefern. Die Herausforderung besteht darin, die Vielfalt der Bedürfnisse verschiedener Menschen, insbesondere solcher mit besonderen Anforderungen, zu berücksichtigen. Dieses README erklärt den Lösungsansatz und wie die Anwendung verwendet werden kann.

## Aufgabenstellung

Die Aufgabenstellung besteht darin, genaue und detaillierte Informationen über die Zugänglichkeit von Gebäuden zu erfassen und für die Nutzer leicht zugänglich zu machen. Unterschiedliche Arten von Rollstühlen und individuelle Bedürfnisse machen es notwendig, dass die Informationen äußerst präzise und vielseitig sind. Das aktuelle Format der Informationen auf der Sitios-Website ist jedoch aufgrund der Menge an informationen teilweise unübersichtlich und schwer zu navigieren.

## Lösungsansatz

Um die Herausforderungen der aktuellen Informationsdarstellung zu bewältigen, wurde der folgende Lösungsansatz entwickelt:
![Alt text](system.jpg)

### 1. Auto-fetch und Clean JSON to NOSQL

Die Lösung implementiert einen Webcrawler zum automatischen Herunterlaen der JSON-Dateien über die öffentlichen Gebäude. Diese Daten werden dann bereinigt, in einem klaren JSON-Format organisiert und in einer NOSQL-Datenbank gespeichert. Dieser Prozess gewährleistet, dass die Informationen aktuell und strukturiert sind.
![Alt text](setup.jpg)

### 2. LLAMA-Indexed Zugriff auf Echtzeit-Gebäudedaten

Um die Zugänglichkeit der Informationen zu verbessern, verwendet die Lösung ein LLAMA-Indexierungssystem. Dieses System ermöglicht einen schnellen und effizienten Zugriff auf relevante Daten. Die LLAMA-Indexierung ist wichtig, damit das Modell die Antwort anhand der Daten übers Gebäude beantwortet und nicht mittels generativer AI irgendwelche informationen erfindet. Zudem ermöglicht das LLAMA-Indexierungssystem mit der query-Funktion gezielt nach spezifischen Informationen zu suchen.

### 3. NLP-gesteuerte Abfragen für Genauigkeit

Die Lösung integriert ein GPT 3.5-Turmo Natural Language Processing (NLP)-Modell, um den Nutzern die Möglichkeit zu geben, präzise Abfragen zur Zugänglichkeit von Gebäuden durchzuführen. Dies trägt dazu bei, dass die Informationen genau und relevant sind. Nutzer können Fragen in natürlicher Sprache in unterschiedlichen Sprachen stellen, und das System wird die passenden Informationen liefern.

## Anwendung

Die Anwendung ist aktuell nur lokal verfügbar kann aber über dieses Github repo einfach auf einem Webserver integriert werden.

## Mitwirkende

- Christoph Landolt
- Noah Lüchinger
- Ruwen Frick
43 changes: 43 additions & 0 deletions doku/setup.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<mxfile host="Electron" modified="2023-12-03T07:12:39.435Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.1.2 Chrome/114.0.5735.289 Electron/25.9.4 Safari/537.36" etag="4BSuNGawtcsIZYDVweYd" version="22.1.2" type="device">
<diagram name="Seite-1" id="zSqDJbW_LelD1mT56Rdw">
<mxGraphModel dx="780" dy="504" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="weL6R8PA8-AbjZUsDltD-11" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="weL6R8PA8-AbjZUsDltD-3" target="weL6R8PA8-AbjZUsDltD-5">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-3" value="Download JSON-File for the five different accessibility levels" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="190" y="100" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-10" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="weL6R8PA8-AbjZUsDltD-4" target="weL6R8PA8-AbjZUsDltD-3">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-4" value="setup.py" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="30" y="110" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-12" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="weL6R8PA8-AbjZUsDltD-5" target="weL6R8PA8-AbjZUsDltD-6">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-5" value="Clean JSON-File" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="321" y="100" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-13" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="weL6R8PA8-AbjZUsDltD-6" target="weL6R8PA8-AbjZUsDltD-7">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-6" value="Generate JSON Schema for cleaned data" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="447" y="100" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-14" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="weL6R8PA8-AbjZUsDltD-7" target="weL6R8PA8-AbjZUsDltD-8">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-7" value="Store JSON-Files to NOSQL Document Database" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="570" y="100" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-8" value="Setup finished" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="700" y="110" width="120" height="80" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Binary file added doku/setup.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
55 changes: 55 additions & 0 deletions doku/system.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<mxfile host="Electron" modified="2023-12-03T07:18:17.339Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.1.2 Chrome/114.0.5735.289 Electron/25.9.4 Safari/537.36" etag="zPBiZynHG2QGwQAjT8cP" version="22.1.2" type="device">
<diagram name="Seite-1" id="zSqDJbW_LelD1mT56Rdw">
<mxGraphModel dx="780" dy="504" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="weL6R8PA8-AbjZUsDltD-11" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="weL6R8PA8-AbjZUsDltD-3" target="weL6R8PA8-AbjZUsDltD-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-3" value="Eingabe einer Frage zur Zugänglichkeit als natural language prompt" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="190" y="150" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-12" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="weL6R8PA8-AbjZUsDltD-5" target="weL6R8PA8-AbjZUsDltD-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="S3NUVNzmi3w-dYyYIX9--2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="weL6R8PA8-AbjZUsDltD-5" target="S3NUVNzmi3w-dYyYIX9--1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-5" value="LLAMA_index query interface" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="321" y="150" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-13" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="weL6R8PA8-AbjZUsDltD-6" target="weL6R8PA8-AbjZUsDltD-7" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-6" value="GPT 3.5 Turbo" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="447" y="150" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="S3NUVNzmi3w-dYyYIX9--6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="weL6R8PA8-AbjZUsDltD-7" target="S3NUVNzmi3w-dYyYIX9--5">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="weL6R8PA8-AbjZUsDltD-7" value="Antwort als natural language text" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="570" y="150" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="S3NUVNzmi3w-dYyYIX9--1" value="MongoDB" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="1">
<mxGeometry x="341" y="10" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="S3NUVNzmi3w-dYyYIX9--3" value="Eingabe einer Frage als spoken text" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" vertex="1" parent="1">
<mxGeometry x="190" y="270" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="S3NUVNzmi3w-dYyYIX9--4" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fillColor=#008a00;strokeColor=#005700;" edge="1" parent="1" source="S3NUVNzmi3w-dYyYIX9--3" target="weL6R8PA8-AbjZUsDltD-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="380" y="160" as="sourcePoint" />
<mxPoint x="430" y="110" as="targetPoint" />
<Array as="points">
<mxPoint x="370" y="320" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="S3NUVNzmi3w-dYyYIX9--5" value="Antwort als text_to_speak" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" vertex="1" parent="1">
<mxGeometry x="570" y="270" width="100" height="100" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Binary file added doku/system.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added setup.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added system.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 4b9790f

Please sign in to comment.