Class: DeepAgentsRb::Models::Claude
- Defined in:
- lib/deepagents/deepagentsrb/models.rb
Overview
Anthropic Claude model adapter
Instance Method Summary collapse
- #generate(prompt, messages) ⇒ Object
-
#initialize(api_key: nil, model: "claude-3-sonnet-20240229", client: nil) ⇒ Claude
constructor
A new instance of Claude.
- #stream_generate(prompt, messages, &block) ⇒ Object
Constructor Details
#initialize(api_key: nil, model: "claude-3-sonnet-20240229", client: nil) ⇒ Claude
Returns a new instance of Claude.
20 21 22 23 24 25 |
# File 'lib/deepagents/deepagentsrb/models.rb', line 20 def initialize(api_key: nil, model: "claude-3-sonnet-20240229", client: nil) require 'anthropic' @api_key = api_key || ENV['ANTHROPIC_API_KEY'] @model = model @client = client || Anthropic::Client.new(api_key: @api_key) end |
Instance Method Details
#generate(prompt, messages) ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/deepagents/deepagentsrb/models.rb', line 27 def generate(prompt, ) response = @client.( model: @model, max_tokens: 4096, messages: , system: prompt ) response.content[0].text end |
#stream_generate(prompt, messages, &block) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/deepagents/deepagentsrb/models.rb', line 37 def stream_generate(prompt, , &block) response = @client.( model: @model, max_tokens: 4096, messages: , system: prompt, stream: true ) full_text = "" response.each do |chunk| if chunk.type == "content_block_delta" && chunk.delta.type == "text" full_text += chunk.delta.text yield chunk.delta.text if block_given? end end full_text end |