Class: Chorus::Client
- Inherits:
-
Object
- Object
- Chorus::Client
- Defined in:
- lib/chorus/client.rb
Overview
Thin wrapper around the Anthropic Messages API. This is the ONLY class in Chorus allowed to perform HTTP calls — every agent goes through it.
Constant Summary collapse
- API_URL =
"https://api.anthropic.com/v1/messages"- ANTHROPIC_VERSION =
"2023-06-01"- DEFAULT_MODEL =
"claude-opus-4-8"- DEFAULT_MAX_TOKENS =
4096
Instance Method Summary collapse
-
#chat(system_prompt:, messages:, max_tokens: DEFAULT_MAX_TOKENS) ⇒ String
Sends a single-turn (or multi-turn) request to the Messages API.
-
#initialize(api_key: ENV.fetch("ANTHROPIC_API_KEY", nil), model: DEFAULT_MODEL) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(api_key: ENV.fetch("ANTHROPIC_API_KEY", nil), model: DEFAULT_MODEL) ⇒ Client
Returns a new instance of Client.
28 29 30 31 32 33 |
# File 'lib/chorus/client.rb', line 28 def initialize(api_key: ENV.fetch("ANTHROPIC_API_KEY", nil), model: DEFAULT_MODEL) raise MissingAPIKeyError if api_key.nil? || api_key.empty? @api_key = api_key @model = model end |
Instance Method Details
#chat(system_prompt:, messages:, max_tokens: DEFAULT_MAX_TOKENS) ⇒ String
Sends a single-turn (or multi-turn) request to the Messages API.
41 42 43 44 |
# File 'lib/chorus/client.rb', line 41 def chat(system_prompt:, messages:, max_tokens: DEFAULT_MAX_TOKENS) response = (system_prompt: system_prompt, messages: , max_tokens: max_tokens) extract_text(response) end |