sublayer 0.0.6 → 0.0.7
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/README.md +5 -5
- data/lib/sublayer/components/output_adapters.rb +15 -1
- data/lib/sublayer/providers/claude.rb +1 -1
- data/lib/sublayer/providers/open_ai.rb +1 -1
- data/lib/sublayer/version.rb +1 -1
- data/sublayer.gemspec +4 -1
- metadata +35 -6
- /data/{examples → lib/sublayer/generators/examples}/code_from_blueprint_generator.rb +0 -0
- /data/{examples → lib/sublayer/generators/examples}/code_from_description_generator.rb +0 -0
- /data/{examples → lib/sublayer/generators/examples}/description_from_code_generator.rb +0 -0
- /data/{examples → lib/sublayer/generators/examples}/invalid_to_valid_json_generator.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07ead9b290805b3d7e173f8e613dd4670bdd304a094cb7a00505ac9d94285b9b
|
4
|
+
data.tar.gz: 89eba4a05eebb012013a68e06f4d44e8a1710db0ea8a808ed03557241f4baf74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6f07414c4a7a2798f2b93133bd921cae8ffe380104f813564109ab16b985dd58c416f6b176f33d75910898b56d47ea98262a1f1035071cb29dddf2f53277b82
|
7
|
+
data.tar.gz: 45953c8a3a63c526bd310f4928a1570210e54e6e1be5718ff50b28041a8e9e93ca175d8d984ca6abd8aa729b87f5c84bf922e547c6a8f22ef62272bd240eade2
|
data/README.md
CHANGED
@@ -26,7 +26,7 @@ Sublayer is model-agnostic and can be used with any AI model. Below are the
|
|
26
26
|
|
27
27
|
Expects you to have an OpenAI API key set in the `OPENAI_API_KEY` environment variable.
|
28
28
|
|
29
|
-
Visit [OpenAI](https://openai.com/product) to get an API key.
|
29
|
+
Visit [OpenAI](https://openai.com/product) to get an API key.
|
30
30
|
|
31
31
|
Usage:
|
32
32
|
```ruby
|
@@ -133,12 +133,12 @@ Generators are responsible for generating specific outputs based on input data.
|
|
133
133
|
They focus on a single generation task and do not perform any actions or complex
|
134
134
|
decision-making. Generators are the building blocks of the Sublayer framework.
|
135
135
|
|
136
|
-
Examples (in the /examples
|
137
|
-
- CodeFromDescriptionGenerator
|
136
|
+
Examples (in the `/lib/sublayer/generators/examples` directory):
|
137
|
+
- `CodeFromDescriptionGenerator`: Generates code based on a description and the
|
138
138
|
technologies used.
|
139
|
-
- DescriptionFromCodeGenerator
|
139
|
+
- `DescriptionFromCodeGenerator`: Generates a description of the code passed in to
|
140
140
|
it.
|
141
|
-
- CodeFromBlueprintGenerator
|
141
|
+
- `CodeFromBlueprintGenerator`: Generates code based on a blueprint, a blueprint
|
142
142
|
description, and a description of the desired code.
|
143
143
|
|
144
144
|
|
@@ -4,7 +4,21 @@ module Sublayer
|
|
4
4
|
attr_reader :name
|
5
5
|
|
6
6
|
def self.create(options)
|
7
|
-
|
7
|
+
klass = if options.has_key?(:class)
|
8
|
+
klass = options[:class]
|
9
|
+
if klass.is_a?(String)
|
10
|
+
klass.constantize
|
11
|
+
elsif klass.is_a?(Class)
|
12
|
+
klass
|
13
|
+
else
|
14
|
+
raise "Invalid :class option"
|
15
|
+
end
|
16
|
+
elsif (type = options[:type])
|
17
|
+
"Sublayer::Components::OutputAdapters::#{type.to_s.camelize}".constantize
|
18
|
+
else
|
19
|
+
raise "Output adapter must be specified with :class or :type"
|
20
|
+
end
|
21
|
+
klass.new(options)
|
8
22
|
end
|
9
23
|
end
|
10
24
|
end
|
@@ -30,7 +30,7 @@ module Sublayer
|
|
30
30
|
response = HTTParty.post(
|
31
31
|
"https://api.anthropic.com/v1/messages",
|
32
32
|
headers: {
|
33
|
-
"x-api-key": ENV
|
33
|
+
"x-api-key": ENV.fetch("ANTHROPIC_API_KEY"),
|
34
34
|
"anthropic-version": "2023-06-01",
|
35
35
|
"content-type": "application/json"
|
36
36
|
},
|
@@ -5,7 +5,7 @@ module Sublayer
|
|
5
5
|
module Providers
|
6
6
|
class OpenAI
|
7
7
|
def self.call(prompt:, output_adapter:)
|
8
|
-
client = ::OpenAI::Client.new(access_token: ENV
|
8
|
+
client = ::OpenAI::Client.new(access_token: ENV.fetch("OPENAI_API_KEY"))
|
9
9
|
|
10
10
|
response = client.chat(
|
11
11
|
parameters: {
|
data/lib/sublayer/version.rb
CHANGED
data/sublayer.gemspec
CHANGED
@@ -17,6 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.metadata["homepage_uri"] = "https://docs.sublayer.com"
|
18
18
|
spec.metadata["documentation_uri"] = "https://docs.sublayer.com"
|
19
19
|
spec.metadata["bug_tracker_uri"] = "https://github.com/sublayerapp/sublayer/issues"
|
20
|
+
spec.metadata["source_code_uri"] = "https://github.com/sublayerapp/sublayer"
|
20
21
|
|
21
22
|
# Specify which files should be added to the gem when it is released.
|
22
23
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
@@ -37,6 +38,8 @@ Gem::Specification.new do |spec|
|
|
37
38
|
spec.add_dependency "httparty"
|
38
39
|
|
39
40
|
spec.add_development_dependency "rspec", "~> 3.12"
|
40
|
-
spec.add_development_dependency "pry", "
|
41
|
+
spec.add_development_dependency "pry", "~> 0.14"
|
42
|
+
spec.add_development_dependency "vcr", "~> 6.0"
|
43
|
+
spec.add_development_dependency "webmock", "~> 3.0"
|
41
44
|
spec.add_development_dependency "clag"
|
42
45
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sublayer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Werner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-04-
|
11
|
+
date: 2024-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-openai
|
@@ -122,6 +122,34 @@ dependencies:
|
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0.14'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: vcr
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '6.0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '6.0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: webmock
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '3.0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '3.0'
|
125
153
|
- !ruby/object:Gem::Dependency
|
126
154
|
name: clag
|
127
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -147,16 +175,16 @@ files:
|
|
147
175
|
- LICENSE
|
148
176
|
- README.md
|
149
177
|
- Rakefile
|
150
|
-
- examples/code_from_blueprint_generator.rb
|
151
|
-
- examples/code_from_description_generator.rb
|
152
|
-
- examples/description_from_code_generator.rb
|
153
|
-
- examples/invalid_to_valid_json_generator.rb
|
154
178
|
- lib/sublayer.rb
|
155
179
|
- lib/sublayer/actions/base.rb
|
156
180
|
- lib/sublayer/agents/base.rb
|
157
181
|
- lib/sublayer/components/output_adapters.rb
|
158
182
|
- lib/sublayer/components/output_adapters/single_string.rb
|
159
183
|
- lib/sublayer/generators/base.rb
|
184
|
+
- lib/sublayer/generators/examples/code_from_blueprint_generator.rb
|
185
|
+
- lib/sublayer/generators/examples/code_from_description_generator.rb
|
186
|
+
- lib/sublayer/generators/examples/description_from_code_generator.rb
|
187
|
+
- lib/sublayer/generators/examples/invalid_to_valid_json_generator.rb
|
160
188
|
- lib/sublayer/providers/claude.rb
|
161
189
|
- lib/sublayer/providers/gemini.rb
|
162
190
|
- lib/sublayer/providers/groq.rb
|
@@ -172,6 +200,7 @@ metadata:
|
|
172
200
|
homepage_uri: https://docs.sublayer.com
|
173
201
|
documentation_uri: https://docs.sublayer.com
|
174
202
|
bug_tracker_uri: https://github.com/sublayerapp/sublayer/issues
|
203
|
+
source_code_uri: https://github.com/sublayerapp/sublayer
|
175
204
|
post_install_message:
|
176
205
|
rdoc_options: []
|
177
206
|
require_paths:
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|