Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
16.67% covered (danger)
16.67%
1 / 6
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
OpenAIClient
16.67% covered (danger)
16.67%
1 / 6
50.00% covered (danger)
50.00%
1 / 2
4.31
0.00% covered (danger)
0.00%
0 / 1
 setClient
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 chat
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace Mbvb1223\ChatAiMulticlient\Clients;
6
7use OpenAI;
8use OpenAI\Client;
9
10class OpenAIClient extends BaseClient
11{
12    protected string $model = 'gpt-3.5-turbo';
13    private Client $client;
14
15    public function setClient(string $apiKey): void
16    {
17        $this->client = OpenAI::client($apiKey);
18    }
19
20    public function chat(string $text, string $model = null, array $options = []): string
21    {
22        $response = $this->client->chat()->create([
23            'model' => $model ?? $this->getModel(),
24            'messages' => [['role' => 'user', 'content' => $text]],
25        ]);
26
27        return $response->choices[0]->message->content;
28    }
29}