intelli_agent 0.2.5 → 0.2.6

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/intelli_agent/openai.rb +28 -11
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dbcf865d2efd8e333b82c32d8f90d7537a6175520d25c1da6d4596f28ae0d5b5
4
- data.tar.gz: b135ada1b6204ef416763c4bfdbc6a1e837a1c06bdd0ae97bc42b90562c46055
3
+ metadata.gz: ae2989e4aa78c7e8021870de24d9455c43921003de84e988f315ca9227fa5994
4
+ data.tar.gz: 76aa773505ac530d040f8f3a5f36014e1bfa63ff33849aefd1372cbda28accd0
5
5
  SHA512:
6
- metadata.gz: 19d6ef84e6d8071daa0e041666fd8c9b80462dc9c1b48cecfc39d26384741156d8bd16be8ed7068d0d400bfaa4c67f396bcec34985d3296ac6b8516c5c770025
7
- data.tar.gz: 847d5813d222b4b01bb8697040b88e7fa18ef9a02b479dfbf4b4dd86a8a22ef84c32f6358c078551f84fb6c3d6993157983660e3731b25f96122b292a1d3a5ad
6
+ metadata.gz: eb30c67aef8853173dac4552c5c78563498daf495491d8c68b7e9737911d50ea962ead0fd286a474ff6c3cd16558420f46c0a6c2dc8322a0aaf89565bf6d18d3
7
+ data.tar.gz: 2c5d843ae8b8ef3cb047f49b48f6dd9af950ee43416d7e832cdd173fd9233bbb559687a3770d3cf48aab442188f1826edc9e5e4e54995b2791a02ce9f13d6a9b
@@ -1,6 +1,10 @@
1
1
  module IntelliAgent::OpenAI
2
- BASIC_MODEL = ENV.fetch('OPENAI_BASIC_MODEL', 'gpt-4o-mini')
3
- ADVANCED_MODEL = ENV.fetch('OPENAI_ADVANCED_MODEL', 'gpt-4o-2024-08-06')
2
+ GPT_BASIC_MODEL = ENV.fetch('OPENAI_GPT_BASIC_MODEL', 'gpt-4o-mini')
3
+ GPT_ADVANCED_MODEL = ENV.fetch('OPENAI_GPT_ADVANCED_MODEL', 'gpt-4o-2024-08-06')
4
+
5
+ O1_BASIC_MODEL = ENV.fetch('OPENAI_O1_BASIC_MODEL', 'o1-mini')
6
+ O1_ADVANCED_MODEL = ENV.fetch('OPENAI_O1_ADVANCED_MODEL', 'o1-preview')
7
+
4
8
  MAX_TOKENS = ENV.fetch('OPENAI_MAX_TOKENS', 16_383).to_i
5
9
 
6
10
  module ResponseExtender
@@ -36,7 +40,7 @@ module IntelliAgent::OpenAI
36
40
  response
37
41
  end
38
42
 
39
- def self.vision(prompt:, image_url:, model: :advanced, response_format: nil, max_tokens: MAX_TOKENS)
43
+ def self.vision(prompt:, image_url:, model: :gpt_advanced, response_format: nil, max_tokens: MAX_TOKENS)
40
44
  model = select_model(model)
41
45
  messages = [{ type: :text, text: prompt },
42
46
  { type: :image_url, image_url: { url: image_url } }]
@@ -51,19 +55,28 @@ module IntelliAgent::OpenAI
51
55
  response
52
56
  end
53
57
 
54
- def self.single_prompt(prompt:, model: :basic, response_format: nil, max_tokens: MAX_TOKENS, tools: nil, function_run_context: self)
58
+ def self.single_prompt(prompt:, model: :gpt_basic, response_format: nil, max_tokens: MAX_TOKENS, tools: nil, function_run_context: self)
55
59
  chat(messages: [{ user: prompt }], model:, response_format:, max_tokens:, tools:, function_run_context:)
56
60
  end
57
61
 
58
- def self.single_chat(system:, user:, model: :basic, response_format: nil, max_tokens: MAX_TOKENS, tools: nil, function_run_context: nil)
62
+ def self.single_chat(system:, user:, model: :gpt_basic, response_format: nil, max_tokens: MAX_TOKENS, tools: nil, function_run_context: nil)
59
63
  chat(messages: [{ system: }, { user: }], model:, response_format:, max_tokens:, tools:, function_run_context:)
60
64
  end
61
65
 
62
- def self.chat(messages:, model: :basic, response_format: nil, max_tokens: MAX_TOKENS, tools: nil, function_run_context: self)
66
+ def self.chat(messages:, model: :gpt_basic, response_format: nil, max_tokens: MAX_TOKENS, tools: nil, function_run_context: self)
63
67
  model = select_model(model)
68
+
69
+ # o1 models doesn't support max_tokens, instead max_completion_tokens
70
+ is_o1_model = model.start_with?('o1')
71
+ max_completion_tokens = max_tokens if is_o1_model
72
+
64
73
  messages = parse_messages(messages)
65
74
 
66
- parameters = { model:, messages:, max_tokens: }
75
+ parameters = { model:, messages: }
76
+
77
+ parameters[:max_completion_tokens] = max_completion_tokens if is_o1_model
78
+ parameters[:max_tokens] = max_completion_tokens unless is_o1_model
79
+
67
80
  parameters[:response_format] = { type: 'json_object' } if response_format.eql?(:json)
68
81
  parameters[:tools] = tools if tools
69
82
 
@@ -95,10 +108,14 @@ module IntelliAgent::OpenAI
95
108
 
96
109
  def self.select_model(model)
97
110
  case model
98
- when :basic
99
- BASIC_MODEL
100
- when :advanced
101
- ADVANCED_MODEL
111
+ when :gpt_basic
112
+ GPT_BASIC_MODEL
113
+ when :gpt_advanced
114
+ GPT_ADVANCED_MODEL
115
+ when :o1_basic
116
+ O1_BASIC_MODEL
117
+ when :o1_advanced
118
+ O1_ADVANCED_MODEL
102
119
  else
103
120
  model
104
121
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: intelli_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gedean Dias
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2027-09-23 00:00:00.000000000 Z
11
+ date: 2027-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-openai
@@ -83,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  requirements: []
86
- rubygems_version: 3.5.19
86
+ rubygems_version: 3.5.20
87
87
  signing_key:
88
88
  specification_version: 4
89
89
  summary: A helper layer over Anthropic and OpenAI API