openai-toolable 0.1.0 → 0.1.1

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: '0087364577f6cf8ca019db6c85e945f22268215cfeec1645d2057f65e521f2e6'
4
- data.tar.gz: 85d1280a72de872827da87f64269310537a8673b7e85d950732dd60db527dd46
3
+ metadata.gz: 8c41c79bec1d11195ab214396b4b9d1f011585f3d8e27e093ee0e28d149630fb
4
+ data.tar.gz: bd0b91cdc281a50b2c5b2805d715f318eb0b7e58ca733d83c2093f5f26ef9bc4
5
5
  SHA512:
6
- metadata.gz: 6d03ff67dd8d3da0a2cfb0110ce25143c975cd4468704e432d7fab474887a5e4da43764ed28f9575a05c2d7174d4ed3f89afaf97eee640d259b4e8bbf57fd24b
7
- data.tar.gz: 4f79f0fde24df17c8c76e86e9cba087ba81700f551c7d0f67f8a05c1656303f1550f6666fa864fbf6fff5b1361e4bf3dc9fb41d5f47e083ea8431a0bd937a04a
6
+ metadata.gz: 2ebb21547acbd24b2212db7a0942cc2be6c142a707a7e3bc60fc27075c0873c57ed8b48bb758282ba875a6ac86bd7dbc8e914d0514e058ddfc64cb9cef5a6984
7
+ data.tar.gz: 8b09995ec0e4d5ee9037d75478be3b170ea441c4b9f9bd01882e2e4de42ffbe81cf9e93ce598d01a907cbd05d6e514c1d4992ab370e64508af46004a410d5746
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- openai-toolable (0.1.0)
4
+ openai-toolable (0.1.1)
5
5
  openai (~> 0.16.0)
6
6
 
7
7
  GEM
data/examples/simple.rb CHANGED
@@ -3,6 +3,7 @@ require "openai/toolable"
3
3
  # Define a tool
4
4
  weather_tool = Openai::Toolable::ToolFactory.build(
5
5
  name: "get_weather",
6
+ type: "function",
6
7
  description: "Get the current weather in a given location",
7
8
  parameters: [
8
9
  { name: "location", type: :string, description: "The city and state, e.g. San Francisco, CA" },
@@ -18,15 +19,13 @@ tool_handler.register(
18
19
  )
19
20
 
20
21
  # Create a client
21
- client = OpenAI::Client.new
22
+ client = OpenAI::Client.new(api_key: OPENAI_API_KEY)
22
23
 
23
24
  # Create a chat completion
24
- response = client.chat(
25
- parameters: {
25
+ response = client.chat.completions.create(
26
26
  model: "gpt-3.5-turbo",
27
27
  messages: [{ role: "user", content: "What's the weather like in Boston?" }],
28
28
  tools: [weather_tool.to_json]
29
- }
30
29
  )
31
30
 
32
31
  # Handle the response
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Openai
4
4
  module Toolable
5
- VERSION = "0.1.0"
5
+ VERSION = "0.1.1"
6
6
  end
7
7
  end
@@ -7,10 +7,11 @@ module Openai
7
7
  class Error < StandardError; end
8
8
 
9
9
  class Tool
10
- attr_reader :name, :description, :parameters
10
+ attr_reader :name, :type, :description, :parameters
11
11
 
12
- def initialize(name:, description:, parameters: [])
12
+ def initialize(name:, type:, description:, parameters: [])
13
13
  @name = name
14
+ @type = type
14
15
  @description = description
15
16
  @parameters = parameters.map do |param|
16
17
  Parameter.new(
@@ -25,6 +26,7 @@ module Openai
25
26
  def to_json
26
27
  {
27
28
  name: name,
29
+ type: type,
28
30
  description: description,
29
31
  parameters: {
30
32
  type: :object,
@@ -38,8 +40,8 @@ module Openai
38
40
  end
39
41
 
40
42
  class ToolFactory
41
- def self.build(name:, description:, parameters: [])
42
- Tool.new(name: name, description: description, parameters: parameters)
43
+ def self.build(name:, type:, description:, parameters: [])
44
+ Tool.new(name: name, type: type, description: description, parameters: parameters)
43
45
  end
44
46
  end
45
47
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openai-toolable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Russell Van Curen