Module: OpenAI
- Defined in:
- lib/openai/client.rb,
lib/openai.rb,
lib/openai/http.rb,
lib/openai/runs.rb,
lib/openai/audio.rb,
lib/openai/files.rb,
lib/openai/usage.rb,
lib/openai/images.rb,
lib/openai/models.rb,
lib/openai/stream.rb,
lib/openai/batches.rb,
lib/openai/threads.rb,
lib/openai/version.rb,
lib/openai/messages.rb,
lib/openai/realtime.rb,
lib/openai/finetunes.rb,
lib/openai/responses.rb,
lib/openai/run_steps.rb,
lib/openai/assistants.rb,
lib/openai/http_headers.rb,
lib/openai/conversations.rb,
lib/openai/vector_stores.rb,
lib/openai/vector_store_files.rb,
lib/openai/vector_store_file_batches.rb
Overview
rubocop:disable Metrics/ClassLength
Defined Under Namespace
Modules: HTTP, HTTPHeaders Classes: Assistants, Audio, AuthenticationError, Batches, Client, Configuration, ConfigurationError, Conversations, Error, Files, Finetunes, Images, Messages, MiddlewareErrors, Models, Realtime, Responses, RunSteps, Runs, Stream, Threads, Usage, VectorStoreFileBatches, VectorStoreFiles, VectorStores
Constant Summary collapse
- VERSION =
"8.3.0".freeze
Class Attribute Summary collapse
Class Method Summary collapse
- .configure {|configuration| ... } ⇒ Object
-
.log_message(prefix, message, level = :warn) ⇒ Object
Log a message with appropriate formatting.
-
.rough_token_count(content = "") ⇒ Object
Estimate the number of tokens in a string, using the rules of thumb from OpenAI: help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them.
Class Attribute Details
.configuration ⇒ Object
74 75 76 |
# File 'lib/openai.rb', line 74 def configuration @configuration ||= OpenAI::Configuration.new end |
Class Method Details
.configure {|configuration| ... } ⇒ Object
78 79 80 |
# File 'lib/openai.rb', line 78 def configure yield(configuration) end |
.log_message(prefix, message, level = :warn) ⇒ Object
Log a message with appropriate formatting
98 99 100 101 102 103 104 105 |
# File 'lib/openai.rb', line 98 def (prefix, , level = :warn) color = level == :error ? "\033[31m" : "\033[33m" logger = Logger.new($stdout) logger.formatter = proc do |_severity, _datetime, _progname, msg| "#{color}#{prefix} (spotted in ruby-openai #{VERSION}): #{msg}\n\033[0m" end logger.send(level, ) end |
.rough_token_count(content = "") ⇒ Object
Estimate the number of tokens in a string, using the rules of thumb from OpenAI: help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them
84 85 86 87 88 89 90 91 92 |
# File 'lib/openai.rb', line 84 def rough_token_count(content = "") raise ArgumentError, "rough_token_count requires a string" unless content.is_a? String return 0 if content.empty? count_by_chars = content.size / 4.0 count_by_words = content.split.size * 4.0 / 3 estimate = ((count_by_chars + count_by_words) / 2.0).round [1, estimate].max end |