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 +4 -4
- data/lib/lammy/chat.rb +2 -2
- data/lib/lammy/embeddings.rb +2 -2
- data/lib/lammy/openai.rb +10 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9225fc482f95ed862d6e12bc4541731c8854127900e0bfe369075ef1092fae8e
|
4
|
+
data.tar.gz: 720ce8849858edb0832c34b0b10ef736c6353b12daa1e5cecf68c137de94a91d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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(
|
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
|
data/lib/lammy/embeddings.rb
CHANGED
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(
|
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(
|
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
|
)
|