open_ai_bot 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e31ed7bc34cf94ba2d339a1efa6b57a0d9fd972aec39961a98253cb5b9dcc4df
4
- data.tar.gz: 2f92b54b9788efacd9bf50b66004c777a8eeb3bd934ffc65a2ea93a4a12c39e6
3
+ metadata.gz: 2aafb706ad49054fb0e35aab308ea6486ab89ea7e6740f081033b49a972b4dfb
4
+ data.tar.gz: 2b6b9c143e1465bc2e1f984d8ec611b234644b6f99bf3a033ca160a558871625
5
5
  SHA512:
6
- metadata.gz: 38ff4646a9493b2771d62cce25d8a2ff0ab589bc2d300041fec4536e6e75065e33c79fe452994dd5d9a628be6646e4ed97bb97a7c28503811b3a3db1b8fefa9f
7
- data.tar.gz: 872adfdeb95db9ccbdd8073ee736136a40d4517b1b4eddee9ddf5885638dfe286c705554dd708c654dd1e9b83c62682626fd63cf3d2e878fea536a4d79c08d67
6
+ metadata.gz: f486692224acc9d6897a426b37e56673779d2631bd2577e9a26ed0ff99715a1e8b14972649cfbbaab02db47233a878bd85f00b1a4cb0fb966a169d3a651a56f9
7
+ data.tar.gz: 6d0c11a1f76f4edf83ec4a011ded1a88bfc73d48ff7a7567c57525d519ec568fc458f5c262787422ac5f35fad97fe91e2f4d0b5c6564a7d5058ec08b3fd3458b
@@ -145,9 +145,8 @@ module OpenAI
145
145
  def get_tokens_info!(response)
146
146
  completion_tokens = response.dig("usage", "completion_tokens")
147
147
  prompt_tokens = response.dig("usage", "prompt_tokens")
148
- vision_tokens = current_thread.claim_vision_tokens!
149
148
 
150
- result = current_thread.model.request_cost(completion_tokens:, prompt_tokens:, vision_tokens:, current_thread:)
149
+ result = current_thread.model.request_cost(completion_tokens:, prompt_tokens:, current_thread:)
151
150
  end
152
151
 
153
152
  def send_chat_gpt_response(text, tokens_info)
@@ -24,10 +24,6 @@ module OpenAI
24
24
  @history.map(&:cost).compact.sum
25
25
  end
26
26
 
27
- def claim_vision_tokens!
28
- @history.reject(&:vision_tokens_claimed?).map(&:claim_vision_tokens!).compact.sum
29
- end
30
-
31
27
  def add(message)
32
28
  return false unless message&.valid?
33
29
  return false if @history.any? { message.id == _1.id}
@@ -10,17 +10,6 @@ module OpenAI
10
10
  kwargs.each_pair { public_send("#{_1}=", _2) }
11
11
  @role = :user
12
12
  @timestamp = Time.now.to_i
13
- @vision_tokens_claimed = !image
14
- end
15
-
16
- def vision_tokens_claimed?
17
- @vision_tokens_claimed
18
- end
19
-
20
- def claim_vision_tokens!
21
- # binding.pry
22
- @vision_tokens_claimed = true
23
- image&.tokens
24
13
  end
25
14
 
26
15
  def valid?
data/lib/open_ai/model.rb CHANGED
@@ -6,19 +6,18 @@ module OpenAI
6
6
  max_context: 128_000,
7
7
  prompt_price: 0.005,
8
8
  completion_price: 0.015,
9
- vision_price: 0.005
9
+ vision: true
10
10
  },
11
11
  "gpt-3.5-turbo": {
12
12
  max_context: 16385,
13
13
  prompt_price: 0.0005,
14
- completion_price: 0.0015,
15
- vision_price: 0
14
+ completion_price: 0.0015
16
15
  }
17
16
  }
18
17
 
19
- attr_accessor :max_context, :prompt_price, :completion_price, :vision_price
18
+ attr_accessor :max_context, :prompt_price, :completion_price
20
19
 
21
- [:max_context, :prompt_price, :completion_price, :vision_price].each do |attr|
20
+ [:max_context, :prompt_price, :completion_price].each do |attr|
22
21
  define_method(attr) do
23
22
  MODEL_INFO[@model][attr]
24
23
  end
@@ -37,21 +36,19 @@ module OpenAI
37
36
  end
38
37
 
39
38
  def has_vision?
40
- MODEL_INFO[@model][:vision_price].positive?
39
+ MODEL_INFO[@model][:vision]
41
40
  end
42
41
 
43
- def request_cost(prompt_tokens:, completion_tokens:, vision_tokens:, current_thread:)
42
+ def request_cost(prompt_tokens:, completion_tokens:, current_thread:)
44
43
  prompt_cost = prompt_tokens * prompt_price / 1000
45
44
  completion_cost = completion_tokens * completion_price / 1000
46
- vision_cost = vision_tokens * vision_price / 1000
47
45
 
48
- total = prompt_cost + completion_cost + vision_cost
46
+ total = prompt_cost + completion_cost
49
47
  thread_total = current_thread.total_cost
50
48
 
51
49
  info = "\n\n" + {
52
50
  prompt: "#{prompt_tokens} tokens (#{prompt_cost.round(5)}$)",
53
51
  completion: "#{completion_tokens} tokens (#{completion_cost.round(5)}$)",
54
- vision: "#{vision_tokens} tokens (#{vision_cost.round(5)}$)",
55
52
  total: "#{total.round(5)}$",
56
53
  total_for_this_conversation: "#{(thread_total + total).round(5)}$",
57
54
  max_context: max_context
data/open_ai_bot.gemspec CHANGED
@@ -8,7 +8,7 @@ require_relative "lib/ext/in"
8
8
 
9
9
  Gem::Specification.new do |spec|
10
10
  spec.name = "open_ai_bot"
11
- spec.version = "0.3.2"
11
+ spec.version = "0.3.3"
12
12
  spec.authors = ["bulgakke"]
13
13
  spec.email = ["vvp835@yandex.ru"]
14
14
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: open_ai_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - bulgakke