feat: remove ruby (#20)

This commit is contained in:
sigoden
2024-06-06 09:38:48 +08:00
committed by GitHub
parent 4052bc944e
commit d8eeb55578
5 changed files with 1 additions and 130 deletions
-5
View File
@@ -40,10 +40,5 @@ jobs:
with:
python-version: '3.11'
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
- name: Run Test
run: argc test
-2
View File
@@ -9,7 +9,6 @@ LANG_CMDS=( \
"sh:bash" \
"js:node" \
"py:python" \
"rb:ruby" \
)
# @cmd Call the function
@@ -142,7 +141,6 @@ test-functions() {
'sh#may_execute_command#{"command":"echo \"✓\""}' \
'js#may_execute_js_code#{"code":"console.log(\"✓\")"}' \
'py#may_execute_py_code#{"code":"print(\"✓\")"}' \
'rb#may_execute_rb_code#{"code":"puts \"✓\""}' \
)
for test_case in "${test_cases[@]}"; do
+1 -30
View File
@@ -1,6 +1,6 @@
# LLM Functions
This project allows you to enhance large language models (LLMs) with custom functions written in bash/js/python/ruby. Imagine your LLM being able to execute system commands, access web APIs, or perform other complex tasks all triggered by simple, natural language prompts.
This project allows you to enhance large language models (LLMs) with custom functions written in bash/js/python. Imagine your LLM being able to execute system commands, access web APIs, or perform other complex tasks all triggered by simple, natural language prompts.
## Prerequisites
@@ -165,35 +165,6 @@ def execute(data):
exec(data["code"])
```
### Ruby
Create a new ruby script in the [./tools/](./tools/) directory (e.g., `may_execute_rb_code.rb`).
```rb
def declarate
{
"name": "may_execute_rb_code",
"description": "Runs the ruby code.",
"parameters": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Ruby code to execute, such as `puts \"hello world\"`"
}
},
"required": [
"code"
]
}
}
end
def execute(data)
eval(data["code"])
end
```
## License
The project is under the MIT License, Refer to the [LICENSE](https://github.com/sigoden/llm-functions/blob/main/LICENSE) file for detailed information.
-71
View File
@@ -1,71 +0,0 @@
#!/usr/bin/env ruby
require 'json'
require 'pathname'
def parse_argv
func_file = __FILE__
func_data = nil
if func_file.end_with?("tool.rb")
func_file = ARGV[0]
func_data = ARGV[1]
else
func_file = File.basename(func_file)
func_data = ARGV[0]
end
func_file += '.rb' unless func_file.end_with?(".rb")
[func_file, func_data]
end
def load_func(func_file)
func_path = File.expand_path("../tools/#{func_file}", __dir__)
begin
require func_path
rescue LoadError
puts "Invalid function: #{func_file}"
exit 1
end
end
def load_env(file_path)
return unless File.exist?(file_path)
File.readlines(file_path).each do |line|
line = line.strip
next if line.empty? || line.start_with?('#')
key, *value = line.split('=', 2)
ENV[key.strip] = value.join('=').strip
end
rescue StandardError
end
ENV['LLM_FUNCTIONS_DIR'] = Pathname.new(__dir__).join('..').expand_path.to_s
load_env(Pathname.new(ENV['LLM_FUNCTIONS_DIR']).join('.env').to_s)
func_file, func_data = parse_argv
if ENV["LLM_FUNCTION_ACTION"] == "declarate"
load_func(func_file)
puts JSON.pretty_generate(declarate)
else
if func_data.nil?
puts "No json data"
exit 1
end
begin
args = JSON.parse(func_data)
rescue JSON::ParserError
puts "Invalid json data"
exit 1
end
load_func(func_file)
execute(args)
end
-22
View File
@@ -1,22 +0,0 @@
def declarate
{
"name": "may_execute_rb_code",
"description": "Runs the ruby code.",
"parameters": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Ruby code to execute, such as `puts \"hello world\"`"
}
},
"required": [
"code"
]
}
}
end
def execute(data)
eval(data["code"])
end