1. Go to this page and download the library: Download elliotjreed/ai 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/ */
elliotjreed / ai example snippets
$claude = new ElliotJReed\AI\Claude\Prompt('API KEY', 'claude-3-5-haiku-latest');
$chatGPT = new ElliotJReed\AI\ChatGPT\Prompt('API KEY', 'gpt-4o-mini');
$claude = new ElliotJReed\AI\Claude\Prompt('API KEY', 'claude-3-5-haiku-latest', new \GuzzleHttp\Client());
$chatGPT = new ElliotJReed\AI\ChatGPT\Prompt('API KEY', 'gpt-4o-mini', new \GuzzleHttp\Client());
public function __construct(private \ElliotJReed\AI\Claude\PromptInterface $aiClient)
{
}
pt = new ElliotJReed\AI\Claude\Prompt('API KEY', 'claude-3-5-haiku-latest');
$request = (new ElliotJReed\AI\Entity\Request())
->setTextPrompt('Which programming language will outlive humanity?');
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL;
pt = new ElliotJReed\AI\Claude\Prompt('API KEY', 'claude-3-5-haiku-latest');
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are using expert software development knowledge to help software developers of varying levels of experience')
->setTextPrompt('Which programming language will outlive humanity?');
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL;
pt = new ElliotJReed\AI\Claude\Prompt('API KEY', 'claude-3-5-haiku-latest');
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are responding to customer queries from a web form.')
->setSystemPrompt((new ElliotJReed\AI\Entity\StructuredPrompt())
->setContext('The customer is querying via a form on a e-commerce website based in the United Kingdom.')
->setInstructions('Respond using the data from the FAQs in a friendly and accurate way using British English.')
->setData('FAQs. Q: Do you offer next day deliver. A: Yes we do, however we do not offer same day delivery.')
->setExamples(['Hello! Unfortunately we are not open on Bank Holidays.']))
->setTextPrompt((new ElliotJReed\AI\Entity\StructuredPrompt())
->setContext('The current date and time is: ' . (new DateTime())->format('Y-m-d H:i:s'))
->setUserInput('Can you deliver today at my address?'))
->setMaximumTokens(300);
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL;
pt = new ElliotJReed\AI\Claude\Prompt('API KEY', 'claude-3-5-haiku-latest');
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are responding as a philosopher and ethicist who favours utilitarian methodology when answering ethical questions.')
->setTextPrompt('Should we all be vegan?')
->setTemperature(0.8)
->setMaximumTokens(600);
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL;
$secondRequest = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are responding as a philosopher and ethicist who favours utilitarian methodology when answering ethical questions.')
->setTextPrompt('Elaborate on your response, providing 3 bullet points for arguing in favour of veganism, and 3 bullet points arguing against.')
->setTemperature(0.8)
->setMaximumTokens(600)
->setHistory($response->getHistory());
$secondResponse = $prompt->send($secondRequest);
echo 'Used input tokens: ' . $secondResponse->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $secondResponse->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $secondResponse->getContent() . \PHP_EOL;
pt = new ElliotJReed\AI\Claude\Prompt('API KEY', 'claude-3-5-haiku-latest');
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are using expert flower knowledge to identify individual flowers and foliage in bouquets of flowers when the user uploads one or more photographs.')
->setImages([
'https://media.bunches.co.uk/products/586x586/ffreir-category.jpg',
base64_encode(file_get_contents(__DIR__ . '/bouquet.webp'))
])
->setMaximumTokens(300);
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL;
pt = new ElliotJReed\AI\Claude\Prompt('API KEY', 'claude-3-5-haiku-latest');
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are using expert flower knowledge to identify individual flowers and foliage in bouquets of flowers when the use uploads one or more photographs. Identify just the contents in bullet points.')
->setImages([
'https://media.bunches.co.uk/products/586x586/ffreir-category.jpg',
base64_encode(file_get_contents(__DIR__ . '/bouquet.webp'))
])
->setMaximumTokens(300);
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL;
$secondRequest = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are using expert flower knowledge to identify individual flowers and foliage in bouquets of flowers when the use uploads one or more photographs. Identify just the contents in bullet points.')
->setTextPrompt('List only the types of flower or foliage with no additional description.')
->setMaximumTokens(300)
->setHistory($response->getHistory());
$secondResponse = $prompt->send($secondRequest);
echo 'Used input tokens: ' . $secondResponse->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $secondResponse->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $secondResponse->getContent() . \PHP_EOL;
pt = new ElliotJReed\AI\ChatGPT\Prompt('API KEY', 'gpt-4o-mini');
$request = (new ElliotJReed\AI\Entity\Request())
->setTextPrompt('Which programming language will outlive humanity?');
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL;
pt = new ElliotJReed\AI\ChatGPT\Prompt('API KEY', 'gpt-4o-mini');
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are using expert software development knowledge to help software developers of varying levels of experience')
->setTextPrompt('Which programming language will outlive humanity?');
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL;
pt = new ElliotJReed\AI\ChatGPT\Prompt('API KEY', 'gpt-4o-mini');
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are responding to customer queries from a web form.')
->setSystemPrompt((new ElliotJReed\AI\Entity\StructuredPrompt())
->setContext('The customer is querying via a form on a e-commerce website based in the United Kingdom.')
->setInstructions('Respond using the data from the FAQs in a friendly and accurate way using British English.')
->setData('FAQs. Q: Do you offer next day deliver. A: Yes we do, however we do not offer same day delivery.')
->setExamples(['Hello! Unfortunately we are not open on Bank Holidays.']))
->setTextPrompt((new ElliotJReed\AI\Entity\StructuredPrompt())
->setContext('The current date and time is: ' . (new DateTime())->format('Y-m-d H:i:s'))
->setUserInput('Can you deliver today at my address?'))
->setMaximumTokens(300);
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL;
pt = new ElliotJReed\AI\ChatGPT\Prompt('API KEY', 'gpt-4o-mini');
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are responding as a philosopher and ethicist who favours utilitarian methodology when answering ethical questions.')
->setTextPrompt('Should we all be vegan?')
->setTemperature(0.8)
->setMaximumTokens(600);
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL;
$secondRequest = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are responding as a philosopher and ethicist who favours utilitarian methodology when answering ethical questions.')
->setTextPrompt('Elaborate on your response, providing 3 bullet points for arguing in favour of veganism, and 3 bullet points arguing against.')
->setTemperature(0.8)
->setMaximumTokens(600)
->setHistory($response->getHistory());
$secondResponse = $prompt->send($secondRequest);
echo 'Used input tokens: ' . $secondResponse->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $secondResponse->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $secondResponse->getContent() . \PHP_EOL;
pt = new ElliotJReed\AI\Claude\Prompt('API KEY', 'claude-3-5-haiku-latest');
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are using expert flower knowledge to identify individual flowers and foliage in bouquets of flowers when the user uploads one or more photographs.')
->setImages([
'https://media.bunches.co.uk/products/586x586/ffreir-category.jpg',
base64_encode(file_get_contents(__DIR__ . '/bouquet.webp'))
])
->setMaximumTokens(300);
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL;
pt = new ElliotJReed\AI\Claude\Prompt('API KEY', 'claude-3-5-haiku-latest');
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are using expert flower knowledge to identify individual flowers and foliage in bouquets of flowers when the use uploads one or more photographs. Identify just the contents in bullet points.')
->setImages([
'https://media.bunches.co.uk/products/586x586/ffreir-category.jpg',
base64_encode(file_get_contents(__DIR__ . '/bouquet.webp'))
])
->setMaximumTokens(300);
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL;
$secondRequest = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are using expert flower knowledge to identify individual flowers and foliage in bouquets of flowers when the use uploads one or more photographs. Identify just the contents in bullet points.')
->setTextPrompt('List only the types of flower or foliage with no additional description.')
->setMaximumTokens(300)
->setHistory($response->getHistory());
$secondResponse = $prompt->send($secondRequest);
echo 'Used input tokens: ' . $secondResponse->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $secondResponse->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $secondResponse->getContent() . \PHP_EOL;
pt = new ElliotJReed\AI\Double\ClaudePromptMock('API KEY', 'test-model');
$prompt->response = 'Mocked response here!'
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are using expert software development knowledge to help software developers of varying levels of experience')
->setTextPrompt('Which programming language will outlive humanity?');
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL; // Output: 'Mocked response here!'
print_r($response->getHistory());
pt = new ElliotJReed\AI\Double\ChatGPTPromptMock('API KEY', 'test-model');
$prompt->response = 'Mocked response here!'
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are using expert software development knowledge to help software developers of varying levels of experience')
->setTextPrompt('Which programming language will outlive humanity?');
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL; // Output: 'Mocked response here!'
print_r($response->getHistory());
= new GuzzleHttp\Handler\MockHandler([new GuzzleHttp\Psr7\Response(200, [], '{
"id": "msg_01Bblahblahnaughtygoose",
"type": "message",
"role": "assistant",
"model": "claude-3-5-haiku-latest",
"content": [
{
"type": "text",
"text": "Mocked response here!"
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 100,
"output_tokens": 20
}
}
')]);
$client = new GuzzleHttp\Client([
'base_uri' => 'https://0.0.0.0',
'handler' => GuzzleHttp\HandlerStack::create($mock)
]);
$prompt = new ElliotJReed\AI\Claude\Prompt('API KEY', 'test-model', $client);
$prompt->response = 'Mocked response here!'
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are using expert software development knowledge to help software developers of varying levels of experience')
->setTextPrompt('Which programming language will outlive humanity?');
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL; // Output: 'Mocked response here!'
print_r($response->getHistory());
= new GuzzleHttp\Handler\MockHandler([new GuzzleHttp\Psr7\Response(200, [], '{
"id": "chatcmpl-happymoosegoesboopboop",
"object": "chat.completion",
"created": 1723486738,
"model": "gpt-4o-mini-2024-07-18",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "PHP will likely outlive humanity due to it being generally great and loved by all. It could easily last another 7 million years, powering what is left of the planet once all of humanity has migrated to Pluto for reasons of nostalgia.",
"refusal": null
},
"logprobs": null,
"finish_reason": "length"
}
],
"usage": {
"prompt_tokens": 60,
"completion_tokens": 29,
"total_tokens": 89
},
"system_fingerprint": "fp_boopityboop"
}')]);
$client = new GuzzleHttp\Client([
'base_uri' => 'https://0.0.0.0',
'handler' => GuzzleHttp\HandlerStack::create($mock)
]);
$prompt = new ElliotJReed\AI\ChatGPT\Prompt('API KEY', 'test-model', $client);
$prompt->response = 'Mocked response here!'
$request = (new ElliotJReed\AI\Entity\Request())
->setSystemPrompt('You are using expert software development knowledge to help software developers of varying levels of experience')
->setTextPrompt('Which programming language will outlive humanity?');
$response = $prompt->send($request);
echo 'Used input tokens: ' . $response->getUsage()->getInputTokens() . \PHP_EOL;
echo 'Used output tokens: ' . $response->getUsage()->getOutputTokens() . \PHP_EOL;
echo 'Response from AI: ' . $response->getContent() . \PHP_EOL; // Output: 'Mocked response here!'
print_r($response->getHistory());
bash
php composer.phar install
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.