## Create Retriever

`Retriever Retrievers.Create(RetrieverCreateParamsparameters, CancellationTokencancellationToken = default)`

**post** `/api/v1/retrievers`

Create a new Retriever.

### Parameters

- `RetrieverCreateParams parameters`

  - `required string name`

    Body param: A name for the retriever tool. Will default to the pipeline name if not provided.

  - `string? organizationID`

    Query param

  - `string? projectID`

    Query param

  - `IReadOnlyList<RetrieverPipeline> pipelines`

    Body param: The pipelines this retriever uses.

    - `required string? Description`

      A description of the retriever tool.

    - `required string? Name`

      A name for the retriever tool. Will default to the pipeline name if not provided.

    - `required string PipelineID`

      The ID of the pipeline this tool uses.

    - `PresetRetrievalParams PresetRetrievalParameters`

      Parameters for retrieval configuration.

      - `Double? Alpha`

        Alpha value for hybrid retrieval to determine the weights between dense and sparse retrieval. 0 is sparse retrieval and 1 is dense retrieval.

      - `string ClassName`

      - `Double? DenseSimilarityCutoff`

        Minimum similarity score wrt query for retrieval

      - `Long? DenseSimilarityTopK`

        Number of nodes for dense retrieval.

      - `Boolean? EnableReranking`

        Enable reranking for retrieval

      - `Long? FilesTopK`

        Number of files to retrieve (only for retrieval mode files_via_metadata and files_via_content).

      - `Long? RerankTopN`

        Number of reranked nodes for returning.

      - `RetrievalMode RetrievalMode`

        The retrieval mode for the query.

        - `"auto_routed"AutoRouted`

        - `"chunks"Chunks`

        - `"files_via_content"FilesViaContent`

        - `"files_via_metadata"FilesViaMetadata`

      - `Boolean RetrieveImageNodes`

        Whether to retrieve image nodes.

      - `Boolean RetrievePageFigureNodes`

        Whether to retrieve page figure nodes.

      - `Boolean RetrievePageScreenshotNodes`

        Whether to retrieve page screenshot nodes.

      - `MetadataFilters? SearchFilters`

        Metadata filters for vector stores.

        - `required IReadOnlyList<Filter> Filters`

          - `class MetadataFilter:`

            Comprehensive metadata filter for vector stores to support more operators.

            Value uses Strict types, as int, float and str are compatible types and were all
            converted to string before.

            See: https://docs.pydantic.dev/latest/usage/types/#strict-types

            - `required string Key`

            - `required Value? Value`

              - `Double`

              - `string`

              - `IReadOnlyList<string>`

              - `IReadOnlyList<Double>`

              - `IReadOnlyList<Long>`

            - `Operator Operator`

              Vector store filter operator.

              - `"!="`

              - `"<"`

              - `"<="`

              - `"=="`

              - `">"`

              - `">="`

              - `"all"All`

              - `"any"Any`

              - `"contains"Contains`

              - `"in"In`

              - `"is_empty"IsEmpty`

              - `"nin"Nin`

              - `"text_match"TextMatch`

              - `"text_match_insensitive"TextMatchInsensitive`

          - `class MetadataFilters:`

            Metadata filters for vector stores.

        - `Condition? Condition`

          Vector store filter conditions to combine different filters.

          - `"and"And`

          - `"not"Not`

          - `"or"Or`

      - `IReadOnlyDictionary<string, SearchFiltersInferenceSchema?>? SearchFiltersInferenceSchema`

        JSON Schema that will be used to infer search_filters. Omit or leave as null to skip inference.

        - `IReadOnlyDictionary<string, JsonElement>`

        - `IReadOnlyList<JsonElement>`

        - `string`

        - `Double`

        - `Boolean`

      - `Long? SparseSimilarityTopK`

        Number of nodes for sparse retrieval.

### Returns

