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());