|
| 1 | +<?php |
| 2 | + |
| 3 | +use AsyncAws\BedrockRuntime\BedrockRuntimeClient; |
| 4 | +use PhpLlm\LlmChain\Bridge\Anthropic\Claude; |
| 5 | +use PhpLlm\LlmChain\Bridge\Bedrock\PlatformFactory; |
| 6 | +use PhpLlm\LlmChain\Chain; |
| 7 | +use PhpLlm\LlmChain\Chain\Toolbox\ChainProcessor; |
| 8 | +use PhpLlm\LlmChain\Chain\Toolbox\Tool\Wikipedia; |
| 9 | +use PhpLlm\LlmChain\Chain\Toolbox\Toolbox; |
| 10 | +use PhpLlm\LlmChain\Model\Message\Message; |
| 11 | +use PhpLlm\LlmChain\Model\Message\MessageBag; |
| 12 | +use Symfony\Component\Dotenv\Dotenv; |
| 13 | +use Symfony\Component\HttpClient\HttpClient; |
| 14 | + |
| 15 | +require_once dirname(__DIR__, 2).'/vendor/autoload.php'; |
| 16 | +(new Dotenv())->loadEnv(dirname(__DIR__, 2).'/.env'); |
| 17 | + |
| 18 | +if (empty($_ENV['AWS_ACCESS_KEY_ID']) || empty($_ENV['AWS_SECRET_ACCESS_KEY']) || empty($_ENV['AWS_DEFAULT_REGION']) |
| 19 | +) { |
| 20 | + echo 'Please set the AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_DEFAULT_REGION environment variables.'.PHP_EOL; |
| 21 | + exit(1); |
| 22 | +} |
| 23 | + |
| 24 | +$platform = PlatformFactory::create( |
| 25 | + new BedrockRuntimeClient() |
| 26 | +); |
| 27 | +$llm = new Claude(); |
| 28 | + |
| 29 | +$wikipedia = new Wikipedia(HttpClient::create()); |
| 30 | +$toolbox = Toolbox::create($wikipedia); |
| 31 | +$processor = new ChainProcessor($toolbox); |
| 32 | +$chain = new Chain($platform, $llm, [$processor], [$processor]); |
| 33 | + |
| 34 | +$messages = new MessageBag(Message::ofUser('Who is the current chancellor of Germany?')); |
| 35 | +$response = $chain->call($messages); |
| 36 | + |
| 37 | +echo $response->getContent().PHP_EOL; |
0 commit comments