> 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/search.md).

# Recherche

Recherchez des ressources liées à votre organisation.

Utilisez la méthode générique `de recherche` dans le client pour trouver diverses ressources appartenant à votre organisation.

## Avant de commencer

Vous aurez besoin d'une instance du [Mindee V2 Client](/v2/fr/integrations/client-libraries-sdk/configure-the-client.md#initialize-the-mindee-client) afin d'effectuer des requêtes de recherche.

## Recherche de modèles

Recherchez des modèles au sein de l'organisation liée à la clé API.

Tous les filtres de recherche sont facultatifs. Si aucun filtre de recherche n'est fourni, tous les modèles appartenant à l'organisation sont renvoyés.

{% tabs %}
{% tab title="Python" %}

```python
from mindee.v2.search.models.model_search_response import ModelSearchResponse

search_params = ModelSearchParameters(
    # Filtrer les modèles par correspondance partielle du nom, sans tenir compte de la casse.
    name="invoice",
    # Filtrer par un type de modèle exact.
    model_type="extraction",
)

response = client.search(search_params)

# afficher une représentation lisible de la réponse, utile pour le développement
print(str(response))

# accéder aux informations du modèle
for model in response.models:
    model_id = model.id
```

{% endtab %}

{% tab title="Node.js" %}

```typescript
import { ModelSearch } from "@/v2/search/index.js";

const searchParams = {
  // Filtrer les modèles par correspondance partielle du nom, sans tenir compte de la casse.
  name: "invoice",
  // Filtrer par un type de modèle exact.
  modelType: "extraction"
};

const response = await client.search(ModelSearch, searchParams);

// afficher une représentation lisible de la réponse, utile pour le développement
console.log(response.toString());

// accéder aux informations du modèle
for (const model of response.models) {
  const modelId = model.id;
}
```

{% endtab %}

{% tab title="PHP" %}

```php
use Mindee\V2\Search\Models\ModelSearchParameters;

$searchParams = new ModelSearchParameters(
    // Filtrer les modèles par correspondance partielle du nom, sans tenir compte de la casse.
    name: "invoice",
    // Filtrer par un type de modèle exact.
    modelType: "extraction",
);

$response = $client->search($searchParams);

// Afficher une représentation lisible de la réponse, utile pour le développement
print_r($response);

// Accéder aux informations du modèle
foreach ($response->models as $model) {
    $modelId = $model->id;
}
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'mindee'

search_params = Mindee::V2::Search::Models::ModelSearchParameters.new(
    # Filtrer les modèles par correspondance partielle du nom, sans tenir compte de la casse.
    name: 'invoice',
    # Filtrer par un type de modèle exact.
    model_type: 'extraction',
)

response = client.search(search_params)

# afficher une représentation lisible de la réponse, utile pour le développement
puts response.to_s

# accéder aux informations du modèle
response.models.each do |model|
  model_id = model.id
end
```

{% endtab %}

{% tab title="Java" %}

```java
import com.mindee.v2.search.models.ModelSearchParameters;

var searchParams = new ModelSearchParameters.builder()
    // Filtrer les modèles par correspondance partielle du nom, sans tenir compte de la casse.
    .name("invoice")
    // Filtrer par un type de modèle exact.
    .modelType("extraction")
    .build();

var response = client.search(searchParams);

// afficher une représentation lisible de la réponse, utile pour le développement
System.out.println(response.toString());

// accéder aux informations du modèle
for (var model : response.getModels()) {
    String modelId = model.getId();
}
```

{% endtab %}

{% tab title=".NET" %}

```csharp
using Mindee.V2.Search.Models;

var searchParams = new ModelSearchParameters(
    // Filtrer les modèles par correspondance partielle du nom, sans tenir compte de la casse.
    name: 'invoice',
    // Filtrer par un type de modèle exact.
    modelType: 'extraction'
);

var response = await client.SearchAsync(searchParams);

// afficher une représentation lisible de la réponse, utile pour le développement
Console.WriteLine(response.ToString());

// accéder aux informations du modèle
foreach (var model in response.Models)
{
    string modelId = model.Id;
}
```

{% endtab %}
{% endtabs %}

## Recherche de documents RAG

Recherchez des documents RAG au sein de l'organisation liée à la clé API.

L'ID de modèle est requis, les filtres de recherche sont facultatifs. Si aucun filtre de recherche n'est fourni, tous les documents liés au modèle sont renvoyés.

{% tabs %}
{% tab title="Python" %}

