summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/data/cartridges/models/maritaca/maritalk.yml12
-rw-r--r--spec/data/cartridges/models/ollama/llama2.yml10
-rw-r--r--spec/tasks/run-model.rb39
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'
+)