Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
gusjak251 committed Dec 19, 2023
1 parent b8427aa commit fa8bac9
Showing 1 changed file with 87 additions and 32 deletions.
119 changes: 87 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,120 @@
# Effektiv Administration
# Effektiv Administration

## Project description
## Projektbeskrivning
Utveckla en MVP för en informationshanteringsapplikation avsedd för svenska myndigheter, med syftet att nyttja kraften hos språkmodeller för hantering av ostrukturerad data. Applikationen är intuitivt konstruerad för enkel uppladdning och hämtning av sådan data, och är skräddarsydd för en bred implementering över diverse organisatoriska miljöer.

<img src="files/images/prel_arch.png">
## Innehållsförteckning
- [Kravspecifikation](#kravspecifikation)
- [Installation](#install_and_run)
- [Användning](#use_project)
- [Arkitektur](#arkitektur)
- [Utvecklare](#acknowledgements)
- [Bidra till projektet](#contribute)

## Kravspecifikation
Konvertering av Naturligt Språk till Sökvektor
Beskrivning: Systemet ska omvandla e-postmeddelanden skrivna i naturligt språk till sökbara nyckelord/fraser för att söka i tillhörande dokumentation.
## Kravspecifikation <a name="kravspecifikation"></a>
Systemet ska omvandla e-postmeddelanden skrivna i naturligt språk till sökbara nyckelord/fraser för att söka i tillhörande dokumentation.

### Svarstid
### Svarstid
Beskrivning: Efter att ett mejl har skickats av en användare ska svaret genereras och returneras inom 30 sekunder.

### Källhänvisningar
### Källhänvisningar
Beskrivning: Svaret ska innehålla klickbara länkar till de källor som användes för att generera svaret, vilket möjliggör för användaren att granska originalmaterialet.

### Minimal hallucination
### Minimal hallucination
Beskrivning: Systemet ska endast svara med exakt dokumentationsinnehåll och undvika missvisande svar. Vid ingen träff bör svaret vara "Materialet kunde inte hittas inom referensmaterialet."

### On-Premise Lösning
### On-Premise Lösning
Beskrivning: Systemet ska installeras och köras internt (on-premise). Ingen användardata får överföras utanför systemets gränser.

### Modulär Arkitektur
### Modulär Arkitektur
Beskrivning: Systemets komponenter ska vara fristående och kommunicera via API-anrop.

### Naturligt Språk
### Naturligt Språk
Beskrivning: Användare ska kunna interagera med systemet via e-post i naturligt språk, även för större textmassor.

### Dokumentuppladdning (Utan förberedelser)
### Dokumentuppladdning (Utan förberedelser)
Beskrivning: Dataägare ska ha möjlighet att ladda upp Word-dokument direkt, utan förhandsredigering eller annan bearbetning.

### Dokumentuppladdning (Drag och Släpp)
### Dokumentuppladdning (Drag och Släpp)
Beskrivning: Dataägare ska kunna dra och släppa dokument i en säkrad nätverksmapp. Endast behöriga dataägare ska ha tillgång.

### Säkerhet och Skalbarhet
### Säkerhet och Skalbarhet
Beskrivning: Med tanke på målgruppen (myndigheter) är hög säkerhet och systemets förmåga att växa (skalbarhet) primära fokusområden.

## Innehållsförteckning
- [Installation](#install_and_run)
- [Användning](#use_project)
- [Utvecklare](#acknowledgements)
- [Bidra till projektet](#contribute)
## Installation av projektet <a name="install_and_run"></a>

### Installera moduler
```bash
pip install -r requirements.txt
```

## Installation av projektet <a name="install_and_run"></a>
## Användande <a name="use_project"></a>

### Installera moduler
### API

Starta API:et

```bash
pip install -r requirements.txt
python3 server_model.py
```

## Användning <a name="use_project"></a>
Instruktioner för användare
#### POST /prompt
Skicka en prompt och få ett svar tillbaka.

## Utvecklare <a name="acknowledgements"></a>
**Parametrar**

Detta projekt möjliggjordes tack vare de följande utvecklarna:
| Namn | Obligatorisk | Typ | Beskrivning |
| -------------:|:--------:|:-------:| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prompt` | ja | string | Ett textstycke med en fråga eller ett meddelande |

**Response**

Svar som ges när en prompt inte har skickats med

```
{
"error": "no prompt received!"
}
```



Exempel på svar då korrekt formaterad prompt har skickats med

- [Niels Houben](https://github.com/NielsHouben)
- [Sofia Nguyen](https://github.com/sofianguyenAI)
- [Felix Folkebrant](https://github.com/FelixFolkebrantAIS)
- [Gustav Jakobsson](https://github.com/gusjak251)
```
{
"answer": "Hej! Här är ett svar på din fråga. Budgeten är 2000 kr" // Svar på frågan/meddelandet
"prompt": "Vad är budgeten för projekt helhälsa?" // Prompt som skickats
"doc_names": ["projekt_helhalsa.docx", "budget_helhalsa.docx"] // Lista över dokument som använts för att besvara frågan
}
```

### Funktionsbrevlåda

Starta funktionsbrevlådan

```bash
python3 server_mail.py
```

## Bidra till projektet <a name="contribute"></a>


## Arkitektur<a name="arkitektur"></a>
<img src="files/images/prel_arch.png">

### Databas
Vektordatabasen som används i detta projekt är [Chroma DB](https://www.trychroma.com/)
1. Dokumenten laddas in och delas in i mindre chunks
2. Alla chunks lagras i vektordatabasen. Chroma DB använder Sentence Transformers all-MiniLM-L6-v2 för att skapa embeddings som standard.
3. En watcher kollar om det sker några ändringar i dokumentmappen och uppdaterar databasen.

### Språkmodell
1. Relevant information hämtas från Chroma DB med hjälp av användarinput.
2. Llama 2-13b genererar ett svar med hjälp av användarinput och hämtad information från databasen.

## Utvecklare <a name="acknowledgements"></a>
Detta projekt möjliggjordes tack vare de följande utvecklarna:
- [Niels Houben](https://github.com/NielsHouben)
- [Sofia Nguyen](https://github.com/sofianguyenAI)
- [Felix Folkebrant](https://github.com/FelixFolkebrantAIS)
- [Gustav Jakobsson](https://github.com/gusjak251)

0 comments on commit fa8bac9

Please sign in to comment.