PHP code example of llm-speak / anthropic-claude

1. Go to this page and download the library: Download llm-speak/anthropic-claude library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

llm-speak / anthropic-claude example snippets


use LLMSpeak\Anthropic\ClaudeMessageRequest;

$request = new ClaudeMessageRequest(
    model: 'claude-3-5-sonnet-20241022',
    messages: [
        ['role' => 'user', 'content' => 'Hello, Claude!']
    ]
);

$response = $request->post();

echo $response->getTextContent(); // "Hello! How can I assist you today?"

use LLMSpeak\Anthropic\ClaudeMessageRequest;

$request = new ClaudeMessageRequest(
    model: 'claude-3-5-sonnet-20241022',
    messages: [
        ['role' => 'user', 'content' => 'Explain quantum computing']
    ]
)
->setMaxTokens(1000)
->setTemperature(0.7)
->setSystem('You are a helpful physics professor.')
->setTopK(50)
->setTopP(0.9);

$response = $request->post();

// Access response properties
echo $response->id;              // msg_01ABC123...
echo $response->model;           // claude-3-5-sonnet-20241022
echo $response->stop_reason;     // end_turn
echo $response->getTotalTokens(); // 850

$request = new ClaudeMessageRequest(
    model: 'claude-3-5-sonnet-20241022',
    messages: $messages
)->setMultiple([
    'max_tokens' => 1500,
    'temperature' => 0.8,
    'top_k' => 40,
    'stop_sequences' => ['Human:', 'Assistant:']
]);

$systemPrompt = "You are Claude, an AI assistant created by Anthropic. " .
                "You are helpful, harmless, and honest. " .
                "Provide detailed explanations with examples.";

$request = new ClaudeMessageRequest(
    model: 'claude-3-5-sonnet-20241022',
    messages: [
        ['role' => 'user', 'content' => 'Explain machine learning']
    ]
)->setSystem($systemPrompt);

$response = $request->post();

$tools = [
    [
        'name' => 'get_weather',
        'description' => 'Get current weather for a location',
        'input_schema' => [
            'type' => 'object',
            'properties' => [
                'location' => [
                    'type' => 'string',
                    'description' => 'City and state/country'
                ],
                'unit' => [
                    'type' => 'string',
                    'enum' => ['celsius', 'fahrenheit'],
                    'description' => 'Temperature unit'
                ]
            ],
            '

$request = new ClaudeMessageRequest(
    model: 'claude-3-5-sonnet-20241022',
    messages: [
        ['role' => 'user', 'content' => 'Write a long story about space exploration']
    ]
)
->setStream(true)
->setMaxTokens(2000);

$response = $request->post();

// Stream will be handled by the MessagesEndpoint
// Check response for streaming data format

$request = new ClaudeMessageRequest(
    model: 'claude-3-5-sonnet-20241022',
    messages: $conversationHistory
)
->setMaxTokens(4000)
->setTemperature(0.6)
->setTopK(60)
->setTopP(0.95)
->setStopSequences(['[END]', '###'])
->setMetadata([
    'user_id' => 'user_123',
    'session_id' => 'session_456'
])
->setServiceTier('standard_only');

$response = $request->post();

$response = $request->post();

// Basic response info
$messageId = $response->id;
$modelUsed = $response->model;
$completionReason = $response->stop_reason;

// Content access
$textContent = $response->getTextContent();
$allContent = $response->content; // Raw content array

// Token usage
$inputTokens = $response->getInputTokens();
$outputTokens = $response->getOutputTokens();
$totalTokens = $response->getTotalTokens();

// Completion status
$isComplete = $response->completedNaturally();
$hitTokenLimit = $response->reachedTokenLimit();

// Convert to array for storage/processing
$responseArray = $response->toArray();

use LLMSpeak\Anthropic\ClaudeMessageRequest;
use LLMSpeak\Anthropic\ClaudeMessageResponse;

// Create a mock response
$mockResponse = new ClaudeMessageResponse(
    id: 'msg_test_123',
    type: 'message',
    role: 'assistant',
    content: [
        ['type' => 'text', 'text' => 'Test response']
    ],
    model: 'claude-3-5-sonnet-20241022',
    stop_reason: 'end_turn',
    stop_sequence: null,
    usage: [
        'input_tokens' => 10,
        'output_tokens' => 15
    ]
);

// Test your application logic with the mock
$this->assertEquals('Test response', $mockResponse->getTextContent());