- `class Retriever:`

  An entity that retrieves context nodes from several sub RetrieverTools.

  - `required string ID`

    Unique identifier

  - `required string Name`

    A name for the retriever tool. Will default to the pipeline name if not provided.

  - `required string ProjectID`

    The ID of the project this retriever resides in.

  - `DateTimeOffset? CreatedAt`

    Creation datetime

  - `IReadOnlyList<RetrieverPipeline> Pipelines`

    The pipelines this retriever uses.

    - `required string? Description`

      A description of the retriever tool.

    - `required string? Name`

      A name for the retriever tool. Will default to the pipeline name if not provided.

    - `required string PipelineID`

      The ID of the pipeline this tool uses.

    - `PresetRetrievalParams PresetRetrievalParameters`

      Parameters for retrieval configuration.

      - `Double? Alpha`

        Alpha value for hybrid retrieval to determine the weights between dense and sparse retrieval. 0 is sparse retrieval and 1 is dense retrieval.

      - `string ClassName`

      - `Double? DenseSimilarityCutoff`

        Minimum similarity score wrt query for retrieval

      - `Long? DenseSimilarityTopK`

        Number of nodes for dense retrieval.

      - `Boolean? EnableReranking`

        Enable reranking for retrieval

      - `Long? FilesTopK`

        Number of files to retrieve (only for retrieval mode files_via_metadata and files_via_content).

      - `Long? RerankTopN`

        Number of reranked nodes for returning.

      - `RetrievalMode RetrievalMode`

        The retrieval mode for the query.

        - `"auto_routed"AutoRouted`

        - `"chunks"Chunks`

        - `"files_via_content"FilesViaContent`

        - `"files_via_metadata"FilesViaMetadata`

      - `Boolean RetrieveImageNodes`

        Whether to retrieve image nodes.

      - `Boolean RetrievePageFigureNodes`

        Whether to retrieve page figure nodes.

      - `Boolean RetrievePageScreenshotNodes`

        Whether to retrieve page screenshot nodes.

      - `MetadataFilters? SearchFilters`

        Metadata filters for vector stores.

        - `required IReadOnlyList<Filter> Filters`

          - `class MetadataFilter:`

            Comprehensive metadata filter for vector stores to support more operators.

            Value uses Strict types, as int, float and str are compatible types and were all
            converted to string before.

            See: https://docs.pydantic.dev/latest/usage/types/#strict-types

            - `required string Key`

            - `required Value? Value`

              - `Double`

              - `string`

              - `IReadOnlyList<string>`

              - `IReadOnlyList<Double>`

              - `IReadOnlyList<Long>`

            - `Operator Operator`

              Vector store filter operator.

              - `"!="`

              - `"<"`

              - `"<="`

              - `"=="`

              - `">"`

              - `">="`

              - `"all"All`

              - `"any"Any`

              - `"contains"Contains`

              - `"in"In`

              - `"is_empty"IsEmpty`

              - `"nin"Nin`

              - `"text_match"TextMatch`

              - `"text_match_insensitive"TextMatchInsensitive`

          - `class MetadataFilters:`

            Metadata filters for vector stores.

        - `Condition? Condition`

          Vector store filter conditions to combine different filters.

          - `"and"And`

          - `"not"Not`

          - `"or"Or`

      - `IReadOnlyDictionary<string, SearchFiltersInferenceSchema?>? SearchFiltersInferenceSchema`

        JSON Schema that will be used to infer search_filters. Omit or leave as null to skip inference.

        - `IReadOnlyDictionary<string, JsonElement>`

        - `IReadOnlyList<JsonElement>`

        - `string`

        - `Double`

        - `Boolean`

      - `Long? SparseSimilarityTopK`

        Number of nodes for sparse retrieval.

  - `DateTimeOffset? UpdatedAt`

    Update datetime

### Example

```csharp
RetrieverCreateParams parameters = new() { Name = "x" };

var retriever = await client.Retrievers.Create(parameters);

Console.WriteLine(retriever);
```

#### Response

```json
{
  "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "name": "x",
  "project_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "created_at": "2019-12-27T18:11:19.117Z",
  "pipelines": [
    {
      "description": "description",
      "name": "x",
      "pipeline_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "preset_retrieval_parameters": {
        "alpha": 0,
        "class_name": "class_name",
        "dense_similarity_cutoff": 0,
        "dense_similarity_top_k": 1,
        "enable_reranking": true,
        "files_top_k": 1,
        "rerank_top_n": 1,
        "retrieval_mode": "auto_routed",
        "retrieve_image_nodes": true,
        "retrieve_page_figure_nodes": true,
        "retrieve_page_screenshot_nodes": true,
        "search_filters": {
          "filters": [
            {
              "key": "key",
              "value": 0,
              "operator": "!="
            }
          ],
          "condition": "and"
        },
        "search_filters_inference_schema": {
          "foo": {
            "foo": "bar"
          }
        },
        "sparse_similarity_top_k": 1
      }
    }
  ],
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```
