# `Perplexed.Search.DeepSeek`
[🔗](https://github.com/agoodway/perplexed/blob/v0.2.0/lib/perplexed/search/deep_seek.ex#L1)

DeepSeek Search API (`POST /v1/tools/search`) as a `Perplexed.Search` provider.

Each result carries two query-dependent summaries: a 100 to 200
character `snippet` for display and a 600 to 800 character `summary`
written for a model to read, which becomes the hit's `description`. They
are summaries, not the page: with `need_content: true` (the default here)
DeepSeek also returns the page text, at no extra cost, as the hit's
`content`, and `Perplexed.answer/2` reads that instead of scraping the
page again. Everything else DeepSeek returns is kept in the hit's
`metadata`: `snippet`, `rerank_score` (0 to 3, combining relevance,
authority and freshness; 1.5 or above is high quality), `authority` (0 to
4, 3 or above highly authoritative, -1 unknown), `site_name` and
`site_icon`.

## Options

  * `:limit` - results, 1 to 50, default 8. The price is per request
    whatever the count.
  * `:question` - the user's original question, sent as `ori_question`
    (DeepSeek uses it to understand the query); `Perplexed.answer/2` sets
    it. Capped at 128 characters, like the query.
  * `:need_content` - return page text, default `true`.
  * `:localization` - an IP address to localize results for.
  * `:min_rerank_score`, `:min_authority` - drop results below these.

Queries accept `site:`, `-site:`, `"exact"`, `-term`, `lang:`, `after:`
and `before:`. Billed $0.75 per 1,000 successful requests; empty results,
failures and timeouts are not billed. Searches are processed by DeepSeek.

Needs `config :perplexed, deepseek_api_key:`.

---

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