Class: LLM::OpenAI
- Includes:
- Format
- Defined in:
- lib/llm/providers/openai.rb,
lib/llm/providers/openai/format.rb,
lib/llm/providers/openai/error_handler.rb,
lib/llm/providers/openai/response_parser.rb
Overview
The OpenAI class implements a provider for [OpenAI](platform.openai.com/)
Defined Under Namespace
Modules: Format, ResponseParser Classes: ErrorHandler
Constant Summary collapse
- HOST =
"api.openai.com"
Instance Method Summary collapse
-
#assistant_role ⇒ String
Returns the role of the assistant in the conversation.
- #complete(prompt, role = :user, **params) ⇒ LLM::Response::Completion
- #embed(input, **params) ⇒ LLM::Response::Embedding
-
#initialize(secret) ⇒ OpenAI
constructor
A new instance of OpenAI.
- #models ⇒ Object
Methods included from Format
Methods inherited from Provider
Methods included from HTTPClient
Constructor Details
Instance Method Details
#assistant_role ⇒ String
Returns the role of the assistant in the conversation. Usually “assistant” or “model”
47 48 49 |
# File 'lib/llm/providers/openai.rb', line 47 def assistant_role "assistant" end |
#complete(prompt, role = :user, **params) ⇒ LLM::Response::Completion
36 37 38 39 40 41 42 43 |
# File 'lib/llm/providers/openai.rb', line 36 def complete(prompt, role = :user, **params) params = {model: "gpt-4o-mini"}.merge!(params) req = Net::HTTP::Post.new("/v1/chat/completions", headers) = [*(params.delete(:messages) || []), Message.new(role, prompt)] req.body = JSON.dump({messages: format()}.merge!(params)) res = request(@http, req) Response::Completion.new(res).extend(response_parser) end |
#embed(input, **params) ⇒ LLM::Response::Embedding
24 25 26 27 28 29 |
# File 'lib/llm/providers/openai.rb', line 24 def (input, **params) req = Net::HTTP::Post.new("/v1/embeddings", headers) req.body = JSON.dump({input:, model: "text-embedding-3-small"}.merge!(params)) res = request(@http, req) Response::Embedding.new(res).extend(response_parser) end |
#models ⇒ Object
51 52 53 |
# File 'lib/llm/providers/openai.rb', line 51 def models @models ||= load_models!("openai") end |