dspy-gemini 1.0.3 → 1.0.4
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 +4 -4
- data/README.md +1 -0
- data/lib/dspy/gemini/lm/adapters/gemini_adapter.rb +3 -4
- data/lib/dspy/gemini/version.rb +1 -1
- data/lib/dspy/gemini.rb +0 -3
- metadata +17 -6
- data/lib/dspy/gemini/guardrails.rb +0 -25
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3c7ede5395b56b65a0bc339369a0d8c998ecf4316d77f2863d39aacb9d550b41
|
|
4
|
+
data.tar.gz: 84d6adac01d530c2a907f4f220724f403fb9b078b085b223466287c85db17a39
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7bec96952b3d33201d6c2ad5d7e0351a6bb390f0d35ad689acdde02cebf5aba25dee0152c62c2a3db83f6be64dcf93e336e2f99a05aed92ed624bd1cdf3dd836
|
|
7
|
+
data.tar.gz: ec1455e4602379edd52634ce533b1b8bba8807df230f42de7003161804bb0ec987b5e66038d0d000d4fbc470becbe277e0d0ae7871dcda6a37b08f06ba1e0e80
|
data/README.md
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
**Build reliable LLM applications in idiomatic Ruby using composable, type-safe modules.**
|
|
10
10
|
|
|
11
11
|
DSPy.rb is the Ruby port of Stanford's [DSPy](https://dspy.ai). Instead of wrestling with brittle prompt strings, you define typed signatures and let the framework handle the rest. Prompts become functions. LLM calls become predictable.
|
|
12
|
+
The `1.x` line is the stable release track for production Ruby LLM applications.
|
|
12
13
|
|
|
13
14
|
```ruby
|
|
14
15
|
require 'dspy'
|
|
@@ -5,9 +5,6 @@ require 'json'
|
|
|
5
5
|
require 'dspy/lm/vision_models'
|
|
6
6
|
require 'dspy/lm/adapter'
|
|
7
7
|
|
|
8
|
-
require 'dspy/gemini/guardrails'
|
|
9
|
-
DSPy::Gemini::Guardrails.ensure_gemini_installed!
|
|
10
|
-
|
|
11
8
|
module DSPy
|
|
12
9
|
module Gemini
|
|
13
10
|
module LM
|
|
@@ -52,7 +49,9 @@ module DSPy
|
|
|
52
49
|
# Validate vision support if images are present
|
|
53
50
|
if contains_images?(normalized_messages)
|
|
54
51
|
DSPy::LM::VisionModels.validate_vision_support!('gemini', model)
|
|
55
|
-
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
if contains_media?(normalized_messages)
|
|
56
55
|
normalized_messages = format_multimodal_messages(normalized_messages, 'gemini')
|
|
57
56
|
end
|
|
58
57
|
|
data/lib/dspy/gemini/version.rb
CHANGED
data/lib/dspy/gemini.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dspy-gemini
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vicente Reig Rincón de Arellano
|
|
@@ -15,28 +15,40 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version:
|
|
18
|
+
version: 0.30.1
|
|
19
|
+
- - "<"
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '2.0'
|
|
19
22
|
type: :runtime
|
|
20
23
|
prerelease: false
|
|
21
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
25
|
requirements:
|
|
23
26
|
- - ">="
|
|
24
27
|
- !ruby/object:Gem::Version
|
|
25
|
-
version:
|
|
28
|
+
version: 0.30.1
|
|
29
|
+
- - "<"
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: '2.0'
|
|
26
32
|
- !ruby/object:Gem::Dependency
|
|
27
33
|
name: gemini-ai
|
|
28
34
|
requirement: !ruby/object:Gem::Requirement
|
|
29
35
|
requirements:
|
|
30
36
|
- - ">="
|
|
31
37
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
38
|
+
version: 4.3.0
|
|
39
|
+
- - "<"
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
version: '5.0'
|
|
33
42
|
type: :runtime
|
|
34
43
|
prerelease: false
|
|
35
44
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
45
|
requirements:
|
|
37
46
|
- - ">="
|
|
38
47
|
- !ruby/object:Gem::Version
|
|
39
|
-
version:
|
|
48
|
+
version: 4.3.0
|
|
49
|
+
- - "<"
|
|
50
|
+
- !ruby/object:Gem::Version
|
|
51
|
+
version: '5.0'
|
|
40
52
|
description: Provides the GeminiAdapter so Gemini-compatible providers can be added
|
|
41
53
|
to DSPy.rb projects independently of the core gem.
|
|
42
54
|
email:
|
|
@@ -49,7 +61,6 @@ files:
|
|
|
49
61
|
- README.md
|
|
50
62
|
- lib/dspy/gemini.rb
|
|
51
63
|
- lib/dspy/gemini/README.md
|
|
52
|
-
- lib/dspy/gemini/guardrails.rb
|
|
53
64
|
- lib/dspy/gemini/lm/adapters/gemini_adapter.rb
|
|
54
65
|
- lib/dspy/gemini/lm/schema_converter.rb
|
|
55
66
|
- lib/dspy/gemini/version.rb
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'dspy/lm/errors'
|
|
4
|
-
|
|
5
|
-
module DSPy
|
|
6
|
-
module Gemini
|
|
7
|
-
class Guardrails
|
|
8
|
-
SUPPORTED_GEMINI_VERSIONS = "~> 4.3".freeze
|
|
9
|
-
|
|
10
|
-
def self.ensure_gemini_installed!
|
|
11
|
-
require 'gemini-ai'
|
|
12
|
-
|
|
13
|
-
spec = Gem.loaded_specs["gemini-ai"]
|
|
14
|
-
unless spec && Gem::Requirement.new(SUPPORTED_GEMINI_VERSIONS).satisfied_by?(spec.version)
|
|
15
|
-
msg = <<~MSG
|
|
16
|
-
DSPY requires `gemini-ai` gem #{SUPPORTED_GEMINI_VERSIONS}.
|
|
17
|
-
Please Install or upgrade it with `bundle add gemini-ai --version "#{SUPPORTED_GEMINI_VERSIONS}"`.
|
|
18
|
-
MSG
|
|
19
|
-
raise DSPy::LM::UnsupportedVersionError, msg
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|