llmed 0.1.5 → 0.1.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/exe/llmed +7 -3
- data/lib/llmed.rb +11 -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: 8e5acda1d0b919ac5e1224b9a08837b45f8cf34f771703c73d4f9118cf2cf7f1
|
4
|
+
data.tar.gz: b8530ee6ca2e7676165a4c05e636894fe3c0e532bd5d9e1b22a340fb99d311b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4804d236284eb39c49424dbb1b971e36e2c77dc83fc632bc9899599585139ea78c1840782379b653ac942da9e893a32184ec4e4c50c57ab533fd7016af606d1
|
7
|
+
data.tar.gz: 60ae4787f24a46c90106eeff7022cf906e509f31e975cc08046fed84b9b709f55af9a467b4da75467928711830d98d883c31cab380f655ebc4ae2b3555b1be80
|
data/exe/llmed
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
require 'optparse'
|
5
5
|
require 'llmed'
|
6
6
|
|
7
|
-
logger = Logger.new(
|
7
|
+
logger = Logger.new(STDERR)
|
8
8
|
output_dir = './llmed-out'
|
9
9
|
release_dir = output_dir
|
10
10
|
template = <<-TMP
|
@@ -41,13 +41,17 @@ OptionParser.new do |parser|
|
|
41
41
|
parser.on('--release-dir DIR', String) do |path|
|
42
42
|
release_dir = path
|
43
43
|
end
|
44
|
+
|
45
|
+
parser.on('-q', '--quiet') do
|
46
|
+
logger.level = :error
|
47
|
+
end
|
44
48
|
end.parse!
|
45
49
|
|
46
|
-
|
50
|
+
source_code = ARGF.read
|
47
51
|
if ARGF.respond_to?(:path)
|
48
52
|
release_dir = File.dirname(ARGF.path)
|
49
53
|
end
|
50
54
|
|
51
55
|
llmed = LLMed.new(logger: logger)
|
52
|
-
llmed.eval_source
|
56
|
+
llmed.eval_source source_code
|
53
57
|
llmed.compile(output_dir: output_dir, release_dir: release_dir)
|
data/lib/llmed.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require 'pp'
|
5
|
+
require 'openai'
|
5
6
|
require 'langchain'
|
6
7
|
require 'pathname'
|
7
8
|
require 'fileutils'
|
@@ -36,6 +37,12 @@ class LLMed
|
|
36
37
|
not (@message.nil? || @message.empty?)
|
37
38
|
end
|
38
39
|
|
40
|
+
# Example:
|
41
|
+
# context("files") { sh "ls /etc" }
|
42
|
+
def sh(cmd)
|
43
|
+
%x{#{cmd}}
|
44
|
+
end
|
45
|
+
|
39
46
|
# Example:
|
40
47
|
# context("application") { from_file("application.cllmed") }
|
41
48
|
def from_file(path)
|
@@ -71,8 +78,8 @@ You must only modify the following source code:
|
|
71
78
|
# Change the default prompt, input variables: language, source_code
|
72
79
|
# Example:
|
73
80
|
# set_prompt "my new prompt"
|
74
|
-
def set_prompt(prompt)
|
75
|
-
@prompt = Langchain::Prompt::PromptTemplate.new(template: prompt, input_variables:
|
81
|
+
def set_prompt(prompt, input_variables: ["language", "source_code"])
|
82
|
+
@prompt = Langchain::Prompt::PromptTemplate.new(template: prompt, input_variables: input_variables)
|
76
83
|
end
|
77
84
|
|
78
85
|
# Set default language used for all applications.
|
@@ -191,6 +198,8 @@ You must only modify the following source code:
|
|
191
198
|
def compile(output_dir:, release_dir: nil)
|
192
199
|
release_dir = output_dir unless release_dir
|
193
200
|
@applications.each do |app|
|
201
|
+
@logger.info("APPLICATION #{app.name} COMPILING")
|
202
|
+
|
194
203
|
llm = @configuration.llm()
|
195
204
|
system_content = @configuration.prompt(language: app.language, source_code: app.source_code(output_dir, release_dir))
|
196
205
|
messages = [
|