Просмотр файла delta_framework-main/core/lib/Core/ExternalServices/ChatGPT.class.php

Размер файла: 1.75Kb
<?php

    namespace Core\ExternalServices;

    class ChatGPT
    {
        private string $token;

        private const BASE_URL = 'https://api.openai.com/v1/chat/completions';

        public function __construct(string $token = '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')
        {
            $this->token = $token;
        }

        public function ask(string $question, $context = [])
        {
            $url = 'https://api.openai.com/v1/chat/completions';

            $headers = [
                'Authorization: Bearer ' .$this->token,
                //"OpenAI-Organization: YOUR-Organization-ID",
                'Content-Type: application/json',
            ];

            // Define messages
            $messages   = [];
            $messages[] = ['role' => 'user', 'content' => $question];
            $messages   = array_merge($context, $messages);



            $data = [
                'model'       => 'gpt-3.5-turbo',
                'messages'    => $messages,
                'max_tokens'  => 1600,
                'temperature' => 0.5,
            ];

            // init curl
            $curl = curl_init(self::BASE_URL);
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
            curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);//
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

            $result = curl_exec($curl);
            $error = curl_errno($curl);
            curl_close($curl);

            if ($error) {
                return 'Error:' . $error;
            }

            return json_decode($result,true);
        }
    }