open_ai_bot 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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