## Update Retriever

`Retriever Retrievers.Update(RetrieverUpdateParamsparameters, CancellationTokencancellationToken = default)`

**put** `/api/v1/retrievers/{retriever_id}`

Update an existing Retriever.

### Parameters

- `RetrieverUpdateParams parameters`

  - `required string retrieverID`

    Path param

  - `required 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.

  - `string? organizationID`

    Query param

  - `string? projectID`

    Query param

  - `string? name`

    Body param: A name for the retriever.

### 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
RetrieverUpdateParams parameters = new()
{
    RetrieverID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    Pipelines =
    [
        new()
        {
            Description = "description",
            Name = "x",
            PipelineID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
            PresetRetrievalParameters = new()
            {
                Alpha = 0,
                ClassName = "class_name",
                DenseSimilarityCutoff = 0,
                DenseSimilarityTopK = 1,
                EnableReranking = true,
                FilesTopK = 1,
                RerankTopN = 1,
                RetrievalMode = RetrievalMode.AutoRouted,
                RetrieveImageNodes = true,
                RetrievePageFigureNodes = true,
                RetrievePageScreenshotNodes = true,
                SearchFilters = new()
                {
                    Filters =
                    [
                        new MetadataFilter()
                        {
                            Key = "key",
                            Value = 0,
                            Operator = Operator.,
                        },
                    ],
                    Condition = Condition.And,
                },
                SearchFiltersInferenceSchema = new Dictionary<string, SearchFiltersInferenceSchema?>(

                )
                {
                    { "foo", new(
                        new Dictionary<string, JsonElement>()
                        {
                            { "foo", JsonSerializer.SerializeToElement("bar") }
                        }
                    ) },
                },
                SparseSimilarityTopK = 1,
            },
        },
    ],
};

var retriever = await client.Retrievers.Update(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"
}
```