```python
from mindee.v2.search.rag_documents.rag_document_search_parameters import (
    RagDocumentSearchParameters,
)

search_params = RagDocumentSearchParameters(
    # L'UUID exact du modèle auquel le document est associé.
    model_id="my-model-uuid",
    # Filtrer les documents par correspondance partielle du nom de fichier, sans tenir compte de la casse.
    filename="invoice_32GB-RAM_450k-USD.pdf",
)

response = client.search(search_params)

# afficher une représentation lisible de la réponse, utile pour le développement
print(str(response))

# accéder aux informations du document RAG
for rag_doc in response.rag_documents:
    rag_doc_id = rag_doc.id
    rag_doc_total_matches = rag_doc.total_matches
```

{% endtab %}

{% tab title="Node.js" %}

```typescript
import { RagDocumentSearch } from "@/v2/search/index.js";

const searchParams = {
  // L'UUID exact du modèle auquel le document est associé.
  modelId: "my-model-uuid",
  // Filtrer les documents par correspondance partielle du nom de fichier, sans tenir compte de la casse.
  filename: "invoice_32GB-RAM_450k-USD.pdf"
};

const response = await client.search(RagDocumentSearch, searchParams);

// afficher une représentation lisible de la réponse, utile pour le développement
console.log(response.toString());

// accéder aux informations du document RAG
for (const ragDoc of response.ragDocuments) {
  const ragDocId = ragDoc.id;
  const ragDocTotalMatches = ragDoc.totalMatches;
}
```

{% endtab %}

{% tab title="PHP" %}

```php
use Mindee\V2\Search\RagDocuments\RagDocumentSearchParameters;

$searchParams = new RagDocumentSearchParameters(
    // L'UUID exact du modèle auquel le document est associé.
    modelId: "my-model-uuid",
    // Filtrer les documents par correspondance partielle du nom de fichier, sans tenir compte de la casse.
    filename: "invoice_32GB-RAM_450k-USD.pdf",
);

$response = $client->search($searchParams);

// Afficher une représentation lisible de la réponse, utile pour le développement
print_r($response);

// Accéder aux informations du document RAG
foreach ($response->ragDocuments as $ragDoc) {
    $ragDocId = $ragDoc->id;
    $ragDocTotalMatches = $ragDoc->totalMatches;
}
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'mindee'

search_params = Mindee::V2::Search::RagDocuments::RagDocumentSearchParameters.new(
  # L'UUID exact du modèle auquel le document est associé.
  model_id: 'my-model-uuid',
  # Filtrer les documents par correspondance partielle du nom de fichier, sans tenir compte de la casse.
  filename: 'invoice_32GB-RAM_450k-USD.pdf',
)

response = client.search(search_params)

# afficher une représentation lisible de la réponse, utile pour le développement
puts response.to_s

# accéder aux informations du document RAG
response.rag_documents.each do |rag_doc|
  rag_doc_id = rag_doc.id
  rag_doc_total_matches = rag_doc.total_matches
end
```

{% endtab %}

{% tab title="Java" %}

```java
import com.mindee.v2.search.ragdocuments.RagDocumentSearchParameters;

var searchParams = new RagDocumentSearchParameters.builder()
        // L'UUID exact du modèle auquel le document est associé.
        .modelId("my-model-uuid")
        // Filtrer les documents par correspondance partielle du nom de fichier, sans tenir compte de la casse.
        .filename("invoice_32GB-RAM_450k-USD.pdf")
        .build();

var response = client.search(searchParams);

// afficher une représentation lisible de la réponse, utile pour le développement
System.out.println(response.toString());

// accéder aux informations du document RAG
for (var ragDoc : response.getRagDocuments()) {
    String ragDocId = ragDoc.getId();
    int ragDocTotalMatches = ragDoc.getTotalMatches();
}
```

{% endtab %}

{% tab title=".NET" %}

```csharp
using Mindee.V2.Search.RagDocuments;

var searchParams = new RagDocumentSearchParameters(
    // L'UUID exact du modèle auquel le document est associé.
    modelId: "my-model-uuid",
    // Filtrer les documents par correspondance partielle du nom de fichier, sans tenir compte de la casse.
    filename: "invoice_32GB-RAM_450k-USD.pdf"
);

var response = await client.SearchAsync(searchParams);

// afficher une représentation lisible de la réponse, utile pour le développement
Console.WriteLine(response.ToString());

// accéder aux informations du document RAG
foreach (var ragDoc in response.RagDocuments)
{
    string ragDocId = ragDoc.Id;
    int ragDocTotalMatches = ragDoc.TotalMatches;
}
```

{% 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/search.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.
