llm_optimizer 0.1.6 → 0.1.7

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: 3a0ec4bdfa750f16155927a3e00c9fe2c1c39da7e85866eb6c65855ac6eebaef
4
- data.tar.gz: 0e5820f0503fbef14dc1ad858dfaa7527e3dba278fbf7640df377d82fbc61ad7
3
+ metadata.gz: 853ac31b04c7eec26e0976f8691c7c053305c6b10192ae33ece7c5cab93e71f2
4
+ data.tar.gz: 8ead9117a7fea7093166f43566932222946a682b3c1ace2268891b461e88cea0
5
5
  SHA512:
6
- metadata.gz: 8c2f376e324a7678063e66a89b6ad89e476bd699fd3a816c7c91a79b16ba40e09111cfdfacb1206946e2d111122e63cf70babc09a0467821723b2b286eda235a
7
- data.tar.gz: 5bba8c343627f230c13f0671cd8b1374ab0405f6c6369457b92e9093ac1cd2f780797797a26fabdc865981ca1e131b6dc80ae4a97342f3de2f3297255d8e13c9
6
+ metadata.gz: c9393955027ac023f82b3afa2e7604460b4526aa470549f1ca1d71cac7091544af5fc2b8edff54c98852c573b70edf50f3c4f074a266f86e8abc27d6d5d20281
7
+ data.tar.gz: 2bf9b96778fc0fdaec64f3cf86bab4346488a33cd083021a788a408d9d6c304ced23b2961ae1f8f63002739fd44010fec99d194607f46734262e5ffd540b7b4b
data/CHANGELOG.md CHANGED
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.1.7] - 2026-05-05
11
+
12
+ ### Added
13
+ - `schema` configuration option for structured output support
14
+
15
+ ### Fixed
16
+ - Prevented empty or nil LLM responses from being stored in the semantic cache
17
+ - Fixed `NoMethodError` in the caching pipeline by replacing ActiveSupport-dependent `.blank?` with standard Ruby checks
18
+ - Cleaned up duplicated keys in `LlmOptimizer::Configuration`
19
+
10
20
  ## [0.1.6] - 2026-05-04
11
21
 
12
22
  ### Added
@@ -22,13 +22,14 @@ module LlmOptimizer
22
22
  llm_caller
23
23
  embedding_caller
24
24
  classifier_caller
25
- conversation_ttl
26
- system_prompt
27
25
  messages_caller
26
+ system_prompt
27
+ conversation_ttl
28
28
  cache_scope
29
29
  tools
30
30
  with_tools
31
31
  tools_caller
32
+ schema
32
33
  ].freeze
33
34
 
34
35
  # Define readers for all known keys (setters below track explicit sets)
@@ -164,6 +164,7 @@ module LlmOptimizer
164
164
 
165
165
  def store_in_cache(embedding, response, config, token_info = {})
166
166
  return unless config.use_semantic_cache && embedding
167
+ return if response.nil? || response.to_s.strip.empty? # Don't cache empty or nil responses
167
168
 
168
169
  SemanticCache.new(build_redis(config.redis_url),
169
170
  threshold: config.similarity_threshold,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LlmOptimizer
4
- VERSION = "0.1.6"
4
+ VERSION = "0.1.7"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: llm_optimizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - arun kumar