feat: supports functions in bash/js/python/ruby (#6)

This commit is contained in:
sigoden
2024-05-19 22:43:49 +08:00
committed by GitHub
parent be279dcd32
commit 03c4b69822
15 changed files with 543 additions and 92 deletions
Executable
+36
View File
@@ -0,0 +1,36 @@
#!/usr/bin/env ruby
require 'json'
require 'pathname'
def load_module
if __FILE__.end_with?("cmd.rb")
func_name = ARGV[0]
else
func_name = Pathname.new(__FILE__).basename.to_s
end
func_name += '.rb' unless func_name.end_with?('.rb')
func_path = File.expand_path("../rb/#{func_name}", __dir__)
begin
return require_relative func_path
rescue LoadError
puts "Invalid ruby function: #{func_name}"
exit 1
end
end
if ENV["LLM_FUNCTION_DECLARATE"]
declarate = load_module.method(:declarate)
puts JSON.pretty_generate(declarate.call)
else
begin
data = JSON.parse(ENV["LLM_FUNCTION_DATA"])
rescue JSON::ParserError
puts "Invalid LLM_FUNCTION_DATA"
exit 1
end
execute = load_module.method(:execute)
execute.call(data)
end