lammy 0.2.0 → 0.3.0

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: '0992b774797e59eeae152cacb65110b83cec70002e6afb7a40153ae05f942490'
4
- data.tar.gz: d2680e0acfc73a28f89e5468a9d4292cd2a4bc9573a5570b9c40b86e3ffa8a14
3
+ metadata.gz: 9225fc482f95ed862d6e12bc4541731c8854127900e0bfe369075ef1092fae8e
4
+ data.tar.gz: 720ce8849858edb0832c34b0b10ef736c6353b12daa1e5cecf68c137de94a91d
5
5
  SHA512:
6
- metadata.gz: ee429f696a2dfcf9f79582db94bdf696c6b4900f903880daddc48d32d9ea13c60a76138b2e47dc47d9c9efb9ed94196af1221827fbcd3c0b9e5b2384d74b2611
7
- data.tar.gz: d44d1b6161a805fce9f5da44ac481b909c1edfccd50eb74a61c3498e55642da5782637b1105c07408594de46b1162f5ac7004bdca6bc03caccac4ac48f190f28
6
+ metadata.gz: 83be8412698ad307dba650aaa54e230cf9b47ee9e140e9dac1d26c2927f28b43649ac9b2e6196154a09b8b608a04b8fb72e7c0792e2a6bd799a2ff1edd339494
7
+ data.tar.gz: 9add86016f31a13416848ff64a7b9eeea03808b9220b239b029049c1ffc04796a9253f71dfac623928b8eddacbd8ffa182a243fd1a7c50c5a5ade6bdc8a68b50
data/lib/lammy/chat.rb CHANGED
@@ -28,8 +28,8 @@ module L
28
28
 
29
29
  case settings[:model]
30
30
  when *OpenAI::MODELS
31
- client = OpenAI.new
32
- client.chat(settings, user_message, @system_message)
31
+ client = OpenAI.new(settings)
32
+ client.chat(user_message, @system_message)
33
33
  else
34
34
  raise "Unsupported model: #{settings[:model]}"
35
35
  end
@@ -37,8 +37,8 @@ module L
37
37
 
38
38
  case settings[:model]
39
39
  when *OpenAI::EMBEDDINGS
40
- client = OpenAI.new
41
- client.embeddings(settings, input)
40
+ client = OpenAI.new(settings)
41
+ client.embeddings(input)
42
42
  else
43
43
  raise "Unsupported model: #{settings[:model]}"
44
44
  end
data/lib/lammy/openai.rb CHANGED
@@ -15,8 +15,14 @@ module L
15
15
  text-embedding-3-small text-embedding-3-large text-embedding-ada-002
16
16
  ].freeze
17
17
 
18
+ attr_reader :settings
19
+
20
+ def initialize(settings)
21
+ @settings = settings
22
+ end
23
+
18
24
  # Generate a response with support for structured output
19
- def chat(settings, user_message, system_message = nil)
25
+ def chat(user_message, system_message = nil)
20
26
  schema = schema(settings)
21
27
  response = client.chat(
22
28
  parameters: {
@@ -34,7 +40,7 @@ module L
34
40
  # OpenAI’s text embeddings measure the relatedness of text strings. An embedding is a vector of floating point
35
41
  # numbers. The distance between two vectors measures their relatedness. Small distances suggest high relatedness
36
42
  # and large distances suggest low relatedness.
37
- def embeddings(settings, chunks)
43
+ def embeddings(chunks)
38
44
  responses = chunks.map do |chunk|
39
45
  response = client.embeddings(
40
46
  parameters: { model: settings[:model], dimensions: settings[:dimensions], input: chunk }
@@ -65,6 +71,8 @@ module L
65
71
  end
66
72
 
67
73
  def client
74
+ return settings[:client] if settings[:client]
75
+
68
76
  @client ||= ::OpenAI::Client.new(
69
77
  access_token: ENV.fetch('OPENAI_ACCESS_TOKEN')
70
78
  )
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lammy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kamil Nicieja