cpee-llm 1.0.1 → 1.0.2
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/cpee-llm.gemspec +2 -1
- data/lib/cpee/llm/dataflow.rb +0 -2
- data/lib/cpee/llm/functions.rb +18 -29
- data/lib/cpee/llm/implementation.rb +0 -3
- data/lib/cpee/llm/rubyllm_requests.rb +0 -2
- metadata +15 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4e0d18f88f4bc0727522bc34d61c10df0e565d1eb07c741d5205cdf2028b1b8b
|
|
4
|
+
data.tar.gz: 00e8d8cd775a32eed1a95b0b10497c506af54cfc20c9eafd37a1f0b971af5c78
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7f687a3d87195bc7780ec21c21ad5b24dbbaf8b406c5268b41fe991a3bf47c4bcbf9298bb3cdf227d9e0be80aad852add68d868023ba03ff52f0db07d39207d1
|
|
7
|
+
data.tar.gz: 00d10455ce802848328d76d9f6312260d6ffba07639348218dc91ef9d1720af07673f32d55599201eb3d3701fc4bed75c9a63d813bff39ca568720c6d3d5f7cf
|
data/cpee-llm.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = "cpee-llm"
|
|
3
|
-
s.version = "1.0.
|
|
3
|
+
s.version = "1.0.2"
|
|
4
4
|
s.platform = Gem::Platform::RUBY
|
|
5
5
|
s.license = "LGPL-3.0-or-later"
|
|
6
6
|
s.summary = "CPEE Conversational Agents"
|
|
@@ -26,4 +26,5 @@ Gem::Specification.new do |s|
|
|
|
26
26
|
s.add_runtime_dependency 'typhoeus', '~> 1.4'
|
|
27
27
|
s.add_runtime_dependency 'ruby_llm', '~> 1.15'
|
|
28
28
|
s.add_runtime_dependency 'rag_embeddings', '~> 0'
|
|
29
|
+
s.add_runtime_dependency 'cpee-transformation', '~> 1.0'
|
|
29
30
|
end
|
data/lib/cpee/llm/dataflow.rb
CHANGED
data/lib/cpee/llm/functions.rb
CHANGED
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
|
|
17
17
|
require_relative 'rubyllm_requests'
|
|
18
18
|
require 'json'
|
|
19
|
+
require 'cpee/transformation/transformer'
|
|
20
|
+
require 'cpee/transformation/cpee'
|
|
21
|
+
require 'cpee/transformation/mermaid'
|
|
19
22
|
|
|
20
23
|
module CPEE
|
|
21
24
|
|
|
@@ -25,34 +28,22 @@ module CPEE
|
|
|
25
28
|
|
|
26
29
|
include RubyLLM_Requests
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
end #}}}
|
|
41
|
-
|
|
42
|
-
def mermaid_to_cpee(mermaid) #{{{
|
|
43
|
-
srv = Riddl::Client.new('http://localhost:9295/cpee/mermaid')
|
|
44
|
-
status, res = srv.post [
|
|
45
|
-
Riddl::Parameter::Complex.new("description","text/plain",mermaid),
|
|
46
|
-
Riddl::Parameter::Simple.new("type","description")
|
|
47
|
-
]
|
|
48
|
-
if status >= 200 && status < 300
|
|
49
|
-
res
|
|
50
|
-
else
|
|
51
|
-
raise 'error when converting mermaid to cpee'
|
|
52
|
-
end
|
|
53
|
-
return res[0].value().read()
|
|
54
|
-
end #}}}
|
|
31
|
+
def cpee_to_mermaid(cpee) #{{{
|
|
32
|
+
model = CPEE::Transformation::Source::CPEE.new(cpee)
|
|
33
|
+
trans = CPEE::Transformation::Transformer.new(model)
|
|
34
|
+
traces = trans.build_traces
|
|
35
|
+
tree = trans.build_tree(false)
|
|
36
|
+
trans.generate_model(CPEE::Transformation::Target::Mermaid)
|
|
37
|
+
end #}}}
|
|
38
|
+
def mermaid_to_cpee(mermaid) #{{{
|
|
39
|
+
model = CPEE::Transformation::Source::Mermaid.new(mermaid)
|
|
40
|
+
|
|
41
|
+
trans = CPEE::Transformation::Transformer.new(model)
|
|
42
|
+
traces = trans.build_traces
|
|
55
43
|
|
|
44
|
+
tree = trans.build_tree(false)
|
|
45
|
+
trans.generate_model(CPEE::Transformation::Target::CPEE)
|
|
46
|
+
end #}}}
|
|
56
47
|
|
|
57
48
|
def generate_model(myllm,user_input,temperature,llms) #{{{
|
|
58
49
|
begin
|
|
@@ -178,10 +169,8 @@ module CPEE
|
|
|
178
169
|
llm_response = inside.empty? ? llm_response : inside[0][1]
|
|
179
170
|
#check if response is json:
|
|
180
171
|
begin
|
|
181
|
-
pp "here"
|
|
182
172
|
hash = JSON.parse(llm_response)
|
|
183
173
|
rescue JSON::ParserError => e
|
|
184
|
-
pp "there"
|
|
185
174
|
raise LLMError.new("Something went wrong and llm was not able to generate Json data flow: #{llm_response}", 500)
|
|
186
175
|
end
|
|
187
176
|
return llm_response
|
|
@@ -41,7 +41,6 @@ module CPEE
|
|
|
41
41
|
temperature = @p.shift.value.read if @p[0]&.name == 'temperature'
|
|
42
42
|
|
|
43
43
|
doc = XML::Smart.string(input_cpee)
|
|
44
|
-
pp temperature
|
|
45
44
|
begin
|
|
46
45
|
output_cpee = if prompt_type == 'generate_noendpoints'
|
|
47
46
|
llm_response = generate_model(myllm,user_input,temperature,llms)
|
|
@@ -64,7 +63,6 @@ module CPEE
|
|
|
64
63
|
|
|
65
64
|
return(Riddl::Parameter::Complex.new("llm_out","application/json",{:user_input => user_input, :used_llm => myllm, :input_cpee => input_cpee, :input_intermediate => doc.root().empty?() ? "" : cpee_to_mermaid(doc.to_s()), :output_intermediate => llm_response, :output_cpee => output_cpee, :status => "Success"}.to_json()))
|
|
66
65
|
rescue LLMError => e
|
|
67
|
-
pp 'here in error'
|
|
68
66
|
@status = e&.http_response || 400
|
|
69
67
|
return Riddl::Parameter::Complex.new("llm_out","application/json",{ :error => "#{prompt_type} #{e.message}"}.to_json())
|
|
70
68
|
end
|
|
@@ -166,7 +164,6 @@ module CPEE
|
|
|
166
164
|
begin
|
|
167
165
|
dataflow = generate_dataflow(myllm,mermaid_model,api_speck,llms)
|
|
168
166
|
rescue LLMError => e
|
|
169
|
-
pp e.http_response
|
|
170
167
|
@status = e.http_response || 400
|
|
171
168
|
return Riddl::Parameter::Complex.new("llm_out","application/json",{:error => e.message}.to_json())
|
|
172
169
|
end
|
|
@@ -92,8 +92,6 @@ module CPEE
|
|
|
92
92
|
def generate_mermaid_model(llm, user_input, temperature, llms={}) #{{{
|
|
93
93
|
max_tokens = 4000
|
|
94
94
|
temperature = temperature.nil? ? 0.1 : temperature.to_f
|
|
95
|
-
pp "here"
|
|
96
|
-
pp temperature
|
|
97
95
|
system_prompt = File.read(File.join(__dir__,"prompts/generate1.txt"))
|
|
98
96
|
user_prompt = "Consider following process description: #{user_input}. Generate a BPMN model in Mermaid.js format."
|
|
99
97
|
new_mermaid = generate_content(llm,system_prompt,user_prompt,max_tokens,temperature,llms)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cpee-llm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nataliia Klievtsova
|
|
@@ -95,6 +95,20 @@ dependencies:
|
|
|
95
95
|
- - "~>"
|
|
96
96
|
- !ruby/object:Gem::Version
|
|
97
97
|
version: '0'
|
|
98
|
+
- !ruby/object:Gem::Dependency
|
|
99
|
+
name: cpee-transformation
|
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
|
101
|
+
requirements:
|
|
102
|
+
- - "~>"
|
|
103
|
+
- !ruby/object:Gem::Version
|
|
104
|
+
version: '1.0'
|
|
105
|
+
type: :runtime
|
|
106
|
+
prerelease: false
|
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
108
|
+
requirements:
|
|
109
|
+
- - "~>"
|
|
110
|
+
- !ruby/object:Gem::Version
|
|
111
|
+
version: '1.0'
|
|
98
112
|
description: see http://cpee.org
|
|
99
113
|
email: n.klievtsova@gmail.com
|
|
100
114
|
executables:
|