Learn about the adapters used in Polyglot for LLM providers.
namespace Cognesy\Polyglot\Inference\Drivers\OpenAI; class OpenAIRequestAdapter implements ProviderRequestAdapter { public function __construct( protected LLMConfig $config, protected CanMapRequestBody $bodyFormat ) { ... } public function toHttpClientRequest( array $messages, string $model, array $tools, array|string $toolChoice, array $responseFormat, array $options, Mode $mode ): HttpRequest { ... } protected function toHeaders(): array { ... } protected function toUrl(string $model = '', bool $stream = false): string { ... } }
namespace Cognesy\Polyglot\Inference\Drivers\OpenAI; class OpenAIMessageFormat implements CanMapMessages { public function map(array $messages): array { ... } protected function mapMessage(array $message): array { ... } protected function toNativeToolCall(array $message): array { ... } protected function toNativeToolResult(array $message): array { ... } }
namespace Cognesy\Polyglot\Inference\Drivers\OpenAI; class OpenAIBodyFormat implements CanMapRequestBody { public function __construct( protected LLMConfig $config, protected CanMapMessages $messageFormat ) { ... } public function map( array $messages, string $model, array $tools, array|string $toolChoice, array $responseFormat, array $options, Mode $mode ): array { ... } private function applyMode( array $request, Mode $mode, array $tools, string|array $toolChoice, array $responseFormat ): array { ... } }
namespace Cognesy\Polyglot\Inference\Drivers\OpenAI; class OpenAIResponseAdapter implements ProviderResponseAdapter { public function __construct( protected CanMapUsage $usageFormat ) { ... } public function fromResponse(HttpResponse $response): ?InferenceResponse { ... } public function fromStreamResponse(string $eventBody): ?PartialInferenceResponse { ... } public function toEventBody(string $data): string|bool { ... } protected function makeToolCalls(array $data): ToolCalls { ... } protected function makeContent(array $data): string { ... } protected function makeContentDelta(array $data): string { ... } protected function makeToolId(array $data): string { ... } protected function makeToolNameDelta(array $data): string { ... } protected function makeToolArgsDelta(array $data): string { ... } }
namespace Cognesy\Polyglot\Inference\Drivers\OpenAI; class OpenAIUsageFormat implements CanMapUsage { public function fromData(array $data): Usage { ... } }