-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
87 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |