ticuna 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6f8432d211478403205701bfc2d400682b39822afcc6770f8ef47d72b4b9f629
4
- data.tar.gz: da612d12ad040786645a2d2c6adbdf6fa3b7174c6ace9ce161d4664d392ac040
3
+ metadata.gz: ad184878c7d2fd8d8ee366a2de9996588b74ed1729bc21cc0b22fab7ffe7abb5
4
+ data.tar.gz: 4f4fae314169358a091dbb9dfafdc712807ec3f35b27634434d06b587d6080b6
5
5
  SHA512:
6
- metadata.gz: 63c00a6456386c6dfce93c685ae6b830aac6d1831b08adb1b9d369cef4bd96c351bb5d920ed8e83fa70b6008b487316bc52d48dd3d3d45eb80075b54b0b4516b
7
- data.tar.gz: 72dc55c412e243792e70d9cc7de5802dc6f62af134219858c5a7907902c6b337d0d3268109e3ebba76e5ca8ac0203efb204eab75265b6dd4d61ca28e248c7890
6
+ metadata.gz: c5a0f5ced928c16bcefd52df2a904fa07c895f724aa49eb4621b99b97247034da6a8b64167297bc480e322faf667b5e8c3864f0dc8a4d31099a535c721159464
7
+ data.tar.gz: e7d4fe0589f6d82554968f2a095048ac41c33f16c7ffb078e96d95024d3ddc52d13c6ab6dd218650ebbd1eec2d28e2f30d95c1820f63168ea6948ac68013f721
data/CHANGELOG.md CHANGED
@@ -25,3 +25,7 @@
25
25
 
26
26
  ## [0.2.4] - 2025-10-13
27
27
  - Fix errors with model name
28
+
29
+ ## [0.2.5] - 2025-10-13
30
+ - Better messages
31
+ - Add `errors?` method
data/lib/ticuna/llm.rb CHANGED
@@ -40,7 +40,7 @@ module Ticuna
40
40
  [{ role: "user", content: message }]
41
41
  end
42
42
 
43
- model_string = resolve_model(model)
43
+ model_string = detect_llm_model(model)
44
44
 
45
45
  Ticuna::Response.new(
46
46
  @provider.ask_with_messages(messages, stream: stream, model: model_string, output_format: output_format, &block)
@@ -49,15 +49,11 @@ module Ticuna
49
49
 
50
50
  private
51
51
 
52
- def resolve_model(model)
52
+ def detect_llm_model(model)
53
53
  return model if model.is_a?(String)
54
54
  return Ticuna::Providers::MODELS[model] if Ticuna::Providers::MODELS.key?(model)
55
55
 
56
- available_models = Ticuna::Providers::MODELS.flat_map do |provider, models|
57
- models.keys.map { |m| ":#{m} (#{provider})" }
58
- end.join(", ")
59
-
60
- raise "Model ':#{model}' not found. Available models: #{available_models}"
56
+ raise "\n\n\tLLM Model ':#{model}' not found.\n\tAvailable models: #{Ticuna::Providers::MODELS.keys.join(", ")}\n"
61
57
  end
62
58
 
63
59
  class << self
@@ -4,10 +4,10 @@ require "json"
4
4
 
5
5
  module Ticuna
6
6
  class Response
7
- attr_reader :data
7
+ attr_reader :data, :errors, :parsed
8
8
 
9
9
  def initialize(raw)
10
- parsed =
10
+ @parsed =
11
11
  case raw
12
12
  when String
13
13
  begin
@@ -21,7 +21,8 @@ module Ticuna
21
21
  raise ArgumentError, "Ticuna::Response only accepts Hash or String, received: #{raw.class}"
22
22
  end
23
23
 
24
- @data = deep_symbolize_keys(parsed)
24
+ @data = deep_symbolize_keys(@parsed)
25
+ @errors = deep_symbolize_keys(@parsed["error"] || [])
25
26
  end
26
27
 
27
28
  def [](key)
@@ -36,9 +37,14 @@ module Ticuna
36
37
  @data.inspect
37
38
  end
38
39
 
40
+ def errors?
41
+ !errors.empty?
42
+ end
43
+
39
44
  def method_missing(name, *args, &block)
40
45
  value = @data[name]
41
46
  return wrap(value) if @data.key?(name)
47
+
42
48
  super
43
49
  end
44
50
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ticuna
4
- VERSION = "0.2.4"
4
+ VERSION = "0.2.5"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ticuna
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chirana