luo 0.2.1 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/luo/error_handle.rb +35 -0
- data/lib/luo/helpers.rb +1 -10
- data/lib/luo/version.rb +1 -1
- data/lib/luo.rb +2 -0
- data/templates/prompts/luo_error_analyze.md.erb +9 -0
- metadata +5 -4
- data/lib/luo/init_project._rb +0 -71
- /data/templates/{NoteBookGemfile → NotebookGemfile} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12b18554758f8e56d6ed51c06479d5a7adb5307281ba070f55bbf7b8aeff7f39
|
4
|
+
data.tar.gz: e60117cc08d28b7e0be2e256bba326b727ef823e3cc050cadcf71bc2aa85b5ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce08dc5d0136f7eff5939601544608caa4c5d8b06ba170fd56df3c69f393a96f6ea925254eb06f1cae545b3b2ed82367dedc5fbbc21d2c37e691c3f331507097
|
7
|
+
data.tar.gz: 203eb46cb4602bcbeaa985981322a95d682bff93c5f9382f38ba96af425233e31f7f8981f3d3e509543ef224d7916a63c6711d8e1c28a2800c065c06a72db75b
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Luo
|
4
|
+
module ErrorHandle
|
5
|
+
def raise(err, *args)
|
6
|
+
Luo::ErrorHandle.gpt_error_analyze(err)
|
7
|
+
super
|
8
|
+
end
|
9
|
+
|
10
|
+
def fail(*args)
|
11
|
+
raise(*args)
|
12
|
+
end
|
13
|
+
|
14
|
+
def gpt_error_analyze(error)
|
15
|
+
if error
|
16
|
+
error_message = error.message
|
17
|
+
backtrace = error.backtrace
|
18
|
+
|
19
|
+
context = {
|
20
|
+
message: error_message,
|
21
|
+
backtrace: backtrace
|
22
|
+
}
|
23
|
+
Helpers.display_md(" **你的代码出错了!正在使用 ChatGPT 分析错误原因,请稍后 ... **")
|
24
|
+
|
25
|
+
messages = Messages.create
|
26
|
+
.system(text: "你是一个ruby专家,根据用户的输入,你需要分析出错误的原因,然后给出解决方案。")
|
27
|
+
.user(prompt: Prompts.luo_error_analyze, context: context)
|
28
|
+
response = OpenAI.new.chat(messages)
|
29
|
+
|
30
|
+
Helpers.display_md(response)
|
31
|
+
puts "\n"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/luo/helpers.rb
CHANGED
@@ -20,16 +20,7 @@ module Luo
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def display_md(text)
|
23
|
-
|
24
|
-
raise "Please install iruby gem first."
|
25
|
-
end
|
26
|
-
|
27
|
-
if gem_exists?('rouge')
|
28
|
-
renderer = HTMLwithRouge.new
|
29
|
-
else
|
30
|
-
renderer = Redcarpet::Render::HTML.new
|
31
|
-
end
|
32
|
-
|
23
|
+
renderer = HTMLwithRouge.new
|
33
24
|
markdown = Redcarpet::Markdown.new(renderer,
|
34
25
|
autolink: true,
|
35
26
|
tables: true,
|
data/lib/luo/version.rb
CHANGED
data/lib/luo.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: luo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MJ
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-05-
|
11
|
+
date: 2023-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: zeitwerk
|
@@ -233,9 +233,9 @@ files:
|
|
233
233
|
- lib/luo/cli/init_base.rb
|
234
234
|
- lib/luo/cli/init_notebook.rb
|
235
235
|
- lib/luo/configurable.rb
|
236
|
+
- lib/luo/error_handle.rb
|
236
237
|
- lib/luo/helpers.rb
|
237
238
|
- lib/luo/http_client.rb
|
238
|
-
- lib/luo/init_project._rb
|
239
239
|
- lib/luo/loader.rb
|
240
240
|
- lib/luo/marqo.rb
|
241
241
|
- lib/luo/memory_history.rb
|
@@ -269,7 +269,7 @@ files:
|
|
269
269
|
- sig/luo/prompts.rbs
|
270
270
|
- sig/luo/xinghuo.rbs
|
271
271
|
- templates/AppGemfile
|
272
|
-
- templates/
|
272
|
+
- templates/NotebookGemfile
|
273
273
|
- templates/application.rb
|
274
274
|
- templates/env
|
275
275
|
- templates/init.rb
|
@@ -279,6 +279,7 @@ files:
|
|
279
279
|
- templates/prompts/agent_tool_input.md.erb
|
280
280
|
- templates/prompts/luo_commit.md.erb
|
281
281
|
- templates/prompts/luo_error.md.erb
|
282
|
+
- templates/prompts/luo_error_analyze.md.erb
|
282
283
|
- templates/prompts/xinghuo_agent_input.md.erb
|
283
284
|
- templates/prompts/xinghuo_response_error.md.erb
|
284
285
|
- templates/test.yml
|
data/lib/luo/init_project._rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Luo
|
4
|
-
module InitProject
|
5
|
-
extend self
|
6
|
-
|
7
|
-
def project_template_file(name)
|
8
|
-
File.join(File.dirname(__FILE__), 'projects', name)
|
9
|
-
end
|
10
|
-
def create_bundle_file()
|
11
|
-
puts "create Gemfile"
|
12
|
-
version = Luo::VERSION
|
13
|
-
unless File.exist?('Gemfile')
|
14
|
-
gemfile = <<-GEMFILE.gsub(/^ */, '')
|
15
|
-
source 'https://rubygems.org'
|
16
|
-
gem 'luo'
|
17
|
-
gem 'iruby'
|
18
|
-
gem 'pry'
|
19
|
-
GEMFILE
|
20
|
-
File.open('Gemfile', 'w') do |file|
|
21
|
-
file.puts(gemfile)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def create_templates
|
27
|
-
puts "create templates directory"
|
28
|
-
unless File.directory?('templates')
|
29
|
-
FileUtils.cp_r(File.join(__dir__, 'projects', 'prompts'), 'prompts')
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def create_agent_directory
|
34
|
-
puts "create agent directory"
|
35
|
-
FileUtils.mkdir_p('agents')
|
36
|
-
end
|
37
|
-
|
38
|
-
def create_application
|
39
|
-
puts "create application"
|
40
|
-
copy_file('init.rb', 'init.rb')
|
41
|
-
copy_file('application.rb', 'app.rb')
|
42
|
-
copy_file('env', '.env')
|
43
|
-
copy_file('time_agent.rb', 'agents/time_agent.rb')
|
44
|
-
copy_file('weather_agent.rb', 'agents/weather_agent.rb')
|
45
|
-
copy_file('luo.ipynb', 'luo.ipynb')
|
46
|
-
copy_file("test.yml", "test.yml")
|
47
|
-
end
|
48
|
-
|
49
|
-
def copy_file(file_name, target_file_name)
|
50
|
-
puts "copy #{file_name} to #{target_file_name}"
|
51
|
-
unless File.exist?(target_file_name)
|
52
|
-
FileUtils.copy_file(project_template_file(file_name), target_file_name)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def run()
|
57
|
-
create_bundle_file
|
58
|
-
create_templates
|
59
|
-
create_agent_directory
|
60
|
-
create_application
|
61
|
-
|
62
|
-
Helpers.print_md """
|
63
|
-
## Luo Project Initialized
|
64
|
-
You can now run `bundle install` to install the dependencies
|
65
|
-
and edit .env to add your API key.
|
66
|
-
and `bundle exec ruby application.rb` to run the project.
|
67
|
-
"""
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
71
|
-
end
|
File without changes
|