# DeepSeek

Message DeepSeek's models with or without thinking mode, ask about images, and check the account balance.

## Connect DeepSeek

1. In the sidebar, open **Connections** and press **Add connection**.
2. Type `deepseek` and choose **DeepSeek**.
3. Fill in the fields. Each one says **Required** or **Optional**.
4. Press **Test and save**. GoRunner checks the connection before it saves anything.

The sheet asks for:

- **API Key · Required**: A DeepSeek API key (sk-…).

Paste a DeepSeek API key: platform.deepseek.com → API keys → Create new API key.

[Connections](https://docs.gorunner.io/build/connections) says how to sign in again, rename or delete it. In a product that embeds GoRunner, **Add connection** can be missing: then [your provider makes connections](https://docs.gorunner.io/embed/customer-connections) for you.

## Do things in DeepSeek

Add a **DeepSeek** step, choose a **Resource**, then an **Operation**. Choose a row to see its fields.

- [Text](https://docs.gorunner.io/apps/deepseek#fields-f-text): Message a Model
- [Image](https://docs.gorunner.io/apps/deepseek#fields-f-image): Analyze Image
- [Model](https://docs.gorunner.io/apps/deepseek#fields-f-model): Get Many
- [Account](https://docs.gorunner.io/apps/deepseek#fields-f-account): Get Balance

To start a workflow from DeepSeek, use a [Schedule](https://docs.gorunner.io/apps/schedule), [Webhook](https://docs.gorunner.io/apps/webhook) or [Form](https://docs.gorunner.io/apps/form) trigger.

Later steps read a step’s output by its name: see [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Limits

- A reply from DeepSeek can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When DeepSeek says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.

Not in your list? See [When an app isn’t here](https://docs.gorunner.io/apps/when-an-app-isnt-here#q-not-in-list).

## For developers

In the API, which calls apps pieces, DeepSeek is `pieceId: "deepseek"` with `actionId: "deepseek"`, set by `resource` and an `operation_…` field, such as `operation_account`. [Get an app](https://docs.gorunner.io/api/apps/get-app) returns every field.

It reads from outside without changing anything (`reads_external`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### DeepSeek › Text

### Message a Model

- **Model · Required**: The model that answers. Default: deepseek-flash.
- **Prompt · Required**: What to ask or tell the model.
- **System Message · Optional**: Standing instructions for the model: its role, tone and rules. Optional.
- **Earlier Messages · Optional**: Earlier turns of the conversation, oldest first, sent before the prompt: [{"role":"user","content":"…"},{"role":"assistant","content":"…"}].
- **Thinking · Optional**: Whether the model reasons before it answers. Its reasoning comes back apart from the answer, in reasoning. DeepSeek's default is on. Options: Default, On, Off. Default: Default.
- **Reasoning Effort · Optional**: How long the model thinks: Low, High (DeepSeek's default) or Max. Options: Default, Low, High, Max. Default: Default. Shows when **Thinking** isn’t **Off**.
- **Output Format · Optional**: Text, or JSON the step parses for later steps (under json). For a JSON object, say in the prompt what the JSON should hold. Options: Text, JSON object. Default: Text.
- **Max Tokens · Optional**: The most tokens the answer may use (reasoning included on reasoning models). Empty uses the model's default.
- **Temperature · Optional**: 0–2: lower is more focused and repeatable, higher more varied. Empty uses the model's default.
- **Top P · Optional**: 0–1: sample only from the most likely tokens whose probabilities add up to this. Change this or Temperature, not both.
- **Stop Sequences · Optional**: Text that ends the answer when the model writes it, one per line (at most 4).
- **Tools · Optional**: Functions the model may ask to call, as a list: [{"type":"function","function":{"name":"get_weather","description":"…","parameters":{…}}}]. The calls it asks for are in tool_calls; this step does not call them.
- **More Options · Optional**: Other request fields DeepSeek documents for chat completions, as JSON (such as {"seed": 7}). They are added to the request as written.

### DeepSeek › Image

### Analyze Image

- **Model · Required**: A model that reads images (the list marks them). Default: deepseek-flash.
- **Question · Required**: What to ask about the images.
- **System Message · Optional**: Standing instructions for the model: its role, tone and rules. Optional.
- **Earlier Messages · Optional**: Earlier turns of the conversation, oldest first, sent before the prompt: [{"role":"user","content":"…"},{"role":"assistant","content":"…"}].
- **Image URLs · Optional**: Links to the images, one per line (https:// or data: URLs). JPEG, PNG, GIF or WebP.
- **Image File · Optional**: Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). JPEG, PNG, GIF or WebP. Use this, Image URLs, or both.
- **Thinking · Optional**: Whether the model reasons before it answers. Its reasoning comes back apart from the answer, in reasoning. DeepSeek's default is on. Options: Default, On, Off. Default: Default.
- **Reasoning Effort · Optional**: How long the model thinks: Low, High (DeepSeek's default) or Max. Options: Default, Low, High, Max. Default: Default. Shows when **Thinking** isn’t **Off**.
- **Output Format · Optional**: Text, or JSON the step parses for later steps (under json). For a JSON object, say in the prompt what the JSON should hold. Options: Text, JSON object. Default: Text.
- **Max Tokens · Optional**: The most tokens the answer may use (reasoning included on reasoning models). Empty uses the model's default.
- **Temperature · Optional**: 0–2: lower is more focused and repeatable, higher more varied. Empty uses the model's default.
- **Top P · Optional**: 0–1: sample only from the most likely tokens whose probabilities add up to this. Change this or Temperature, not both.
- **Stop Sequences · Optional**: Text that ends the answer when the model writes it, one per line (at most 4).
- **More Options · Optional**: Other request fields DeepSeek documents for chat completions, as JSON (such as {"seed": 7}). They are added to the request as written.

### DeepSeek › Model

### Get Many

- **Return All · Optional**: Read every model, page by page (at most 1000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many models to return (1–1000). Default: 100. Shows when **Return All** is off.

### DeepSeek › Account

### Get Balance

Nothing to fill in.

Source: https://docs.gorunner.io/apps/deepseek
