Class: LLM::DeepSeek

Inherits:
OpenAI show all
Defined in:
lib/llm/providers/deepseek.rb,
lib/llm/providers/deepseek/request_adapter.rb

Overview

The DeepSeek class implements a provider for DeepSeek through its OpenAI-compatible API available via their web platform.

Examples:

#!/usr/bin/env ruby
require "llm"

llm = LLM.deepseek(key: ENV["KEY"])
ses = LLM::Session.new(llm)
ses.talk ["Tell me about this photo", ses.local_file("/images/photo.png")]
ses.messages.select(&:assistant?).each { print "[#{_1.role}]", _1.content, "\n" }

Constant Summary

Constants inherited from OpenAI

OpenAI::HOST

Instance Method Summary collapse

Methods inherited from OpenAI

#assistant_role, #complete, #embed, #models, #server_tools, #web_search

Methods inherited from Provider

#assistant_role, #chat, clients, #complete, #developer_role, #embed, #inspect, #models, #persist!, #respond, #schema, #server_tool, #server_tools, #system_role, #tool_role, #tracer, #tracer=, #user_role, #web_search, #with

Constructor Details

#initialize(host: "api.deepseek.com", port: 443, ssl: true) ⇒ LLM::DeepSeek

Parameters:

  • key (String, nil)

    The secret key for authentication

  • host (String) (defaults to: "api.deepseek.com")

    The host address of the LLM provider

  • port (Integer) (defaults to: 443)

    The port number

  • timeout (Integer)

    The number of seconds to wait for a response

  • ssl (Boolean) (defaults to: true)

    Whether to use SSL for the connection

  • persistent (Boolean)

    Whether to use a persistent connection. Requires the net-http-persistent gem.



27
28
29
# File 'lib/llm/providers/deepseek.rb', line 27

def initialize(host: "api.deepseek.com", port: 443, ssl: true, **)
  super
end

Instance Method Details

#default_modelString

Returns the default model for chat completions

Returns:

  • (String)

See Also:



78
79
80
# File 'lib/llm/providers/deepseek.rb', line 78

def default_model
  "deepseek-chat"
end

#nameSymbol

Returns the provider's name

Returns:

  • (Symbol)

    Returns the provider's name



34
35
36
# File 'lib/llm/providers/deepseek.rb', line 34

def name
  :deepseek
end

#filesObject

Raises:

  • (NotImplementedError)


40
41
42
# File 'lib/llm/providers/deepseek.rb', line 40

def files
  raise NotImplementedError
end

#imagesObject

Raises:

  • (NotImplementedError)


46
47
48
# File 'lib/llm/providers/deepseek.rb', line 46

def images
  raise NotImplementedError
end

#audioObject

Raises:

  • (NotImplementedError)


52
53
54
# File 'lib/llm/providers/deepseek.rb', line 52

def audio
  raise NotImplementedError
end

#moderationsObject

Raises:

  • (NotImplementedError)


58
59
60
# File 'lib/llm/providers/deepseek.rb', line 58

def moderations
  raise NotImplementedError
end

#responsesObject

Raises:

  • (NotImplementedError)


64
65
66
# File 'lib/llm/providers/deepseek.rb', line 64

def responses
  raise NotImplementedError
end

#vector_storesObject

Raises:

  • (NotImplementedError)


70
71
72
# File 'lib/llm/providers/deepseek.rb', line 70

def vector_stores
  raise NotImplementedError
end