llm_providers 0.2.1 → 0.2.2
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/CHANGELOG.md +6 -0
- data/README.ja.md +25 -3
- data/README.md +25 -3
- data/lib/llm_providers/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f834a22b64b2340ae461021d17a8dc2d0c65ff22182ea57f750c851686d4c152
|
|
4
|
+
data.tar.gz: 4c459fb08e001951fcd04343de74ffff1fb025325bf9ffdd90b95cd03ce5a0b8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d4fede081164f7cb0eb33b954f81c912d514ae32cc71ff020e16dd6ec0c15f98cd98b3657bdbb92264c9760121f7b7c85a90ae58f840a55aacd65d35d6b48ff2
|
|
7
|
+
data.tar.gz: 77b512797ec93a5c08c85eb997bbccd769572ea5e1c901c4393acf0078a9ba8c6375a831bb034878a5a637b91fa83a0feb945611cb00e33353cb0561a9db2462
|
data/CHANGELOG.md
CHANGED
data/README.ja.md
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
| `anthropic` | `ANTHROPIC_API_KEY` | `claude-sonnet-4-5-20250929` |
|
|
23
23
|
| `openai` | `OPENAI_API_KEY` | `gpt-5-mini` |
|
|
24
24
|
| `google` | `GOOGLE_API_KEY` | `gemini-2.5-flash` |
|
|
25
|
-
| `openrouter`
|
|
25
|
+
| `openrouter` | `OPENROUTER_API_KEY` | `anthropic/claude-sonnet-4.5` |
|
|
26
26
|
|
|
27
27
|
## インストール
|
|
28
28
|
|
|
@@ -120,14 +120,32 @@ end
|
|
|
120
120
|
}
|
|
121
121
|
```
|
|
122
122
|
|
|
123
|
+
### OpenRouter
|
|
124
|
+
|
|
125
|
+
OpenRouter を使えば、単一の API で 300 以上のモデルにアクセスできます。この gem が直接サポートしていないプロバイダー(DeepSeek、Meta Llama、Mistral、Qwen など)に最適です。
|
|
126
|
+
|
|
127
|
+
```ruby
|
|
128
|
+
provider = LlmProviders::Providers.build(
|
|
129
|
+
:openrouter,
|
|
130
|
+
model: "deepseek/deepseek-chat",
|
|
131
|
+
app_name: "MyApp",
|
|
132
|
+
app_url: "https://myapp.example.com",
|
|
133
|
+
provider: { order: ["DeepSeek", "Together"], allow_fallbacks: true }
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
# 利用可能なモデル一覧
|
|
137
|
+
models = LlmProviders::Providers::Openrouter.models
|
|
138
|
+
models.each { |m| puts "#{m[:id]} (ctx: #{m[:context_length]})" }
|
|
139
|
+
```
|
|
140
|
+
|
|
123
141
|
### エラーハンドリング
|
|
124
142
|
|
|
125
143
|
```ruby
|
|
126
144
|
begin
|
|
127
145
|
result = provider.chat(messages: messages)
|
|
128
146
|
rescue LlmProviders::ProviderError => e
|
|
129
|
-
puts "エラー: #{e.message}"
|
|
130
|
-
puts "コード: #{e.code}"
|
|
147
|
+
puts "エラー: #{e.message}" # OpenRouter: "[DeepSeek] Model is unavailable"
|
|
148
|
+
puts "コード: #{e.code}" # 例: "anthropic_error", "openrouter_error"
|
|
131
149
|
end
|
|
132
150
|
```
|
|
133
151
|
|
|
@@ -146,6 +164,10 @@ ANTHROPIC_API_KEY=your-key ruby examples/with_tools.rb
|
|
|
146
164
|
# 他のプロバイダー
|
|
147
165
|
OPENAI_API_KEY=your-key ruby examples/simple_chat.rb openai
|
|
148
166
|
GOOGLE_API_KEY=your-key ruby examples/simple_chat.rb google
|
|
167
|
+
|
|
168
|
+
# OpenRouter (DeepSeek, Llama, Mistral など)
|
|
169
|
+
OPENROUTER_API_KEY=your-key ruby examples/simple_chat.rb openrouter deepseek/deepseek-chat
|
|
170
|
+
OPENROUTER_API_KEY=your-key ruby examples/with_tools.rb openrouter meta-llama/llama-3.3-70b-instruct
|
|
149
171
|
```
|
|
150
172
|
|
|
151
173
|
## ライセンス
|
data/README.md
CHANGED
|
@@ -22,7 +22,7 @@ A lightweight, unified interface for multiple LLM providers. Only depends on `fa
|
|
|
22
22
|
| `anthropic` | `ANTHROPIC_API_KEY` | `claude-sonnet-4-5-20250929` |
|
|
23
23
|
| `openai` | `OPENAI_API_KEY` | `gpt-5-mini` |
|
|
24
24
|
| `google` | `GOOGLE_API_KEY` | `gemini-2.5-flash` |
|
|
25
|
-
| `openrouter`
|
|
25
|
+
| `openrouter` | `OPENROUTER_API_KEY` | `anthropic/claude-sonnet-4.5` |
|
|
26
26
|
|
|
27
27
|
## Installation
|
|
28
28
|
|
|
@@ -120,14 +120,32 @@ Every `chat` call returns a hash with:
|
|
|
120
120
|
}
|
|
121
121
|
```
|
|
122
122
|
|
|
123
|
+
### OpenRouter
|
|
124
|
+
|
|
125
|
+
OpenRouter gives you access to 300+ models through a single API — ideal for providers not directly supported by this gem (DeepSeek, Meta Llama, Mistral, Qwen, etc.).
|
|
126
|
+
|
|
127
|
+
```ruby
|
|
128
|
+
provider = LlmProviders::Providers.build(
|
|
129
|
+
:openrouter,
|
|
130
|
+
model: "deepseek/deepseek-chat",
|
|
131
|
+
app_name: "MyApp",
|
|
132
|
+
app_url: "https://myapp.example.com",
|
|
133
|
+
provider: { order: ["DeepSeek", "Together"], allow_fallbacks: true }
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
# List available models
|
|
137
|
+
models = LlmProviders::Providers::Openrouter.models
|
|
138
|
+
models.each { |m| puts "#{m[:id]} (ctx: #{m[:context_length]})" }
|
|
139
|
+
```
|
|
140
|
+
|
|
123
141
|
### Error Handling
|
|
124
142
|
|
|
125
143
|
```ruby
|
|
126
144
|
begin
|
|
127
145
|
result = provider.chat(messages: messages)
|
|
128
146
|
rescue LlmProviders::ProviderError => e
|
|
129
|
-
puts "Error: #{e.message}"
|
|
130
|
-
puts "Code: #{e.code}"
|
|
147
|
+
puts "Error: #{e.message}" # OpenRouter: "[DeepSeek] Model is unavailable"
|
|
148
|
+
puts "Code: #{e.code}" # e.g., "anthropic_error", "openrouter_error"
|
|
131
149
|
end
|
|
132
150
|
```
|
|
133
151
|
|
|
@@ -146,6 +164,10 @@ ANTHROPIC_API_KEY=your-key ruby examples/with_tools.rb
|
|
|
146
164
|
# Other providers
|
|
147
165
|
OPENAI_API_KEY=your-key ruby examples/simple_chat.rb openai
|
|
148
166
|
GOOGLE_API_KEY=your-key ruby examples/simple_chat.rb google
|
|
167
|
+
|
|
168
|
+
# OpenRouter (DeepSeek, Llama, Mistral, etc.)
|
|
169
|
+
OPENROUTER_API_KEY=your-key ruby examples/simple_chat.rb openrouter deepseek/deepseek-chat
|
|
170
|
+
OPENROUTER_API_KEY=your-key ruby examples/with_tools.rb openrouter meta-llama/llama-3.3-70b-instruct
|
|
149
171
|
```
|
|
150
172
|
|
|
151
173
|
## License
|