# `Gemini.Types.Enums.TaskType`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.15.0/lib/gemini/types/enums.ex#L269)

Task types for embedding generation.

Different task types optimize embeddings for specific use cases.

## Values

- `:unspecified` - Default task type
- `:retrieval_query` - Text is a search query
- `:retrieval_document` - Text is a document being indexed
- `:semantic_similarity` - For similarity comparison
- `:classification` - For classification tasks
- `:clustering` - For clustering tasks
- `:question_answering` - For Q&A systems
- `:fact_verification` - For fact checking
- `:code_retrieval_query` - For code search queries

# `t`

```elixir
@type t() ::
  :unspecified
  | :retrieval_query
  | :retrieval_document
  | :semantic_similarity
  | :classification
  | :clustering
  | :question_answering
  | :fact_verification
  | :code_retrieval_query
```

# `all`

```elixir
@spec all() :: [t()]
```

Returns all task types for analysis.

# `from_api`

```elixir
@spec from_api(String.t() | nil) :: t() | nil
```

# `retrieval_types`

```elixir
@spec retrieval_types() :: [t()]
```

Returns task types optimized for retrieval/search.

# `to_api`

```elixir
@spec to_api(t()) :: String.t()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
