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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 660628c05ed3e6beb83cbf9e9e938ef587a8678beaf6f7c9c9b40046d511d863
4
- data.tar.gz: cb83106d26fa942f1bae1122969c41a17e298de5cf58966a0b718ae8fc1fc56b
3
+ metadata.gz: f834a22b64b2340ae461021d17a8dc2d0c65ff22182ea57f750c851686d4c152
4
+ data.tar.gz: 4c459fb08e001951fcd04343de74ffff1fb025325bf9ffdd90b95cd03ce5a0b8
5
5
  SHA512:
6
- metadata.gz: c45d5e3e44a900f721c9314d7f62afda073808f24b73abd9dc305f12079f3509f71ac4abe6d895128ed7a26cf8751254989ec272a52f6031b6161c4c8ad61c7b
7
- data.tar.gz: 7086766e28a072c3f6a9b47ac7acc48ba237a09f6bea29e3c1a63b287dd4ecbf07b97d8ef380c9c3823fa8a1144eb50ffd5495a59f69efdd0e5ff01ecacffbee
6
+ metadata.gz: d4fede081164f7cb0eb33b954f81c912d514ae32cc71ff020e16dd6ec0c15f98cd98b3657bdbb92264c9760121f7b7c85a90ae58f840a55aacd65d35d6b48ff2
7
+ data.tar.gz: 77b512797ec93a5c08c85eb997bbccd769572ea5e1c901c4393acf0078a9ba8c6375a831bb034878a5a637b91fa83a0feb945611cb00e33353cb0561a9db2462
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.2] - 2026-02-27
4
+
5
+ ### Fixed
6
+
7
+ - Update READMEs: remove experimental label from OpenRouter, add OpenRouter usage docs (headers, routing, models API, error handling)
8
+
3
9
  ## [0.2.1] - 2026-02-27
4
10
 
5
11
  ### Fixed
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` *(実験的)* | `OPENROUTER_API_KEY` | `anthropic/claude-sonnet-4.5` |
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}" # 例: "anthropic_error", "openai_error"
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` *(experimental)* | `OPENROUTER_API_KEY` | `anthropic/claude-sonnet-4.5` |
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}" # e.g., "anthropic_error", "openai_error"
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LlmProviders
4
- VERSION = "0.2.1"
4
+ VERSION = "0.2.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: llm_providers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - kaba