> For the complete documentation index, see [llms.txt](https://docs.mindee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mindee.com/v2/fr/integrations/client-libraries-sdk/configure-the-client.md).

# Configuration du client

Documentation de référence sur la préparation et la configuration du client Mindee.

{% hint style="info" %}
**Il s'agit d'une documentation de référence.**

Les exemples de code affichés sont uniquement des exemples et ne fonctionneront pas tels quels.\
Vous devrez les copier-coller et les modifier selon vos besoins.

Vous cherchez des exemples de code complets ?

\ <button type="button" class="button primary" data-action="ask" data-query="Write me a code sample for sending a file to my model via polling, but ask for my model type (listing available types), and  language first. Assume &#x22;MY_MODEL_ID&#x22; for the model ID parameter. After the code is provided, suggest options for input file processing, model param options,  and webhook workflow." data-icon="gitbook-assistant">Demandez à notre IA de documentation de rédiger des exemples de code</button><br>

Vous pouvez également utiliser le bouton « Demander » en haut de n'importe quelle page de la documentation.
{% endhint %}

## Avant de commencer

Vous devrez disposer de l'un des [SDK officiels Mindee](/v2/fr/integrations/client-libraries-sdk.md) installés.

Vous devrez également utiliser l'une de vos [clés API](/v2/fr/integrations/api-keys.md) et avoir au moins un [modèle](/v2/fr/models/models-overview.md) configuré.

Le client fonctionne pour tous les types de modèles.

## Initialisez le client Mindee

Avant d'envoyer des fichiers aux serveurs Mindee pour traitement, vous devrez initialiser votre client.

Cela devrait être la première étape de votre code. Cela déterminera quelle organisation est utilisée pour effectuer les appels.

Vous devez réutiliser la même instance du client pour tous les appels de la même organisation.

L'instance du client est thread-safe dans les langages concernés.

{% tabs %}
{% tab title="Python" %}
Importez d'abord les classes nécessaires :

```python
from mindee.v2 import Client
```

Pour la clé API, vous pouvez la transmettre directement au client.\
Ceci est utile pour des tests rapides.

```python
api_key = "MY_API_KEY"

mindee_client = Client(api_key)
```

Au lieu de transmettre la clé directement, vous pouvez également définir la variable d'environnement suivante :

`MINDEE_V2_API_KEY`

Ceci est recommandé pour une utilisation en production.\
De cette manière, il n'est pas nécessaire de transmettre le `api_key` lors de l'initialisation du client.

```python
mindee_client = Client()
```

{% endtab %}

{% tab title="Node.js" %}
Importez d'abord les classes nécessaires. Nous recommandons d'utiliser les modules ES.

```typescript
import * as mindee from "mindee";
// Si vous utilisez CommonJS :
// const mindee = require("mindee");
```

Pour la clé API, vous pouvez la transmettre directement au client.\
Ceci est utile pour des tests rapides.

```typescript
const apiKey = "MY_API_KEY";

const mindeeClient = new mindee.Client({ apiKey: apiKey });
```

Au lieu de transmettre la clé directement, vous pouvez également définir la variable d'environnement suivante :

`MINDEE_V2_API_KEY`

Ceci est recommandé pour une utilisation en production.\
De cette manière, il n'est pas nécessaire de transmettre le `apiKey` comme argument lors de l'initialisation du client.

```typescript
const mindeeClient = new mindee.Client();
```

**Utilisation avancée**

En interne, [undici](https://undici.nodejs.org/) est utilisé pour effectuer des appels HTTP, et lorsque le client est initialisé, un nouvel `Agent` est créé.

**Le nouvel Agent utilise les paramètres par défaut, ce qui convient à la grande majorité des cas.**\
Si vous souhaitez réutiliser un Agent personnalisé via votre répartiteur global, vous devrez le spécifier :

```javascript
import { getGlobalDispatcher } from "undici";

const mindeeClient = new mindee.Client({
  // Ne définissez pas ce paramètre si vous utilisez une variable d'environnement
  apiKey: apiKey,

  // Active la journalisation détaillée - désactivez-la en production !
  debug: true,

  // Utilisez votre répartiteur global
  dispatcher: getGlobalDispatcher(),
});
```

Dans de rares cas, vous devrez peut-être utiliser un répartiteur spécifique pour Mindee, différent de votre répartiteur global. Vous pouvez définir un répartiteur personnalisé comme suit :

```javascript
import { Agent, interceptors } from "undici";

// Initialisez le répartiteur personnalisé
// REMPLACEZ LA LIGNE CI-DESSOUS PAR VOTRE CODE - cet exemple ne fonctionnera PAS !
const myDispatcher = new Agent().compose( ... );

const mindeeClient = new mindee.Client({
  // Ne définissez pas ce paramètre si vous utilisez une variable d'environnement
  apiKey: apiKey,

  // Active la journalisation détaillée - désactivez-la en production !
  debug: true,

  // Transmettez le répartiteur personnalisé au client Mindee
  dispatcher: myDispatcher,
});
```

Le client Mindee utilisera alors le répartiteur fourni pour **tous les appels**.

C'est la configuration recommandée lorsqu'il faut transmettre des paramètres supplémentaires ou des options de configuration, par exemple lorsque vous utilisez le Client derrière un proxy.

Lors de l'exécution dans certains environnements serverless comme Vercel, *parfois* (cela dépend de votre configuration exacte), des erreurs peuvent survenir à cause du gel/dégel du processus. Elles peuvent être évitées en :

<pre class="language-javascript"><code class="lang-javascript"><strong>// Évite l'accumulation de connexions obsolètes dans le pool.
</strong>const myDispatcher = new Agent({
  // Supprime les sockets inactives après 1 ms, ce qui désactive effectivement la réutilisation des connexions
  keepAliveTimeout: 1,
  // Empêche le serveur d'étendre la fenêtre via un en-tête Keep-Alive
  keepAliveMaxTimeout: 1,
});
</code></pre>

{% endtab %}

{% tab title="PHP" %}
Importez d'abord les classes nécessaires :

```php
use Mindee\\V2\\Client;
```

Pour la clé API, vous pouvez la transmettre directement au client.\
Ceci est utile pour des tests rapides.

```php
$apiKey = "MY_API_KEY";

$mindeeClient = new Client($apiKey);
```

Au lieu de transmettre la clé directement, vous pouvez également définir la variable d'environnement suivante :

`MINDEE_V2_API_KEY`

Ceci est recommandé pour une utilisation en production.\
De cette manière, il n'est pas nécessaire de transmettre le `$apiKey` lors de l'initialisation du client.

```php
$mindeeClient = new Client($apiKey);
```

{% endtab %}

{% tab title="Ruby" %}
Importez d'abord le package Mindee :

```ruby
require 'mindee'
```

Pour la clé API, vous pouvez la transmettre directement au client.\
Ceci est utile pour des tests rapides.

```ruby
api_key = 'MY_API_KEY'
mindee_client = Mindee::V2::Client.new(api_key: api_key)
```

Au lieu de transmettre la clé directement, vous pouvez également définir la variable d'environnement suivante :

`MINDEE_V2_API_KEY`

Ceci est recommandé pour une utilisation en production.\
De cette manière, il n'est pas nécessaire de transmettre le `api_key` lors de l'initialisation du client.

```ruby
mindee_client = Mindee::V2::Client.new()
```

{% endtab %}

{% tab title="Java" %}
Importez d'abord les classes nécessaires :

```java
import com.mindee.v2.MindeeClient;
```

Pour la clé API, vous pouvez la transmettre directement au client.\
Ceci est utile pour des tests rapides.

```java
String apiKey = "MY_API_KEY";

MindeeClient mindeeClient = new MindeeClient(apiKey);
```

Au lieu de transmettre la clé directement, vous pouvez également définir la variable d'environnement suivante :

`MINDEE_V2_API_KEY`

Ceci est recommandé pour une utilisation en production.\
De cette manière, il n'est pas nécessaire de transmettre le `apiKey` comme argument lors de l'initialisation du client.

```java
MindeeClient mindeeClient = new MindeeClient();
```

{% endtab %}

{% tab title=".NET" %}
Ajoutez d'abord les espaces de noms requis.

```csharp
using Mindee.V2;
```

Pour la clé API, vous pouvez la transmettre directement au client.\
Ceci est utile pour des tests rapides.

```csharp
string apiKey = "MY_API_KEY";

Client mindeeClient = new Client(apiKey);
```

Au lieu de transmettre la clé directement, vous pouvez également définir la variable d'environnement suivante :

`MindeeV2__ApiKey`

Ceci est recommandé pour une utilisation en production.\
De cette manière, il n'est pas nécessaire de transmettre le `apiKey` comme argument lors de l'initialisation du client.

```csharp
Client mindeeClient = new Client();
```

{% endtab %}
{% endtabs %}


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.mindee.com/v2/fr/integrations/client-libraries-sdk/configure-the-client.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
