> For the complete documentation index, see [llms.txt](https://docs.tabiya.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tabiya.org/tabiya-documentation/deutsch/unser-tech-stack/livelihoods-classifier/getting-started.md).

# Erste Schritte

## Installation

Voraussetzungen\\

* Eine aktuelle Version von [git](https://git-scm.com/) (z. B. ^2.37 )
* [Python 3.10 oder höher](https://www.python.org/downloads/)
* [Poetry 1.8 oder höher](https://python-poetry.org/)

  > Hinweis: Um Poetry zu installieren, konsultieren Sie die [Poetry-Dokumentation](https://python-poetry.org/docs/#installing-with-the-official-installer)

  > Hinweis: Installieren Sie Poetry systemweit (nicht in einem virtualenv).
* [Git LFS](https://git-lfs.github.com/)

#### Verwendung von Git LFS

Dieses Tool verwendet Git LFS zur Handhabung großer Dateien. Bevor Sie es verwenden, müssen Sie Git LFS auf Ihrem lokalen Rechner installieren und einrichten. Siehe <https://git-lfs.com/> für Installationsanweisungen.

Nachdem Git LFS eingerichtet ist, folgen Sie diesen Schritten, um das Repository zu klonen:

```shell
git clone https://github.com/tabiya-tech/tabiya-livelihoods-classifier.git
```

Wenn Sie das Repository bereits ohne Git LFS geklont haben, führen Sie aus:

```shell
git lfs pull
```

#### Installieren Sie die Abhängigkeiten <a href="#dep" id="dep"></a>

**Virtualenv einrichten**

Im **Stammverzeichnis** des Backend-Projekts (also im selben Verzeichnis wie diese README-Datei) führen Sie die folgenden Befehle aus:

```shell
# Erstellen Sie eine virtuelle Umgebung
python3 -m venv venv

# Aktivieren Sie die virtuelle Umgebung
source venv/bin/activate
```

```shell
# Verwenden Sie die in der Lock-Datei angegebene Version der Abhängigkeiten
poetry lock --no-update
# Installieren Sie fehlende und entfernen Sie nicht referenzierte Pakete
poetry install --sync
```

> Hinweis: Installieren Sie die Abhängigkeiten für das Training mit:
>
> ```shell
> # Verwenden Sie die in der Lock-Datei angegebene Version der Abhängigkeiten
> poetry lock --no-update
> # Installieren Sie fehlende und entfernen Sie nicht referenzierte Pakete
> poetry install --sync --with train
> ```

> Hinweis: Bevor Sie irgendwelche Aufgaben ausführen, aktivieren Sie die virtuelle Umgebung, damit die installierten Abhängigkeiten verfügbar sind:
>
> ```shell
> # Aktivieren Sie die virtuelle Umgebung
> source venv/bin/activate
> ```
>
> Um die virtuelle Umgebung zu deaktivieren, führen Sie aus:
>
> ```shell
> # Deaktivieren Sie die virtuelle Umgebung
> deactivate
> ```

Aktivieren Sie Python und laden Sie das NLTK-Zeichensetzpaket für den Satz-Tokenizer herunter. Sie müssen nur `punkt` einmal herunterladen.

```shell
python <<EOF
import nltk
nltk.download('punkt')
EOF
```

#### Umgebungsvariable & Konfiguration

Das Tool verwendet die folgende Umgebungsvariable:

* `HF_TOKEN`: Um das Projekt zu verwenden, benötigen Sie Zugriff auf das HuggingFace 🤗 Entity-Extraction-Modell. Kontaktieren Sie die Administratoren über \[<tabiya@benisis.de>]. Von dort aus müssen Sie ein Lesezugriffs-Token erstellen, um das Modell zu verwenden. Finden oder erstellen Sie Ihr Lesezugriffs-Token [hier](https://huggingface.co/settings/tokens). Das Backend unterstützt die Verwendung einer `.env` Datei zum Setzen der Umgebungsvariablen. Erstellen Sie eine `.env` Datei im Stammverzeichnis des Backend-Projekts und setzen Sie die Umgebungsvariablen wie folgt:

```dotenv
# .env Datei
HF_TOKEN=<YOUR_HF_TOKEN>
```

> ACHTUNG: Die .env-Datei sollte sicher aufbewahrt und nicht mit anderen geteilt werden, da sie sensible Informationen enthält.

## Schnellstart-Anleitung

## Inference-Pipeline

Die Inference-Pipeline extrahiert Berufe und Fähigkeiten aus einer Stellenbeschreibung und ordnet sie den ähnlichsten Einträgen in der ESCO-Taxonomie zu.

### Verwendung

Aktivieren Sie zuerst die virtuelle Umgebung wie erklärt [hier](#dep).

Dann, `starten Sie den Python-Interpreter im Stammverzeichnis` und führen Sie die folgenden Befehle aus:

Laden Sie die `EntityLinker` Klasse und erstellen Sie eine Instanz der Klasse, führen Sie dann die Inferenz an beliebigem Text mit folgendem Code durch:

```python
from inference.linker import EntityLinker
pipeline = EntityLinker(k=5)
text = 'We are looking for a Head Chef who can plan menus.'
extracted = pipeline(text)
print(extracted)
```

Nach Ausführung der obigen Befehle sollten Sie die folgende Ausgabe sehen:

```js
[
  {'type': 'Occupation', 'tokens': 'Head Chef', 'retrieved': ['head chef', 'industrial head chef', 'head pastry chef', 'chef', 'kitchen chef']},
  {'type': 'Skill', 'tokens': 'plan menus', 'retrieved': ['plan menus', 'plan patient menus', 'present menus', 'plan schedule', 'plan engineering activities']}
]
```

### Französische Version

Sie können die französische Version des Entity Linker mit folgendem Code verwenden:

```python
from inference.linker import FrenchEntityLinker
pipeline = FrenchEntityLinker(entity_model = 'tabiya/camembert-large-job-ner', similarity_model = 'intfloat/multilingual-e5-base')

text = 'Nous recherchons un chef de cuisine capable de planifier les menus.'
extracted = pipeline(text)
print(extracted)
```

Sie sollten die folgende Ausgabe sehen:

```javascript
[
  {'type': 'Occupation', 'tokens': 'chef de cuisine', 'retrieved': ['chef de cuisine', 'chef de marque', 'chef mécanicien', 'chef cuisinier/cheffe cuisinière', 'chef de train']}, 
  {'type': 'Skill', 'tokens': 'planifier les menus', 'retrieved': ['planifier les menus', 'présenter des menus', 'établir les menus des patients', 'préparer des plannings', 'préparer des plats préparés']}
]
```

### Ausführen der Evaluierungstests

Laden Sie die `Evaluator` Klasse und geben Sie die Ergebnisse aus:

```python
from inference.evaluator import Evaluator

results = Evaluator(entity_type='Skill', entity_model='tabiya/roberta-base-job-ner', similarity_model='all-MiniLM-L6-v2', crf=False, evaluation_mode=True)
print(results.output)
```

Diese Klasse erbt von der `EntityLinker`, wobei der Hauptunterschied das `'entity_type'` Flag ist.

{% hint style="warning" %}
Wenn Sie Bewertungen für benutzerdefinierte Datensätze durchführen möchten, müssen Sie Änderungen an der `_load_dataset` Funktion vornehmen, die sich in der `evaluation.py` Datei befindet. Bitte beziehen Sie sich auf die ursprünglichen Evaluierungsdatensätze wie beschrieben [hier](/tabiya-documentation/deutsch/unser-tech-stack/livelihoods-classifier/datasets.md). Wenn Sie Probleme haben, öffnen Sie bitte ein Issue auf [GitHub](https://github.com/tabiya-tech/tabiya-livelihoods-classifier/issues).
{% endhint %}

### Minimale Hardware

* 4 GB CPU/GPU-RAM

Der Code läuft auf GPU, falls verfügbar. Stellen Sie sicher, dass auf Ihrer Maschine CUDA installiert ist, wenn Sie auf GPU ausführen.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tabiya.org/tabiya-documentation/deutsch/unser-tech-stack/livelihoods-classifier/getting-started.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
