> 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/es/nuestra-pila-tecnologica/livelihoods-classifier/getting-started.md).

# Comenzando

## Instalación

Requisitos previos\\

* Una versión reciente de [git](https://git-scm.com/) (p. ej. ^2.37 )
* [Python 3.10 o superior](https://www.python.org/downloads/)
* [Poetry 1.8 o superior](https://python-poetry.org/)

  > Nota: para instalar Poetry consulte la [documentación de Poetry](https://python-poetry.org/docs/#installing-with-the-official-installer)

  > Nota: Instale Poetry a nivel del sistema (no en un virtualenv).
* [Git LFS](https://git-lfs.github.com/)

#### Uso de Git LFS

Esta herramienta usa Git LFS para manejar archivos grandes. Antes de usarla necesita instalar y configurar Git LFS en su máquina local. Vea <https://git-lfs.com/> para instrucciones de instalación.

Después de configurar Git LFS, siga estos pasos para clonar el repositorio:

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

Si ya clonó el repositorio sin Git LFS, ejecute:

```shell
git lfs pull
```

#### Instalar las dependencias <a href="#dep" id="dep"></a>

**Configurar virtualenv**

En el **directorio raíz** del proyecto backend (es decir, el mismo directorio que este archivo README), ejecute los siguientes comandos:

```shell
# crear un entorno virtual
python3 -m venv venv

# activar el entorno virtual
source venv/bin/activate
```

```shell
# Use la versión de las dependencias especificada en el archivo de bloqueo
poetry lock --no-update
# Instalar paquetes faltantes y eliminar los no referenciados
poetry install --sync
```

> Nota: Instale las dependencias para el entrenamiento usando:
>
> ```shell
> # Use la versión de las dependencias especificada en el archivo de bloqueo
> poetry lock --no-update
> # Instalar paquetes faltantes y eliminar los no referenciados
> poetry install --sync --with train
> ```

> Nota: Antes de ejecutar cualquier tarea, active el entorno virtual para que las dependencias instaladas estén disponibles:
>
> ```shell
> # activar el entorno virtual
> source venv/bin/activate
> ```
>
> Para desactivar el entorno virtual, ejecute:
>
> ```shell
> # desactivar el entorno virtual
> deactivate
> ```

Active Python y descargue el paquete de puntuación de NLTK para usar el tokenizador de oraciones. Solo necesita descargar `punkt` una vez.

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

#### Variable de entorno y configuración

La herramienta usa la siguiente variable de entorno:

* `HF_TOKEN`: Para usar el proyecto, necesita acceso al modelo de extracción de entidades de HuggingFace 🤗. Contacte a los administradores a través de \[<tabiya@benisis.de>]. A partir de ahí, debe crear un token de acceso de lectura para usar el modelo. Encuentre o cree su token de acceso de lectura [aquí](https://huggingface.co/settings/tokens). El backend admite el uso de un `.env` archivo para establecer la variable de entorno. Cree un `.env` archivo en el directorio raíz del proyecto backend y establezca las variables de entorno de la siguiente manera:

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

> ATENCIÓN: El archivo .env debe mantenerse seguro y no compartirse con otros ya que contiene información sensible.

## Guía de inicio rápido

## Canal de inferencia

La canalización de inferencia extrae ocupaciones y habilidades de una descripción de trabajo y las empareja con las entidades más similares en la taxonomía ESCO.

### Uso

Primero, active el entorno virtual como se explicó [aquí](#dep).

Luego, `inicie el intérprete de Python en el directorio raíz` y ejecute los siguientes comandos:

Cargue la `clase EntityLinker` y cree una instancia de la clase, luego realice la inferencia sobre cualquier texto con el siguiente código:

```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)
```

Después de ejecutar los comandos anteriores, debería ver la siguiente salida:

```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']}
]
```

### Versión francesa

Puede usar la versión francesa del Entity Linker con el siguiente código:

```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)
```

Debería ver la siguiente salida:

```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']}
]
```

### Ejecución de las pruebas de evaluación

Cargue la `Evaluador` clase y mostrar los resultados:

```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)
```

Esta clase hereda de la `clase EntityLinker`, con la principal diferencia siendo la `bandera 'entity_type'` si desea ejecutar evaluaciones en conjuntos de datos personalizados, necesitará hacer modificaciones a la

{% hint style="warning" %}
\_load\_dataset `función, ubicada en el` archivo evaluation.py `. Por favor, consulte los conjuntos de datos de evaluación originales como se describe` . Si tiene algún problema, abra un issue en [aquí](/tabiya-documentation/es/nuestra-pila-tecnologica/livelihoods-classifier/datasets.md)GitHub [Hardware mínimo](https://github.com/tabiya-tech/tabiya-livelihoods-classifier/issues).
{% endhint %}

### 4 GB de RAM CPU/GPU

* El código se ejecuta en GPU si está disponible. Asegúrese de que su máquina tenga CUDA instalado si se ejecuta en GPU.

El código se ejecuta en GPU si está disponible. Asegúrese de que su máquina tenga CUDA instalado si se ejecuta en GPU.


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.tabiya.org/tabiya-documentation/es/nuestra-pila-tecnologica/livelihoods-classifier/getting-started.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
