> 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

{% 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 devez disposer de l'un des [SDK officiels de 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 [Model](/v2/fr/models/models-overview.md) configuré.

Le client fonctionne pour tous les types de Model.

## Initialiser le client Mindee

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

Ceci doit ê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.\
C'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 façon, 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 ES Modules.

```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.\
C'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 façon, il n'est pas nécessaire de transmettre le `apiKey` 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 les appels HTTP, et lorsque le client est initialisé `getGlobalDispatcher` est appelé.

**Cela convient parfaitement à la grande majorité des cas :**\
Si vous définissez un Agent personnalisé comme dispatcher global, Mindee l'utilisera pour tous les appels.

Dans certains rares cas, vous pouvez avoir besoin d'un dispatcher spécifique pour Mindee, différent de votre dispatcher global. Vous pouvez définir un dispatcher personnalisé comme suit :

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

// Initialisez le Dispatcher 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 pas définir si vous utilisez une variable d'environnement
  apiKey: apiKey,

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

  // Passe le dispatcher personnalisé au client Mindee
  dispatcher: myDispatcher,
});
```

Le client Mindee utilisera alors le dispatcher fourni pour **tous les appels**.

Ceci est la configuration recommandée lorsque vous devez 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 sont causées par le gel/dégel du processus. Celles-ci 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 inactifs 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.\
C'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 façon, 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.\
C'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 façon, 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.\
C'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 façon, il n'est pas nécessaire de transmettre le `apiKey` 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.\
C'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 façon, il n'est pas nécessaire de transmettre le `apiKey` 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 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.mindee.com/v2/fr/integrations/client-libraries-sdk/configure-the-client.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.
