Module claude_handler

Claude AI Handler Library Generic library to interact with Anthropic Claude API in a simple and flexible way.

Description

Claude AI Handler Library Generic library to interact with Anthropic Claude API in a simple and flexible way. Supports both default configuration and custom configuration per request. Environment variables can be used to override default settings. Uses OTP 27 json module for JSON encoding/decoding and httpc for HTTP requests.

Data Types

claude_result()

claude_result() = {ok, binary()} | {error, term()}

config()

config() = #{endpoint => string(), api_key => binary(), model => binary(), temperature => float(), max_tokens => integer(), system_prompt => binary(), additional_options => map()}

message()

message() = #{role => binary(), content => binary()}

messages()

messages() = [message()]

Function Index

chat/1
chat/2 Chat completion using messages format with custom configuration.
default_config/0
format_prompt/2
generate/1
generate/2
generate_with_context/2
generate_with_context/3
get_env_config/0 Get configuration from environment variables with fallback to defaults.
merge_config/2
print_result/1

Function Details

chat/1

chat(Messages::messages()) -> claude_result()

chat/2

chat(Messages::messages(), Config::config()) -> claude_result()

Chat completion using messages format with custom configuration. Note: Claude API uses 'system' as a separate parameter, not in messages array.

default_config/0

default_config() -> config()

format_prompt/2

format_prompt(Template::string(), Args::list()) -> binary()

generate/1

generate(Prompt::string() | binary()) -> claude_result()

generate/2

generate(Prompt::string() | binary(), Config::config()) -> claude_result()

generate_with_context/2

generate_with_context(Context::string() | binary(), Prompt::string() | binary()) -> claude_result()

generate_with_context/3

generate_with_context(Context::string() | binary(), Prompt::string() | binary(), Config::config()) -> claude_result()

get_env_config/0

get_env_config() -> config()

Get configuration from environment variables with fallback to defaults. Environment variables: - ANTHROPIC_API_KEY or CLAUDE_API_KEY: Claude API key (required) - CLAUDE_ENDPOINT: Claude API endpoint (default: https://api.anthropic.com/v1/messages) - CLAUDE_MODEL: Model name to use (default: claude-sonnet-4-20250514) - CLAUDE_TEMPERATURE: Temperature for generation (default: 0.7) - CLAUDE_MAX_TOKENS: Maximum tokens to generate (default: 1000) - CLAUDE_SYSTEM_PROMPT: System prompt to use

merge_config/2

merge_config(BaseConfig::config(), OverrideConfig::config()) -> config()

print_result/1

print_result(X1::claude_result()) -> ok | error


Generated by EDoc