Skip to content

Commit 6037110

Browse files
committed
Introduce Open Responses Platform Bridge by extracting from OpenAI
1 parent 75746d6 commit 6037110

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1296
-82
lines changed

demo/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
"phpunit/phpunit": "^12.1",
5454
"symfony/ai-mate": "^0.3",
5555
"symfony/ai-monolog-mate-extension": "^0.3",
56+
"symfony/ai-open-responses-platform": "^0.4",
5657
"symfony/ai-symfony-mate-extension": "^0.3",
5758
"symfony/browser-kit": "^8.0",
5859
"symfony/css-selector": "^8.0",

examples/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
"symfony/ai-ollama-platform": "^0.3",
6868
"symfony/ai-open-ai-platform": "^0.3",
6969
"symfony/ai-open-meteo-tool": "^0.3",
70+
"symfony/ai-open-responses-platform": "^0.4",
7071
"symfony/ai-open-router-platform": "^0.3",
7172
"symfony/ai-open-search-store": "^0.3",
7273
"symfony/ai-perplexity-platform": "^0.3",

splitsh.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
"ai-mistral-platform": "src/platform/src/Bridge/Mistral",
6161
"ai-ollama-platform": "src/platform/src/Bridge/Ollama",
6262
"ai-open-ai-platform": "src/platform/src/Bridge/OpenAi",
63+
"ai-open-responses-platform": "src/platform/src/Bridge/OpenResponses",
6364
"ai-open-router-platform": "src/platform/src/Bridge/OpenRouter",
6465
"ai-ovh-platform": "src/platform/src/Bridge/Ovh",
6566
"ai-perplexity-platform": "src/platform/src/Bridge/Perplexity",

src/ai-bundle/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
"symfony/ai-neo4j-store": "^0.3",
7474
"symfony/ai-ollama-platform": "^0.3",
7575
"symfony/ai-open-ai-platform": "^0.3",
76+
"symfony/ai-open-responses-platform": "^0.4",
7677
"symfony/ai-open-router-platform": "^0.3",
7778
"symfony/ai-open-search-store": "^0.3",
7879
"symfony/ai-perplexity-platform": "^0.3",

src/platform/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ To use a specific AI platform, install the corresponding bridge package:
3939
| Mistral | `symfony/ai-mistral-platform` |
4040
| Ollama | `symfony/ai-ollama-platform` |
4141
| OpenAI | `symfony/ai-open-ai-platform` |
42+
| Open Responses | `symfony/ai-open-responses-platform` |
4243
| OpenRouter | `symfony/ai-open-router-platform` |
4344
| OVH | `symfony/ai-ovh-platform` |
4445
| Perplexity | `symfony/ai-perplexity-platform` |

src/platform/src/Bridge/Azure/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
"symfony/ai-generic-platform": "^0.3",
3030
"symfony/ai-meta-platform": "^0.3",
3131
"symfony/ai-open-ai-platform": "^0.3",
32+
"symfony/ai-open-responses-platform": "^0.4",
3233
"symfony/ai-platform": "^0.3",
3334
"symfony/http-client": "^7.3|^8.0"
3435
},

src/platform/src/Bridge/OpenAi/Contract/OpenAiContract.php

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Symfony\AI\Platform\Bridge\OpenAi\Contract;
1313

1414
use Symfony\AI\Platform\Bridge\OpenAi\Whisper\AudioNormalizer;
15+
use Symfony\AI\Platform\Bridge\OpenResponses\Contract\OpenResponsesContract;
1516
use Symfony\AI\Platform\Contract;
1617
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
1718

@@ -22,18 +23,9 @@ final class OpenAiContract extends Contract
2223
{
2324
public static function create(NormalizerInterface ...$normalizer): Contract
2425
{
25-
return parent::create(
26-
new Gpt\Message\MessageBagNormalizer(),
27-
new Gpt\Message\AssistantMessageNormalizer(),
28-
new Gpt\Message\Content\ImageNormalizer(),
29-
new Gpt\Message\Content\ImageUrlNormalizer(),
30-
new Gpt\Message\Content\TextNormalizer(),
31-
new Gpt\ToolNormalizer(),
32-
new Gpt\ToolCallNormalizer(),
33-
new Gpt\Message\ToolCallMessageNormalizer(),
34-
new Gpt\Message\Content\DocumentNormalizer(),
26+
return OpenResponsesContract::create(
3527
new AudioNormalizer(),
36-
...$normalizer
28+
...$normalizer,
3729
);
3830
}
3931
}

src/platform/src/Bridge/OpenAi/Gpt.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@
1111

1212
namespace Symfony\AI\Platform\Bridge\OpenAi;
1313

14-
use Symfony\AI\Platform\Model;
14+
use Symfony\AI\Platform\Bridge\OpenResponses\ResponsesModel;
1515

1616
/**
1717
* @author Christopher Hertel <mail@christopher-hertel.de>
1818
* @author Oskar Stark <oskarstark@googlemail.com>
1919
*/
20-
class Gpt extends Model
20+
class Gpt extends ResponsesModel
2121
{
2222
/**
2323
* @param array<mixed> $options The default options for the model usage

src/platform/src/Bridge/OpenAi/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
],
3232
"require": {
3333
"php": ">=8.2",
34+
"symfony/ai-open-responses-platform": "^0.4",
3435
"symfony/ai-platform": "^0.3",
3536
"symfony/http-client": "^7.3|^8.0"
3637
},
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/Tests export-ignore
2+
/phpunit.xml.dist export-ignore
3+
/.git* export-ignore

0 commit comments

Comments
 (0)