Class: Ask::Providers::DeepSeek

Inherits:
OpenAI
  • Object
show all
Defined in:
lib/ask/provider/deepseek.rb

Overview

DeepSeek API — an OpenAI-compatible provider at api.deepseek.com. Supports DeepSeek V2, V3, V4 Chat, R1 reasoning, and all DeepSeek models via the OpenAI-compatible endpoint.

Configuration via environment:

DEEPSEEK_API_KEY  — required, your DeepSeek API key
DEEPSEEK_API_BASE — optional, base URL (default: https://api.deepseek.com)

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from OpenAI

assume_models_exist?, capabilities, #chat, #embed, #initialize, #list_models, #parse_error

Constructor Details

This class inherits a constructor from Ask::Providers::OpenAI

Class Method Details

.configuration_optionsObject



26
# File 'lib/ask/provider/deepseek.rb', line 26

def configuration_options; %i[api_key base_url]; end

.configuration_requirementsObject



27
# File 'lib/ask/provider/deepseek.rb', line 27

def configuration_requirements; %i[api_key]; end

.configured?(config) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
31
32
# File 'lib/ask/provider/deepseek.rb', line 28

def configured?(config)
  key = config.respond_to?(:api_key) ? config.api_key : nil
  key ||= ENV["DEEPSEEK_API_KEY"]
  key.to_s.length > 0
end

.slugObject



25
# File 'lib/ask/provider/deepseek.rb', line 25

def slug; "deepseek"; end

Instance Method Details

#api_baseObject



13
14
15
# File 'lib/ask/provider/deepseek.rb', line 13

def api_base
  @config.base_url || ENV["DEEPSEEK_API_BASE"] || "https://api.deepseek.com"
end

#headersObject



17
18
19
20
21
22
# File 'lib/ask/provider/deepseek.rb', line 17

def headers
  key = @config.api_key || ENV["DEEPSEEK_API_KEY"]
  h = { "Content-Type" => "application/json" }
  h["Authorization"] = "Bearer #{key}" if key
  h
end