diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/data/cartridges/models/maritaca/maritalk.yml | 12 | ||||
-rw-r--r-- | spec/data/cartridges/models/ollama/llama2.yml | 10 | ||||
-rw-r--r-- | spec/tasks/run-model.rb | 39 |
3 files changed, 61 insertions, 0 deletions
diff --git a/spec/data/cartridges/models/maritaca/maritalk.yml b/spec/data/cartridges/models/maritaca/maritalk.yml new file mode 100644 index 0000000..5b99086 --- /dev/null +++ b/spec/data/cartridges/models/maritaca/maritalk.yml @@ -0,0 +1,12 @@ +--- +meta: + symbol: 🦜 + name: Maritaca MariTalk + license: CC0-1.0 + +provider: + id: maritaca + credentials: + api-key: ENV/MARITACA_API_KEY + settings: + model: maritalk diff --git a/spec/data/cartridges/models/ollama/llama2.yml b/spec/data/cartridges/models/ollama/llama2.yml new file mode 100644 index 0000000..7f20753 --- /dev/null +++ b/spec/data/cartridges/models/ollama/llama2.yml @@ -0,0 +1,10 @@ +--- +meta: + symbol: 🦙 + name: Llama 2 through Ollama + license: CC0-1.0 + +provider: + id: ollama + settings: + model: llama2 diff --git a/spec/tasks/run-model.rb b/spec/tasks/run-model.rb new file mode 100644 index 0000000..4b235aa --- /dev/null +++ b/spec/tasks/run-model.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +require 'dotenv/load' + +require 'yaml' + +require_relative '../../ports/dsl/nano-bots' +require_relative '../../logic/helpers/hash' + +def run_model!(cartridge, stream = true) + if stream == false + cartridge[:provider][:options] = {} unless cartridge[:provider].key?(:options) + cartridge[:provider][:options][:stream] = false + + cartridge[:provider][:settings] = {} unless cartridge[:provider].key?(:settings) + cartridge[:provider][:settings][:stream] = false + end + + puts "\n#{cartridge[:meta][:symbol]} #{cartridge[:meta][:name]}\n\n" + + bot = NanoBot.new(cartridge:) + + output = bot.eval('Hi!') do |_content, fragment, _finished, _meta| + print fragment unless fragment.nil? + end + puts '' + puts '-' * 20 + puts '' + puts output + puts '' + puts '*' * 20 +end + +run_model!( + NanoBot::Logic::Helpers::Hash.symbolize_keys( + YAML.safe_load_file(ARGV[0].to_s.strip, permitted_classes: [Symbol]) + ), + ARGV[1].to_s.strip == 'stream' +) |