mirror of
https://github.com/symfony/ai.git
synced 2026-03-23 23:42:18 +01:00
Improve bootstrapping and logging in examples
This commit is contained in:
@@ -55,7 +55,13 @@ Every example script is a standalone PHP script that can be run from the command
|
||||
You can run an example by executing the following command:
|
||||
|
||||
```bash
|
||||
php openai/openai/chat.php
|
||||
php openai/chat.php
|
||||
```
|
||||
|
||||
To get more insights into what is happening at runtime, e.g. HTTP and tool calls, you can add `-vv` or `-vvv`:
|
||||
|
||||
```bash
|
||||
php openai/toolcall-stream.php -vvv
|
||||
```
|
||||
|
||||
### Running examples via the example runner
|
||||
@@ -70,8 +76,14 @@ You can run the example runner by executing the following command:
|
||||
./runner
|
||||
```
|
||||
|
||||
If you want to run only examples of a specific subdirectory, you can pass the subdirectory name as an argument:
|
||||
If you only want to run examples of one or multiple specific subdirectories, you can pass the name as an argument:
|
||||
|
||||
```bash
|
||||
./runner openai
|
||||
./runner openai mistral
|
||||
```
|
||||
|
||||
If you only want to run a specific subset of examples, you can use a filter option:
|
||||
|
||||
```bash
|
||||
./runner --filter=toolcall
|
||||
```
|
||||
|
||||
@@ -15,17 +15,12 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
|
||||
require_once dirname(__DIR__).'/../vendor/autoload.php';
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['ALBERT_API_KEY'], $_SERVER['ALBERT_API_URL'])) {
|
||||
echo 'Please set the ALBERT_API_KEY and ALBERT_API_URL environment variable (e.g., https://your-albert-instance.com/v1).'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['ALBERT_API_KEY'], $_SERVER['ALBERT_API_URL']);
|
||||
$platform = PlatformFactory::create(env('ALBERT_API_KEY'), env('ALBERT_API_URL'), http_client());
|
||||
|
||||
$model = new GPT('gpt-4o');
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
|
||||
$documentContext = <<<'CONTEXT'
|
||||
Document: AI Strategy of France
|
||||
|
||||
@@ -14,20 +14,13 @@ use Symfony\AI\Platform\Bridge\Anthropic\Claude;
|
||||
use Symfony\AI\Platform\Bridge\Anthropic\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['ANTHROPIC_API_KEY'])) {
|
||||
echo 'Please set the ANTHROPIC_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['ANTHROPIC_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('ANTHROPIC_API_KEY'), httpClient: http_client());
|
||||
$model = new Claude(Claude::SONNET_37);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a pirate and you write funny.'),
|
||||
Message::ofUser('What is the Symfony framework?'),
|
||||
|
||||
@@ -15,20 +15,13 @@ use Symfony\AI\Platform\Bridge\Anthropic\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\Image;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['ANTHROPIC_API_KEY'])) {
|
||||
echo 'Please set the ANTHROPIC_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['ANTHROPIC_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('ANTHROPIC_API_KEY'), httpClient: http_client());
|
||||
$model = new Claude(Claude::SONNET_37);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are an image analyzer bot that helps identify the content of images.'),
|
||||
Message::ofUser(
|
||||
|
||||
@@ -15,20 +15,13 @@ use Symfony\AI\Platform\Bridge\Anthropic\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\ImageUrl;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['ANTHROPIC_API_KEY'])) {
|
||||
echo 'Please set the ANTHROPIC_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['ANTHROPIC_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('ANTHROPIC_API_KEY'), httpClient: http_client());
|
||||
$model = new Claude(Claude::SONNET_37);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are an image analyzer bot that helps identify the content of images.'),
|
||||
Message::ofUser(
|
||||
|
||||
@@ -15,20 +15,13 @@ use Symfony\AI\Platform\Bridge\Anthropic\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\Document;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['ANTHROPIC_API_KEY'])) {
|
||||
echo 'Please set the ANTHROPIC_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['ANTHROPIC_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('ANTHROPIC_API_KEY'), httpClient: http_client());
|
||||
$model = new Claude(Claude::SONNET_37);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::ofUser(
|
||||
Document::fromFile(dirname(__DIR__, 2).'/fixtures/document.pdf'),
|
||||
|
||||
@@ -15,20 +15,13 @@ use Symfony\AI\Platform\Bridge\Anthropic\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\DocumentUrl;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['ANTHROPIC_API_KEY'])) {
|
||||
echo 'Please set the ANTHROPIC_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['ANTHROPIC_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('ANTHROPIC_API_KEY'), httpClient: http_client());
|
||||
$model = new Claude(Claude::SONNET_37);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::ofUser(
|
||||
new DocumentUrl('https://upload.wikimedia.org/wikipedia/commons/2/20/Re_example.pdf'),
|
||||
|
||||
@@ -14,20 +14,13 @@ use Symfony\AI\Platform\Bridge\Anthropic\Claude;
|
||||
use Symfony\AI\Platform\Bridge\Anthropic\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['ANTHROPIC_API_KEY'])) {
|
||||
echo 'Please set the ANTHROPIC_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['ANTHROPIC_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('ANTHROPIC_API_KEY'), httpClient: http_client());
|
||||
$model = new Claude();
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a thoughtful philosopher.'),
|
||||
Message::ofUser('What is the purpose of an ant?'),
|
||||
|
||||
@@ -17,24 +17,16 @@ use Symfony\AI\Platform\Bridge\Anthropic\Claude;
|
||||
use Symfony\AI\Platform\Bridge\Anthropic\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['ANTHROPIC_API_KEY'])) {
|
||||
echo 'Please set the ANTHROPIC_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['ANTHROPIC_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('ANTHROPIC_API_KEY'), httpClient: http_client());
|
||||
$model = new Claude();
|
||||
|
||||
$wikipedia = new Wikipedia(HttpClient::create());
|
||||
$toolbox = new Toolbox([$wikipedia]);
|
||||
$wikipedia = new Wikipedia(http_client());
|
||||
$toolbox = new Toolbox([$wikipedia], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('Who is the current chancellor of Germany?'));
|
||||
$response = $agent->call($messages);
|
||||
|
||||
@@ -12,21 +12,15 @@
|
||||
use Symfony\AI\Platform\Bridge\Azure\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\Whisper;
|
||||
use Symfony\AI\Platform\Message\Content\Audio;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!isset($_SERVER['AZURE_OPENAI_BASEURL'], $_SERVER['AZURE_OPENAI_WHISPER_DEPLOYMENT'], $_SERVER['AZURE_OPENAI_WHISPER_API_VERSION'], $_SERVER['AZURE_OPENAI_KEY'])) {
|
||||
echo 'Please set the AZURE_OPENAI_BASEURL, AZURE_OPENAI_WHISPER_DEPLOYMENT, AZURE_OPENAI_WHISPER_API_VERSION, and AZURE_OPENAI_KEY environment variables.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
$platform = PlatformFactory::create(
|
||||
$_SERVER['AZURE_OPENAI_BASEURL'],
|
||||
$_SERVER['AZURE_OPENAI_WHISPER_DEPLOYMENT'],
|
||||
$_SERVER['AZURE_OPENAI_WHISPER_API_VERSION'],
|
||||
$_SERVER['AZURE_OPENAI_KEY'],
|
||||
env('AZURE_OPENAI_BASEURL'),
|
||||
env('AZURE_OPENAI_WHISPER_DEPLOYMENT'),
|
||||
env('AZURE_OPENAI_WHISPER_API_VERSION'),
|
||||
env('AZURE_OPENAI_KEY'),
|
||||
http_client(),
|
||||
);
|
||||
$model = new Whisper();
|
||||
$file = Audio::fromFile(dirname(__DIR__, 2).'/fixtures/audio.mp3');
|
||||
|
||||
@@ -14,25 +14,19 @@ use Symfony\AI\Platform\Bridge\Azure\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!isset($_SERVER['AZURE_OPENAI_BASEURL'], $_SERVER['AZURE_OPENAI_GPT_DEPLOYMENT'], $_SERVER['AZURE_OPENAI_GPT_API_VERSION'], $_SERVER['AZURE_OPENAI_KEY'])) {
|
||||
echo 'Please set the AZURE_OPENAI_BASEURL, AZURE_OPENAI_GPT_DEPLOYMENT, AZURE_OPENAI_GPT_API_VERSION, and AZURE_OPENAI_KEY environment variables.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
$platform = PlatformFactory::create(
|
||||
$_SERVER['AZURE_OPENAI_BASEURL'],
|
||||
$_SERVER['AZURE_OPENAI_GPT_DEPLOYMENT'],
|
||||
$_SERVER['AZURE_OPENAI_GPT_API_VERSION'],
|
||||
$_SERVER['AZURE_OPENAI_KEY'],
|
||||
env('AZURE_OPENAI_BASEURL'),
|
||||
env('AZURE_OPENAI_GPT_DEPLOYMENT'),
|
||||
env('AZURE_OPENAI_GPT_API_VERSION'),
|
||||
env('AZURE_OPENAI_KEY'),
|
||||
http_client(),
|
||||
);
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a pirate and you write funny.'),
|
||||
Message::ofUser('What is the Symfony framework?'),
|
||||
|
||||
@@ -14,20 +14,13 @@ use Symfony\AI\Platform\Bridge\Azure\Meta\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\Meta\Llama;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['AZURE_LLAMA_BASEURL'], $_SERVER['AZURE_LLAMA_KEY'])) {
|
||||
echo 'Please set the AZURE_LLAMA_BASEURL and AZURE_LLAMA_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['AZURE_LLAMA_BASEURL'], $_SERVER['AZURE_LLAMA_KEY']);
|
||||
$platform = PlatformFactory::create(env('AZURE_LLAMA_BASEURL'), env('AZURE_LLAMA_KEY'), http_client());
|
||||
$model = new Llama(Llama::V3_3_70B_INSTRUCT);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(Message::ofUser('I am going to Paris, what should I see?'));
|
||||
$response = $agent->call($messages, [
|
||||
'max_tokens' => 2048,
|
||||
|
||||
@@ -11,21 +11,15 @@
|
||||
|
||||
use Symfony\AI\Platform\Bridge\Azure\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\Embeddings;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!isset($_SERVER['AZURE_OPENAI_BASEURL'], $_SERVER['AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT'], $_SERVER['AZURE_OPENAI_EMBEDDINGS_API_VERSION'], $_SERVER['AZURE_OPENAI_KEY'])) {
|
||||
echo 'Please set the AZURE_OPENAI_BASEURL, AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT, AZURE_OPENAI_EMBEDDINGS_API_VERSION, and AZURE_OPENAI_KEY environment variables.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
$platform = PlatformFactory::create(
|
||||
$_SERVER['AZURE_OPENAI_BASEURL'],
|
||||
$_SERVER['AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT'],
|
||||
$_SERVER['AZURE_OPENAI_EMBEDDINGS_API_VERSION'],
|
||||
$_SERVER['AZURE_OPENAI_KEY'],
|
||||
env('AZURE_OPENAI_BASEURL'),
|
||||
env('AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT'),
|
||||
env('AZURE_OPENAI_EMBEDDINGS_API_VERSION'),
|
||||
env('AZURE_OPENAI_KEY'),
|
||||
http_client(),
|
||||
);
|
||||
$embeddings = new Embeddings();
|
||||
|
||||
|
||||
@@ -14,10 +14,8 @@ use Symfony\AI\Platform\Bridge\Anthropic\Claude;
|
||||
use Symfony\AI\Platform\Bridge\Bedrock\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_SERVER['AWS_DEFAULT_REGION'])
|
||||
) {
|
||||
@@ -28,7 +26,7 @@ if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_S
|
||||
$platform = PlatformFactory::create();
|
||||
$model = new Claude('claude-3-7-sonnet-20250219');
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You answer questions in short and concise manner.'),
|
||||
Message::ofUser('What is the Symfony framework?'),
|
||||
|
||||
@@ -14,10 +14,8 @@ use Symfony\AI\Platform\Bridge\Bedrock\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\Meta\Llama;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_SERVER['AWS_DEFAULT_REGION'])
|
||||
) {
|
||||
@@ -28,7 +26,7 @@ if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_S
|
||||
$platform = PlatformFactory::create();
|
||||
$model = new Llama(Llama::V3_2_3B_INSTRUCT);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a pirate and you write funny.'),
|
||||
Message::ofUser('What is the Symfony framework?'),
|
||||
|
||||
@@ -14,10 +14,8 @@ use Symfony\AI\Platform\Bridge\Bedrock\Nova\Nova;
|
||||
use Symfony\AI\Platform\Bridge\Bedrock\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_SERVER['AWS_DEFAULT_REGION'])
|
||||
) {
|
||||
@@ -28,7 +26,7 @@ if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_S
|
||||
$platform = PlatformFactory::create();
|
||||
$model = new Nova(Nova::PRO);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a pirate and you write funny.'),
|
||||
Message::ofUser('What is the Symfony framework?'),
|
||||
|
||||
@@ -15,10 +15,8 @@ use Symfony\AI\Platform\Bridge\Bedrock\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\Image;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_SERVER['AWS_DEFAULT_REGION'])
|
||||
) {
|
||||
@@ -29,7 +27,7 @@ if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_S
|
||||
$platform = PlatformFactory::create();
|
||||
$model = new Claude('claude-3-7-sonnet-20250219');
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are an image analyzer bot that helps identify the content of images.'),
|
||||
Message::ofUser(
|
||||
|
||||
@@ -15,10 +15,8 @@ use Symfony\AI\Platform\Bridge\Bedrock\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\Image;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_SERVER['AWS_DEFAULT_REGION'])
|
||||
) {
|
||||
@@ -29,7 +27,7 @@ if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_S
|
||||
$platform = PlatformFactory::create();
|
||||
$model = new Nova(Nova::PRO);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are an image analyzer bot that helps identify the content of images.'),
|
||||
Message::ofUser(
|
||||
|
||||
@@ -17,11 +17,8 @@ use Symfony\AI\Platform\Bridge\Anthropic\Claude;
|
||||
use Symfony\AI\Platform\Bridge\Bedrock\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_SERVER['AWS_DEFAULT_REGION'])
|
||||
) {
|
||||
@@ -32,10 +29,10 @@ if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_S
|
||||
$platform = PlatformFactory::create();
|
||||
$model = new Claude('claude-3-7-sonnet-20250219');
|
||||
|
||||
$wikipedia = new Wikipedia(HttpClient::create());
|
||||
$wikipedia = new Wikipedia(http_client());
|
||||
$toolbox = new Toolbox([$wikipedia]);
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('Who is the current chancellor of Germany?'));
|
||||
$response = $agent->call($messages);
|
||||
|
||||
@@ -17,11 +17,8 @@ use Symfony\AI\Platform\Bridge\Bedrock\Nova\Nova;
|
||||
use Symfony\AI\Platform\Bridge\Bedrock\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_SERVER['AWS_DEFAULT_REGION'])
|
||||
) {
|
||||
@@ -32,10 +29,10 @@ if (!isset($_SERVER['AWS_ACCESS_KEY_ID'], $_SERVER['AWS_SECRET_ACCESS_KEY'], $_S
|
||||
$platform = PlatformFactory::create();
|
||||
$model = new Nova();
|
||||
|
||||
$wikipedia = new Wikipedia(HttpClient::create());
|
||||
$wikipedia = new Wikipedia(http_client());
|
||||
$toolbox = new Toolbox([$wikipedia]);
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(
|
||||
Message::ofUser('Who is the current chancellor of Germany? Use Wikipedia to find the answer.')
|
||||
|
||||
54
examples/bootstrap.php
Normal file
54
examples/bootstrap.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Psr\Log\LoggerAwareInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Symfony\Component\Console\Logger\ConsoleLogger;
|
||||
use Symfony\Component\Console\Output\ConsoleOutput;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
use Symfony\Contracts\HttpClient\HttpClientInterface;
|
||||
|
||||
require_once __DIR__.'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(__DIR__.'/.env');
|
||||
|
||||
function env(string $var)
|
||||
{
|
||||
if (!isset($_SERVER[$var])) {
|
||||
printf('Please set the "%s" environment variable to run this example.', $var);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
return $_SERVER[$var];
|
||||
}
|
||||
|
||||
function http_client(): HttpClientInterface
|
||||
{
|
||||
$httpClient = HttpClient::create();
|
||||
|
||||
if ($httpClient instanceof LoggerAwareInterface) {
|
||||
$httpClient->setLogger(logger());
|
||||
}
|
||||
|
||||
return $httpClient;
|
||||
}
|
||||
|
||||
function logger(): LoggerInterface
|
||||
{
|
||||
$verbosity = match ($_SERVER['argv'][1] ?? null) {
|
||||
'-v', '--verbose' => ConsoleOutput::VERBOSITY_VERBOSE,
|
||||
'-vv', '--very-verbose' => ConsoleOutput::VERBOSITY_VERY_VERBOSE,
|
||||
'-vvv', '--debug' => ConsoleOutput::VERBOSITY_DEBUG,
|
||||
default => ConsoleOutput::VERBOSITY_NORMAL,
|
||||
};
|
||||
|
||||
return new ConsoleLogger(new ConsoleOutput($verbosity));
|
||||
}
|
||||
@@ -15,20 +15,13 @@ use Symfony\AI\Platform\Bridge\Google\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\Audio;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['GEMINI_API_KEY'])) {
|
||||
echo 'Please set the GEMINI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['GEMINI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('GEMINI_API_KEY'), http_client());
|
||||
$model = new Gemini(Gemini::GEMINI_1_5_FLASH);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::ofUser(
|
||||
'What is this recording about?',
|
||||
|
||||
@@ -14,20 +14,13 @@ use Symfony\AI\Platform\Bridge\Google\Gemini;
|
||||
use Symfony\AI\Platform\Bridge\Google\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['GEMINI_API_KEY'])) {
|
||||
echo 'Please set the GEMINI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['GEMINI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('GEMINI_API_KEY'), http_client());
|
||||
$model = new Gemini(Gemini::GEMINI_2_FLASH);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a pirate and you write funny.'),
|
||||
Message::ofUser('What is the Symfony framework?'),
|
||||
|
||||
@@ -11,17 +11,10 @@
|
||||
|
||||
use Symfony\AI\Platform\Bridge\Google\Embeddings;
|
||||
use Symfony\AI\Platform\Bridge\Google\PlatformFactory;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['GEMINI_API_KEY'])) {
|
||||
echo 'Please set the GEMINI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['GEMINI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('GEMINI_API_KEY'), http_client());
|
||||
$embeddings = new Embeddings();
|
||||
|
||||
$response = $platform->request($embeddings, <<<TEXT
|
||||
|
||||
@@ -15,20 +15,13 @@ use Symfony\AI\Platform\Bridge\Google\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\Image;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['GEMINI_API_KEY'])) {
|
||||
echo 'Please set the GEMINI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['GEMINI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('GEMINI_API_KEY'), http_client());
|
||||
$model = new Gemini(Gemini::GEMINI_1_5_FLASH);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are an image analyzer bot that helps identify the content of images.'),
|
||||
Message::ofUser(
|
||||
|
||||
@@ -15,20 +15,13 @@ use Symfony\AI\Platform\Bridge\Google\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\Document;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['GEMINI_API_KEY'])) {
|
||||
echo 'Please set the GEMINI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['GEMINI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('GEMINI_API_KEY'), http_client());
|
||||
$model = new Gemini(Gemini::GEMINI_1_5_FLASH);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::ofUser(
|
||||
Document::fromFile(dirname(__DIR__, 2).'/fixtures/document.pdf'),
|
||||
|
||||
@@ -17,24 +17,17 @@ use Symfony\AI\Platform\Bridge\Google\Gemini;
|
||||
use Symfony\AI\Platform\Bridge\Google\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['GEMINI_API_KEY'])) {
|
||||
echo 'Please set the GEMINI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['GEMINI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('GEMINI_API_KEY'), http_client());
|
||||
|
||||
// Available server-side tools as of 2025-06-28: url_context, google_search, code_execution
|
||||
$llm = new Gemini('gemini-2.5-pro-preview-03-25', ['server_tools' => ['url_context' => true], 'temperature' => 1.0]);
|
||||
|
||||
$toolbox = new Toolbox([new Clock()]);
|
||||
$toolbox = new Toolbox([new Clock()], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $llm);
|
||||
$agent = new Agent($platform, $llm, logger: logger());
|
||||
|
||||
$messages = new MessageBag(
|
||||
Message::ofUser(
|
||||
|
||||
@@ -14,20 +14,13 @@ use Symfony\AI\Platform\Bridge\Google\Gemini;
|
||||
use Symfony\AI\Platform\Bridge\Google\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['GEMINI_API_KEY'])) {
|
||||
echo 'Please set the GEMINI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['GEMINI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('GEMINI_API_KEY'), http_client());
|
||||
$model = new Gemini(Gemini::GEMINI_2_FLASH);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a funny clown that entertains people.'),
|
||||
Message::ofUser('What is the purpose of an ant?'),
|
||||
|
||||
@@ -19,24 +19,17 @@ use Symfony\AI\Platform\Bridge\Google\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Clock\Clock as SymfonyClock;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['GEMINI_API_KEY'])) {
|
||||
echo 'Please set the GEMINI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['GEMINI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('GEMINI_API_KEY'), http_client());
|
||||
$model = new Gemini(Gemini::GEMINI_1_5_FLASH);
|
||||
|
||||
$clock = new Clock(new SymfonyClock());
|
||||
$toolbox = new Toolbox([$clock]);
|
||||
$toolProcessor = new ToolProcessor($toolbox);
|
||||
$structuredOutputProcessor = new StructuredOutputProcessor();
|
||||
$agent = new Agent($platform, $model, [$toolProcessor, $structuredOutputProcessor], [$toolProcessor, $structuredOutputProcessor]);
|
||||
$agent = new Agent($platform, $model, [$toolProcessor, $structuredOutputProcessor], [$toolProcessor, $structuredOutputProcessor], logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('What date and time is it?'));
|
||||
$response = $agent->call($messages, ['response_format' => [
|
||||
|
||||
@@ -16,21 +16,14 @@ use Symfony\AI\Platform\Bridge\Google\Gemini;
|
||||
use Symfony\AI\Platform\Bridge\Google\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['GEMINI_API_KEY'])) {
|
||||
echo 'Please set the GEMINI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['GEMINI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('GEMINI_API_KEY'), http_client());
|
||||
$model = new Gemini(Gemini::GEMINI_1_5_FLASH);
|
||||
|
||||
$processor = new AgentProcessor();
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a helpful math tutor. Guide the user through the solution step by step.'),
|
||||
Message::ofUser('how can I solve 8x + 7 = -23'),
|
||||
|
||||
@@ -17,22 +17,15 @@ use Symfony\AI\Platform\Bridge\Google\Gemini;
|
||||
use Symfony\AI\Platform\Bridge\Google\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['GEMINI_API_KEY'])) {
|
||||
echo 'Please set the GEMINI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['GEMINI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('GEMINI_API_KEY'), http_client());
|
||||
$llm = new Gemini(Gemini::GEMINI_2_FLASH);
|
||||
|
||||
$toolbox = new Toolbox([new Clock()]);
|
||||
$toolbox = new Toolbox([new Clock()], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $llm, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $llm, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('What time is it?'));
|
||||
$response = $agent->call($messages);
|
||||
|
||||
@@ -18,7 +18,7 @@ use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\SingleCommandApplication;
|
||||
use Symfony\Component\Console\Style\SymfonyStyle;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
$app = (new SingleCommandApplication('HuggingFace Model Listing'))
|
||||
->setDescription('Lists all available models on HuggingFace')
|
||||
|
||||
@@ -13,17 +13,10 @@ use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Message\Content\Audio;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('MIT/ast-finetuned-audioset-10-10-0.4593');
|
||||
$audio = Audio::fromFile(dirname(__DIR__, 2).'/fixtures/audio.mp3');
|
||||
|
||||
|
||||
@@ -13,17 +13,10 @@ use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Message\Content\Audio;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('openai/whisper-large-v3');
|
||||
$audio = Audio::fromFile(dirname(__DIR__, 2).'/fixtures/audio.mp3');
|
||||
|
||||
|
||||
@@ -14,17 +14,10 @@ use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('HuggingFaceH4/zephyr-7b-beta');
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('Hello, how are you doing today?'));
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('thenlper/gte-large');
|
||||
|
||||
$response = $platform->request($model, 'Today is a sunny day and I will get some ice cream.', [
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('FacebookAI/xlm-roberta-base');
|
||||
|
||||
$response = $platform->request($model, 'Hello I\'m a <mask> model.', [
|
||||
|
||||
@@ -13,17 +13,10 @@ use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Message\Content\Image;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('google/vit-base-patch16-224');
|
||||
|
||||
$image = Image::fromFile(dirname(__DIR__, 2).'/fixtures/image.jpg');
|
||||
|
||||
@@ -13,17 +13,10 @@ use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Message\Content\Image;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('nvidia/segformer-b0-finetuned-ade-512-512');
|
||||
|
||||
$image = Image::fromFile(dirname(__DIR__, 2).'/fixtures/image.jpg');
|
||||
|
||||
@@ -13,17 +13,10 @@ use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Message\Content\Image;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('Salesforce/blip-image-captioning-base');
|
||||
|
||||
$image = Image::fromFile(dirname(__DIR__, 2).'/fixtures/image.jpg');
|
||||
|
||||
@@ -13,17 +13,10 @@ use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Message\Content\Image;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('facebook/detr-resnet-50');
|
||||
|
||||
$image = Image::fromFile(dirname(__DIR__, 2).'/fixtures/image.jpg');
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('deepset/roberta-base-squad2');
|
||||
|
||||
$input = [
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('sentence-transformers/all-MiniLM-L6-v2');
|
||||
|
||||
$input = [
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('facebook/bart-large-cnn');
|
||||
|
||||
$longText = <<<TEXT
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('microsoft/tapex-base');
|
||||
|
||||
$input = [
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('ProsusAI/finbert');
|
||||
|
||||
$response = $platform->request($model, 'I like you. I love you.', [
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('gpt2');
|
||||
|
||||
$response = $platform->request($model, 'The quick brown fox jumps over the lazy', [
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('black-forest-labs/FLUX.1-dev');
|
||||
|
||||
$response = $platform->request($model, 'Astronaut riding a horse', [
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('dbmdz/bert-large-cased-finetuned-conll03-english');
|
||||
|
||||
$response = $platform->request($model, 'John Smith works at Microsoft in London.', [
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('facebook/mbart-large-50-many-to-many-mmt');
|
||||
|
||||
$response = $platform->request($model, 'Меня зовут Вольфганг и я живу в Берлине', [
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\HuggingFace\Task;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['HUGGINGFACE_KEY'])) {
|
||||
echo 'Please set the HUGGINGFACE_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['HUGGINGFACE_KEY']);
|
||||
$platform = PlatformFactory::create(env('HUGGINGFACE_KEY'), httpClient: http_client());
|
||||
$model = new Model('facebook/bart-large-mnli');
|
||||
|
||||
$text = 'Hi, I recently bought a device from your company but it is not working as advertised and I would like to get reimbursed!';
|
||||
|
||||
@@ -14,20 +14,13 @@ use Symfony\AI\Platform\Bridge\LMStudio\Completions;
|
||||
use Symfony\AI\Platform\Bridge\LMStudio\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['LMSTUDIO_HOST_URL'])) {
|
||||
echo 'Please set the LMSTUDIO_HOST_URL environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['LMSTUDIO_HOST_URL']);
|
||||
$platform = PlatformFactory::create(env('LMSTUDIO_HOST_URL'), http_client());
|
||||
$model = new Completions('gemma-3-4b-it-qat');
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a pirate and you write funny.'),
|
||||
Message::ofUser('What is the Symfony framework?'),
|
||||
|
||||
@@ -16,23 +16,16 @@ use Symfony\AI\Platform\Capability;
|
||||
use Symfony\AI\Platform\Message\Content\Image;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['LMSTUDIO_HOST_URL'])) {
|
||||
echo 'Please set the LMSTUDIO_HOST_URL environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['LMSTUDIO_HOST_URL']);
|
||||
$platform = PlatformFactory::create(env('LMSTUDIO_HOST_URL'), http_client());
|
||||
$model = new Completions(
|
||||
name: 'gemma-3-4b-it-qat',
|
||||
capabilities: [...Completions::DEFAULT_CAPABILITIES, Capability::INPUT_IMAGE]
|
||||
);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are an image analyzer bot that helps identify the content of images.'),
|
||||
Message::ofUser(
|
||||
|
||||
@@ -15,22 +15,15 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$processor = new SystemPromptInputProcessor('You are Yoda and write like he speaks. But short.');
|
||||
|
||||
$agent = new Agent($platform, $model, [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], logger: logger());
|
||||
$messages = new MessageBag(Message::ofUser('What is the meaning of life?'));
|
||||
$response = $agent->call($messages);
|
||||
|
||||
|
||||
@@ -17,17 +17,10 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!$_ENV['OPENAI_API_KEY']) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_ENV['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create($_ENV['OPENAI_API_KEY'], http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$systemPromptProcessor = new SystemPromptInputProcessor('You are a professional trainer with short, personalized advices and a motivating claim.');
|
||||
@@ -39,7 +32,7 @@ $personalFacts = new StaticMemoryProvider(
|
||||
);
|
||||
$memoryProcessor = new MemoryInputProcessor($personalFacts);
|
||||
|
||||
$chain = new Agent($platform, $model, [$systemPromptProcessor, $memoryProcessor]);
|
||||
$chain = new Agent($platform, $model, [$systemPromptProcessor, $memoryProcessor], logger: logger());
|
||||
$messages = new MessageBag(Message::ofUser('What do we do today?'));
|
||||
$response = $chain->call($messages);
|
||||
|
||||
|
||||
@@ -13,17 +13,10 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI, [
|
||||
'temperature' => 0.5, // default options for the model
|
||||
]);
|
||||
|
||||
@@ -11,17 +11,10 @@
|
||||
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\Embeddings;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$ada = new Embeddings(Embeddings::TEXT_ADA_002);
|
||||
$small = new Embeddings(Embeddings::TEXT_3_SMALL);
|
||||
$large = new Embeddings(Embeddings::TEXT_3_LARGE);
|
||||
|
||||
@@ -16,20 +16,13 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$llm = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$agent = new Agent($platform, $llm);
|
||||
$agent = new Agent($platform, $llm, logger: logger());
|
||||
$chat = new Chat($agent, new InMemoryStore());
|
||||
|
||||
$messages = new MessageBag(
|
||||
|
||||
@@ -14,19 +14,12 @@ use Symfony\AI\Platform\Bridge\Mistral\Mistral;
|
||||
use Symfony\AI\Platform\Bridge\Mistral\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['MISTRAL_API_KEY'])) {
|
||||
echo 'Please set the REPLICATE_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['MISTRAL_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('MISTRAL_API_KEY'), http_client());
|
||||
$model = new Mistral();
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('What is the best French cheese?'));
|
||||
$response = $agent->call($messages, [
|
||||
|
||||
@@ -11,17 +11,10 @@
|
||||
|
||||
use Symfony\AI\Platform\Bridge\Mistral\Embeddings;
|
||||
use Symfony\AI\Platform\Bridge\Mistral\PlatformFactory;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['MISTRAL_API_KEY'])) {
|
||||
echo 'Please set the MISTRAL_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['MISTRAL_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('MISTRAL_API_KEY'), http_client());
|
||||
$model = new Embeddings();
|
||||
|
||||
$response = $platform->request($model, <<<TEXT
|
||||
|
||||
@@ -15,19 +15,12 @@ use Symfony\AI\Platform\Bridge\Mistral\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\Image;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['MISTRAL_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('MISTRAL_API_KEY'), http_client());
|
||||
$model = new Mistral(Mistral::MISTRAL_SMALL);
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are an image analyzer bot that helps identify the content of images.'),
|
||||
|
||||
@@ -14,19 +14,12 @@ use Symfony\AI\Platform\Bridge\Mistral\Mistral;
|
||||
use Symfony\AI\Platform\Bridge\Mistral\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['MISTRAL_API_KEY'])) {
|
||||
echo 'Please set the REPLICATE_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['MISTRAL_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('MISTRAL_API_KEY'), http_client());
|
||||
$model = new Mistral();
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('What is the eighth prime number?'));
|
||||
$response = $agent->call($messages, [
|
||||
|
||||
@@ -17,25 +17,18 @@ use Symfony\AI\Platform\Bridge\Mistral\Mistral;
|
||||
use Symfony\AI\Platform\Bridge\Mistral\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\Serializer\Encoder\JsonEncoder;
|
||||
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
|
||||
use Symfony\Component\Serializer\Serializer;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['MISTRAL_API_KEY'])) {
|
||||
echo 'Please set the MISTRAL_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['MISTRAL_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('MISTRAL_API_KEY'), http_client());
|
||||
$model = new Mistral(Mistral::MISTRAL_SMALL);
|
||||
$serializer = new Serializer([new ObjectNormalizer()], [new JsonEncoder()]);
|
||||
|
||||
$processor = new AgentProcessor(new ResponseFormatFactory(), $serializer);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a helpful math tutor. Guide the user through the solution step by step.'),
|
||||
Message::ofUser('how can I solve 8x + 7 = -23'),
|
||||
|
||||
@@ -17,24 +17,16 @@ use Symfony\AI\Platform\Bridge\Mistral\Mistral;
|
||||
use Symfony\AI\Platform\Bridge\Mistral\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['MISTRAL_API_KEY'])) {
|
||||
echo 'Please set the REPLICATE_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['MISTRAL_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('MISTRAL_API_KEY'), http_client());
|
||||
$model = new Mistral();
|
||||
|
||||
$transcriber = new YouTubeTranscriber(HttpClient::create());
|
||||
$toolbox = new Toolbox([$transcriber]);
|
||||
$transcriber = new YouTubeTranscriber(http_client());
|
||||
$toolbox = new Toolbox([$transcriber], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('Please summarize this video for me: https://www.youtube.com/watch?v=6uXW-ulpj0s'));
|
||||
$response = $agent->call($messages, [
|
||||
|
||||
@@ -17,22 +17,15 @@ use Symfony\AI\Platform\Bridge\Mistral\Mistral;
|
||||
use Symfony\AI\Platform\Bridge\Mistral\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['MISTRAL_API_KEY'])) {
|
||||
echo 'Please set the REPLICATE_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['MISTRAL_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('MISTRAL_API_KEY'), http_client());
|
||||
$model = new Mistral();
|
||||
|
||||
$toolbox = new Toolbox([new Clock()]);
|
||||
$toolbox = new Toolbox([new Clock()], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('What time is it?'));
|
||||
$response = $agent->call($messages);
|
||||
|
||||
@@ -14,20 +14,13 @@ use Symfony\AI\Platform\Bridge\Meta\Llama;
|
||||
use Symfony\AI\Platform\Bridge\Ollama\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OLLAMA_HOST_URL'])) {
|
||||
echo 'Please set the OLLAMA_HOST_URL environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OLLAMA_HOST_URL']);
|
||||
$platform = PlatformFactory::create(env('OLLAMA_HOST_URL'), http_client());
|
||||
$model = new Llama('llama3.2');
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a helpful assistant.'),
|
||||
Message::ofUser('Tina has one brother and one sister. How many sisters do Tina\'s siblings have?'),
|
||||
|
||||
@@ -15,20 +15,13 @@ use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\Audio;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_AUDIO);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::ofUser(
|
||||
'What is this recording about?',
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\Whisper;
|
||||
use Symfony\AI\Platform\Message\Content\Audio;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new Whisper();
|
||||
$file = Audio::fromFile(dirname(__DIR__, 2).'/fixtures/audio.mp3');
|
||||
|
||||
|
||||
@@ -14,22 +14,15 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['RUN_EXPENSIVE_EXAMPLES']) || false === filter_var($_SERVER['RUN_EXPENSIVE_EXAMPLES'], \FILTER_VALIDATE_BOOLEAN)) {
|
||||
echo 'This example is marked as expensive and will not run unless RUN_EXPENSIVE_EXAMPLES is set to true.'.\PHP_EOL;
|
||||
exit(134);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::O1_PREVIEW);
|
||||
|
||||
$prompt = <<<PROMPT
|
||||
@@ -41,6 +34,7 @@ $prompt = <<<PROMPT
|
||||
at the beginning and end, not throughout the code.
|
||||
PROMPT;
|
||||
|
||||
$response = (new Agent($platform, $model))->call(new MessageBag(Message::ofUser($prompt)));
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$response = $agent->call(new MessageBag(Message::ofUser($prompt)));
|
||||
|
||||
echo $response->getContent().\PHP_EOL;
|
||||
|
||||
@@ -14,22 +14,15 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI, [
|
||||
'temperature' => 0.5, // default options for the model
|
||||
]);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a pirate and you write funny.'),
|
||||
Message::ofUser('What is the Symfony framework?'),
|
||||
|
||||
@@ -11,17 +11,10 @@
|
||||
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\Embeddings;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$embeddings = new Embeddings();
|
||||
|
||||
$response = $platform->request($embeddings, <<<TEXT
|
||||
|
||||
@@ -15,20 +15,13 @@ use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\Image;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are an image analyzer bot that helps identify the content of images.'),
|
||||
Message::ofUser(
|
||||
|
||||
@@ -15,20 +15,13 @@ use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Content\ImageUrl;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are an image analyzer bot that helps identify the content of images.'),
|
||||
Message::ofUser(
|
||||
|
||||
@@ -11,17 +11,10 @@
|
||||
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\DallE;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
|
||||
$response = $platform->request(
|
||||
model: new DallE(), // Utilize Dall-E 2 version in default
|
||||
|
||||
@@ -12,17 +12,10 @@
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\DallE;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\DallE\ImageResponse;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
|
||||
$response = $platform->request(
|
||||
model: new DallE(name: DallE::DALL_E_3),
|
||||
|
||||
@@ -14,20 +14,13 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a thoughtful philosopher.'),
|
||||
Message::ofUser('What is the purpose of an ant?'),
|
||||
|
||||
@@ -19,21 +19,14 @@ use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Clock\Clock as SymfonyClock;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$clock = new Clock(new SymfonyClock());
|
||||
$toolbox = new Toolbox([$clock]);
|
||||
$toolbox = new Toolbox([$clock], logger: logger());
|
||||
$toolProcessor = new ToolProcessor($toolbox);
|
||||
$structuredOutputProcessor = new StructuredOutputProcessor();
|
||||
$agent = new Agent($platform, $model, [$toolProcessor, $structuredOutputProcessor], [$toolProcessor, $structuredOutputProcessor]);
|
||||
|
||||
@@ -16,21 +16,14 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$processor = new AgentProcessor();
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a helpful math tutor. Guide the user through the solution step by step.'),
|
||||
Message::ofUser('how can I solve 8x + 7 = -23'),
|
||||
|
||||
@@ -15,22 +15,15 @@ use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\TokenOutputProcessor;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI, [
|
||||
'temperature' => 0.5, // default options for the model
|
||||
]);
|
||||
|
||||
$agent = new Agent($platform, $model, outputProcessors: [new TokenOutputProcessor()]);
|
||||
$agent = new Agent($platform, $model, outputProcessors: [new TokenOutputProcessor()], logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a pirate and you write funny.'),
|
||||
Message::ofUser('What is the Symfony framework?'),
|
||||
|
||||
@@ -17,24 +17,16 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$wikipedia = new Wikipedia(HttpClient::create());
|
||||
$toolbox = new Toolbox([$wikipedia]);
|
||||
$wikipedia = new Wikipedia(http_client());
|
||||
$toolbox = new Toolbox([$wikipedia], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
$messages = new MessageBag(Message::ofUser(<<<TXT
|
||||
First, define unicorn in 30 words.
|
||||
Then lookup at Wikipedia what the irish history looks like in 2 sentences.
|
||||
|
||||
@@ -17,24 +17,16 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$transcriber = new YouTubeTranscriber(HttpClient::create());
|
||||
$toolbox = new Toolbox([$transcriber]);
|
||||
$transcriber = new YouTubeTranscriber(http_client());
|
||||
$toolbox = new Toolbox([$transcriber], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('Please summarize this video for me: https://www.youtube.com/watch?v=6uXW-ulpj0s'));
|
||||
$response = $agent->call($messages);
|
||||
|
||||
@@ -14,22 +14,15 @@ use Symfony\AI\Platform\Bridge\OpenRouter\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\AI\Platform\Model;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENROUTER_KEY'])) {
|
||||
echo 'Please set the OPENROUTER_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENROUTER_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENROUTER_KEY'), http_client());
|
||||
// In case free is running into 429 rate limit errors, you can use the paid model:
|
||||
// $model = new Model('google/gemini-2.0-flash-lite-001');
|
||||
$model = new Model('google/gemini-2.0-flash-exp:free');
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a helpful assistant.'),
|
||||
Message::ofUser('Tina has one brother and one sister. How many sisters do Tina\'s siblings have?'),
|
||||
|
||||
@@ -14,20 +14,13 @@ use Symfony\AI\Platform\Bridge\Meta\Llama;
|
||||
use Symfony\AI\Platform\Bridge\Replicate\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['REPLICATE_API_KEY'])) {
|
||||
echo 'Please set the REPLICATE_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['REPLICATE_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('REPLICATE_API_KEY'), http_client());
|
||||
$model = new Llama();
|
||||
|
||||
$agent = new Agent($platform, $model);
|
||||
$agent = new Agent($platform, $model, logger: logger());
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('You are a helpful assistant.'),
|
||||
Message::ofUser('Tina has one brother and one sister. How many sisters do Tina\'s siblings have?'),
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
use Symfony\AI\Store\Document\Loader\TextFileLoader;
|
||||
use Symfony\AI\Store\Document\Transformer\TextSplitTransformer;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
$loader = new TextFileLoader();
|
||||
$splitter = new TextSplitTransformer();
|
||||
|
||||
@@ -14,18 +14,11 @@ use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Store\Document\TextDocument;
|
||||
use Symfony\AI\Store\Document\VectorDocument;
|
||||
use Symfony\AI\Store\Document\Vectorizer;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$embeddings = new Embeddings(Embeddings::TEXT_3_LARGE);
|
||||
|
||||
$textDocuments = [
|
||||
|
||||
@@ -24,16 +24,9 @@ use Symfony\AI\Store\Document\Metadata;
|
||||
use Symfony\AI\Store\Document\TextDocument;
|
||||
use Symfony\AI\Store\Document\Vectorizer;
|
||||
use Symfony\AI\Store\Indexer;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!$_ENV['OPENAI_API_KEY'] || !$_ENV['MARIADB_URI']) {
|
||||
echo 'Please set OPENAI_API_KEY and MARIADB_URI environment variables.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
// initialize the store
|
||||
$store = Store::fromDbal(
|
||||
@@ -64,17 +57,17 @@ foreach ($pastConversationPieces as $i => $message) {
|
||||
$store->initialize();
|
||||
|
||||
// create embeddings for documents as preparation of the chain memory
|
||||
$platform = PlatformFactory::create($_ENV['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings());
|
||||
$indexer = new Indexer($vectorizer, $store);
|
||||
$indexer = new Indexer($vectorizer, $store, logger());
|
||||
$indexer->index($documents);
|
||||
|
||||
// Execute a chat call that is utilizing the memory
|
||||
$embeddingsMemory = new EmbeddingProvider($platform, $embeddings, $store);
|
||||
$memoryProcessor = new MemoryInputProcessor($embeddingsMemory);
|
||||
|
||||
$chain = new Agent($platform, new GPT(GPT::GPT_4O_MINI), [$memoryProcessor]);
|
||||
$agent = new Agent($platform, new GPT(GPT::GPT_4O_MINI), [$memoryProcessor], logger: logger());
|
||||
$messages = new MessageBag(Message::ofUser('Have we discussed about my friend John in the past? If yes, what did we talk about?'));
|
||||
$response = $chain->call($messages);
|
||||
$response = $agent->call($messages);
|
||||
|
||||
echo $response->getContent().\PHP_EOL;
|
||||
|
||||
@@ -27,20 +27,13 @@ use Symfony\AI\Store\Document\Metadata;
|
||||
use Symfony\AI\Store\Document\TextDocument;
|
||||
use Symfony\AI\Store\Document\Vectorizer;
|
||||
use Symfony\AI\Store\Indexer;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!isset($_SERVER['GEMINI_API_KEY'], $_SERVER['MARIADB_URI'])) {
|
||||
echo 'Please set GEMINI_API_KEY and MARIADB_URI environment variables.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
// initialize the store
|
||||
$store = Store::fromDbal(
|
||||
connection: DriverManager::getConnection((new DsnParser())->parse($_SERVER['MARIADB_URI'])),
|
||||
connection: DriverManager::getConnection((new DsnParser())->parse(env('MARIADB_URI'))),
|
||||
tableName: 'my_table',
|
||||
indexName: 'my_index',
|
||||
);
|
||||
@@ -58,18 +51,18 @@ foreach (Movies::all() as $i => $movie) {
|
||||
$store->initialize(['dimensions' => 768]);
|
||||
|
||||
// create embeddings for documents
|
||||
$platform = PlatformFactory::create($_SERVER['GEMINI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('GEMINI_API_KEY'), http_client());
|
||||
$embeddings = new Embeddings(options: ['dimensions' => 768, 'task_type' => TaskType::SemanticSimilarity]);
|
||||
$vectorizer = new Vectorizer($platform, $embeddings);
|
||||
$indexer = new Indexer($vectorizer, $store);
|
||||
$indexer = new Indexer($vectorizer, $store, logger());
|
||||
$indexer->index($documents);
|
||||
|
||||
$model = new Gemini(Gemini::GEMINI_2_FLASH_LITE);
|
||||
|
||||
$similaritySearch = new SimilaritySearch($platform, $embeddings, $store);
|
||||
$toolbox = new Toolbox([$similaritySearch]);
|
||||
$toolbox = new Toolbox([$similaritySearch], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('Please answer all user questions only using SimilaritySearch function.'),
|
||||
|
||||
@@ -26,20 +26,13 @@ use Symfony\AI\Store\Document\Metadata;
|
||||
use Symfony\AI\Store\Document\TextDocument;
|
||||
use Symfony\AI\Store\Document\Vectorizer;
|
||||
use Symfony\AI\Store\Indexer;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'], $_SERVER['MARIADB_URI'])) {
|
||||
echo 'Please set OPENAI_API_KEY and MARIADB_URI environment variables.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
// initialize the store
|
||||
$store = Store::fromDbal(
|
||||
connection: DriverManager::getConnection((new DsnParser())->parse($_SERVER['MARIADB_URI'])),
|
||||
connection: DriverManager::getConnection((new DsnParser())->parse(env('MARIADB_URI'))),
|
||||
tableName: 'my_table',
|
||||
indexName: 'my_index',
|
||||
);
|
||||
@@ -57,17 +50,17 @@ foreach (Movies::all() as $i => $movie) {
|
||||
$store->initialize();
|
||||
|
||||
// create embeddings for documents
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings());
|
||||
$indexer = new Indexer($vectorizer, $store);
|
||||
$indexer = new Indexer($vectorizer, $store, logger());
|
||||
$indexer->index($documents);
|
||||
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$similaritySearch = new SimilaritySearch($platform, $embeddings, $store);
|
||||
$toolbox = new Toolbox([$similaritySearch]);
|
||||
$toolbox = new Toolbox([$similaritySearch], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('Please answer all user questions only using SimilaritySearch function.'),
|
||||
|
||||
@@ -24,23 +24,16 @@ use Symfony\AI\Store\Document\Metadata;
|
||||
use Symfony\AI\Store\Document\TextDocument;
|
||||
use Symfony\AI\Store\Document\Vectorizer;
|
||||
use Symfony\AI\Store\Indexer;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'], $_SERVER['MEILISEARCH_HOST'], $_SERVER['MEILISEARCH_API_KEY'])) {
|
||||
echo 'Please set OPENAI_API_KEY, MEILISEARCH_API_KEY and MEILISEARCH_HOST environment variables.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
// initialize the store
|
||||
$store = new Store(
|
||||
httpClient: HttpClient::create(),
|
||||
endpointUrl: $_SERVER['MEILISEARCH_HOST'],
|
||||
apiKey: $_SERVER['MEILISEARCH_API_KEY'],
|
||||
endpointUrl: env('MEILISEARCH_HOST'),
|
||||
apiKey: env('MEILISEARCH_API_KEY'),
|
||||
indexName: 'movies',
|
||||
);
|
||||
|
||||
@@ -58,17 +51,17 @@ foreach (Movies::all() as $i => $movie) {
|
||||
$store->initialize();
|
||||
|
||||
// create embeddings for documents
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings());
|
||||
$indexer = new Indexer($vectorizer, $store);
|
||||
$indexer = new Indexer($vectorizer, $store, logger());
|
||||
$indexer->index($documents);
|
||||
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$similaritySearch = new SimilaritySearch($platform, $embeddings, $store);
|
||||
$toolbox = new Toolbox([$similaritySearch]);
|
||||
$toolbox = new Toolbox([$similaritySearch], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('Please answer all user questions only using SimilaritySearch function.'),
|
||||
|
||||
@@ -24,16 +24,9 @@ use Symfony\AI\Store\Document\TextDocument;
|
||||
use Symfony\AI\Store\Document\Vectorizer;
|
||||
use Symfony\AI\Store\Indexer;
|
||||
use Symfony\AI\Store\InMemoryStore;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
// initialize the store
|
||||
$store = new InMemoryStore();
|
||||
@@ -48,17 +41,17 @@ foreach (Movies::all() as $i => $movie) {
|
||||
}
|
||||
|
||||
// create embeddings for documents
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings());
|
||||
$indexer = new Indexer($vectorizer, $store);
|
||||
$indexer = new Indexer($vectorizer, $store, logger());
|
||||
$indexer->index($documents);
|
||||
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$similaritySearch = new SimilaritySearch($platform, $embeddings, $store);
|
||||
$toolbox = new Toolbox([$similaritySearch]);
|
||||
$toolbox = new Toolbox([$similaritySearch], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('Please answer all user questions only using SimilaritySearch function.'),
|
||||
|
||||
@@ -25,20 +25,13 @@ use Symfony\AI\Store\Document\Metadata;
|
||||
use Symfony\AI\Store\Document\TextDocument;
|
||||
use Symfony\AI\Store\Document\Vectorizer;
|
||||
use Symfony\AI\Store\Indexer;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'], $_SERVER['MONGODB_URI'])) {
|
||||
echo 'Please set OPENAI_API_KEY and MONGODB_URI environment variables.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
// initialize the store
|
||||
$store = new Store(
|
||||
client: new MongoDBClient($_SERVER['MONGODB_URI']),
|
||||
client: new MongoDBClient(env('MONGODB_URI')),
|
||||
databaseName: 'my-database',
|
||||
collectionName: 'my-collection',
|
||||
indexName: 'my-index',
|
||||
@@ -55,9 +48,9 @@ foreach (Movies::all() as $movie) {
|
||||
}
|
||||
|
||||
// create embeddings for documents
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'));
|
||||
$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings());
|
||||
$indexer = new Indexer($vectorizer, $store);
|
||||
$indexer = new Indexer($vectorizer, $store, logger());
|
||||
$indexer->index($documents);
|
||||
|
||||
// initialize the index
|
||||
@@ -66,9 +59,9 @@ $store->initialize();
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$similaritySearch = new SimilaritySearch($platform, $embeddings, $store);
|
||||
$toolbox = new Toolbox([$similaritySearch]);
|
||||
$toolbox = new Toolbox([$similaritySearch], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('Please answer all user questions only using SimilaritySearch function.'),
|
||||
|
||||
@@ -25,19 +25,12 @@ use Symfony\AI\Store\Document\Metadata;
|
||||
use Symfony\AI\Store\Document\TextDocument;
|
||||
use Symfony\AI\Store\Document\Vectorizer;
|
||||
use Symfony\AI\Store\Indexer;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'], $_SERVER['PINECONE_API_KEY'], $_SERVER['PINECONE_HOST'])) {
|
||||
echo 'Please set OPENAI_API_KEY, PINECONE_API_KEY and PINECONE_HOST environment variables.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
// initialize the store
|
||||
$store = new Store(Pinecone::client($_SERVER['PINECONE_API_KEY'], $_SERVER['PINECONE_HOST']));
|
||||
$store = new Store(Pinecone::client(env('PINECONE_API_KEY'), env('PINECONE_HOST')));
|
||||
|
||||
// create embeddings and documents
|
||||
foreach (Movies::all() as $movie) {
|
||||
@@ -49,17 +42,17 @@ foreach (Movies::all() as $movie) {
|
||||
}
|
||||
|
||||
// create embeddings for documents
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings());
|
||||
$indexer = new Indexer($vectorizer, $store);
|
||||
$indexer = new Indexer($vectorizer, $store, logger());
|
||||
$indexer->index($documents);
|
||||
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$similaritySearch = new SimilaritySearch($platform, $embeddings, $store);
|
||||
$toolbox = new Toolbox([$similaritySearch]);
|
||||
$toolbox = new Toolbox([$similaritySearch], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('Please answer all user questions only using SimilaritySearch function.'),
|
||||
|
||||
@@ -26,20 +26,13 @@ use Symfony\AI\Store\Document\Metadata;
|
||||
use Symfony\AI\Store\Document\TextDocument;
|
||||
use Symfony\AI\Store\Document\Vectorizer;
|
||||
use Symfony\AI\Store\Indexer;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'], $_SERVER['POSTGRES_URI'])) {
|
||||
echo 'Please set OPENAI_API_KEY and POSTGRES_URI environment variables.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
// initialize the store
|
||||
$store = Store::fromDbal(
|
||||
connection: DriverManager::getConnection((new DsnParser())->parse($_SERVER['POSTGRES_URI'])),
|
||||
connection: DriverManager::getConnection((new DsnParser())->parse(env('POSTGRES_URI'))),
|
||||
tableName: 'my_table',
|
||||
);
|
||||
|
||||
@@ -57,17 +50,17 @@ foreach (Movies::all() as $i => $movie) {
|
||||
$store->initialize();
|
||||
|
||||
// create embeddings for documents
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings());
|
||||
$indexer = new Indexer($vectorizer, $store);
|
||||
$indexer = new Indexer($vectorizer, $store, logger());
|
||||
$indexer->index($documents);
|
||||
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$similaritySearch = new SimilaritySearch($platform, $embeddings, $store);
|
||||
$toolbox = new Toolbox([$similaritySearch]);
|
||||
$toolbox = new Toolbox([$similaritySearch], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('Please answer all user questions only using SimilaritySearch function.'),
|
||||
|
||||
@@ -24,23 +24,16 @@ use Symfony\AI\Store\Document\Metadata;
|
||||
use Symfony\AI\Store\Document\TextDocument;
|
||||
use Symfony\AI\Store\Document\Vectorizer;
|
||||
use Symfony\AI\Store\Indexer;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'], $_SERVER['QDRANT_HOST'], $_SERVER['QDRANT_SERVICE_API_KEY'])) {
|
||||
echo 'Please set OPENAI_API_KEY, QDRANT_HOST and QDRANT_SERVICE_API_KEY environment variables.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
// initialize the store
|
||||
$store = new Store(
|
||||
HttpClient::create(),
|
||||
$_SERVER['QDRANT_HOST'],
|
||||
$_SERVER['QDRANT_SERVICE_API_KEY'],
|
||||
env('QDRANT_HOST'),
|
||||
env('QDRANT_SERVICE_API_KEY'),
|
||||
'movies',
|
||||
);
|
||||
|
||||
@@ -57,17 +50,17 @@ foreach (Movies::all() as $movie) {
|
||||
}
|
||||
|
||||
// create embeddings for documents
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings());
|
||||
$indexer = new Indexer($vectorizer, $store);
|
||||
$indexer = new Indexer($vectorizer, $store, logger());
|
||||
$indexer->index($documents);
|
||||
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$similaritySearch = new SimilaritySearch($platform, $embeddings, $store);
|
||||
$toolbox = new Toolbox([$similaritySearch]);
|
||||
$toolbox = new Toolbox([$similaritySearch], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(
|
||||
Message::forSystem('Please answer all user questions only using SimilaritySearch function.'),
|
||||
|
||||
@@ -18,25 +18,17 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'], $_SERVER['BRAVE_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY and BRAVE_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$httpClient = HttpClient::create();
|
||||
$brave = new Brave($httpClient, $_SERVER['BRAVE_API_KEY']);
|
||||
$crawler = new Crawler($httpClient);
|
||||
$toolbox = new Toolbox([$brave, $crawler]);
|
||||
$brave = new Brave(http_client(), env('BRAVE_API_KEY'));
|
||||
$crawler = new Crawler(http_client());
|
||||
$toolbox = new Toolbox([$brave, $crawler], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('What was the latest game result of Dallas Cowboys?'));
|
||||
$response = $agent->call($messages);
|
||||
|
||||
@@ -18,24 +18,17 @@ use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Clock\Clock;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$metadataFactory = (new MemoryToolFactory())
|
||||
->addTool(Clock::class, 'clock', 'Get the current date and time', 'now');
|
||||
$toolbox = new Toolbox($metadataFactory, [new Clock()]);
|
||||
$toolbox = new Toolbox([new Clock()], $metadataFactory, logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('What date and time is it?'));
|
||||
$response = $agent->call($messages);
|
||||
|
||||
@@ -17,23 +17,16 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'], $_SERVER['SERP_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY and SERP_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$serpApi = new SerpApi(HttpClient::create(), $_SERVER['SERP_API_KEY']);
|
||||
$toolbox = new Toolbox([$serpApi]);
|
||||
$serpApi = new SerpApi(http_client(), env('SERP_API_KEY'));
|
||||
$toolbox = new Toolbox([$serpApi], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('Who is the current chancellor of Germany?'));
|
||||
$response = $agent->call($messages);
|
||||
|
||||
@@ -17,23 +17,16 @@ use Symfony\AI\Platform\Bridge\OpenAI\GPT;
|
||||
use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'], $_SERVER['TAVILY_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY and TAVILY_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$tavily = new Tavily(HttpClient::create(), $_SERVER['TAVILY_API_KEY']);
|
||||
$toolbox = new Toolbox([$tavily]);
|
||||
$tavily = new Tavily(http_client(), env('TAVILY_API_KEY'));
|
||||
$toolbox = new Toolbox([$tavily], logger: logger());
|
||||
$processor = new AgentProcessor($toolbox);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
$messages = new MessageBag(Message::ofUser('What was the latest game result of Dallas Cowboys?'));
|
||||
$response = $agent->call($messages);
|
||||
|
||||
@@ -19,26 +19,18 @@ use Symfony\AI\Platform\Bridge\OpenAI\PlatformFactory;
|
||||
use Symfony\AI\Platform\Message\Message;
|
||||
use Symfony\AI\Platform\Message\MessageBag;
|
||||
use Symfony\AI\Platform\Response\ObjectResponse;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!isset($_SERVER['OPENAI_API_KEY'])) {
|
||||
echo 'Please set the OPENAI_API_KEY environment variable.'.\PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']);
|
||||
$platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client());
|
||||
$model = new GPT(GPT::GPT_4O_MINI);
|
||||
|
||||
$openMeteo = new OpenMeteo(HttpClient::create());
|
||||
$toolbox = new Toolbox([$openMeteo]);
|
||||
$openMeteo = new OpenMeteo(http_client());
|
||||
$toolbox = new Toolbox([$openMeteo], logger: logger());
|
||||
$eventDispatcher = new EventDispatcher();
|
||||
$processor = new AgentProcessor($toolbox, eventDispatcher: $eventDispatcher);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor]);
|
||||
$agent = new Agent($platform, $model, [$processor], [$processor], logger());
|
||||
|
||||
// Add tool call result listener to enforce chain exits direct with structured response for weather tools
|
||||
$eventDispatcher->addListener(ToolCallsExecuted::class, function (ToolCallsExecuted $event): void {
|
||||
|
||||
@@ -13,7 +13,7 @@ use Codewithkyrian\Transformers\Pipelines\Task;
|
||||
use Symfony\AI\Platform\Bridge\TransformersPHP\PlatformFactory;
|
||||
use Symfony\AI\Platform\Model;
|
||||
|
||||
require_once dirname(__DIR__).'/vendor/autoload.php';
|
||||
require_once dirname(__DIR__).'/bootstrap.php';
|
||||
|
||||
if (!extension_loaded('ffi') || '1' !== ini_get('ffi.enable')) {
|
||||
echo 'FFI extension is not loaded or enabled. Please enable it in your php.ini file.'.\PHP_EOL;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user