Skip to content

A quick and easy extension for effortlessly handling OpenAI's API for ChatGPT.

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE.md
Unknown
LICENSE.txt
Notifications You must be signed in to change notification settings

PHPExpertsInc/ChatGPTSpeaker

Repository files navigation

ChatGPTSpeaker

Maintainability Test Coverage

ChatGPTSpeaker is a PHP Experts, Inc., Project meant to ease the accessing of the OpenAI APIs.

This library uses RESTSpeaker to utilize the Guzzle HTTP Client via the Composition architectural pattern.

You might be very interested in the projects that used by and/or adjacent to this project:

Installation

Via Composer

composer require phpexperts/chatgpt-speaker

Copy .env.example to .env in your project's root directory and put in your OpenAI credentials.

Change log

Please see the changelog for more information on what has changed recently.

Usage

By default, JSON results are returned.

    $chatGPT = new ChatGPTSpeaker();

    $prompt = <<<PROMPT
    Please create a table of the PHP major version releases along with the date of release.
    PROMPT;
    $response = $chatGPT->prompt($prompt);

Response:

{
  "model": "gpt-3.5-turbo",
  "messages": {
    "0": {
      "role": "user",
      "content": "format responses in JSON"
    },
    "1": {
      "role": "user",
      "content": "    Please create a table of the PHP major version releases along with the date of release."
    },
    "role": "assistant",
    "content": {
      "php_major_version_releases": [
        {
          "version": "PHP 3",
          "release_date": "June 6, 1998"
        },
        {
          "version": "PHP 4",
          "release_date": "May 22, 2000"
        },
        {
          "version": "PHP 5",
          "release_date": "July 13, 2004"
        },
        {
          "version": "PHP 6",
          "release_date": "No official release"
        },
        {
          "version": "PHP 7",
          "release_date": "December 3, 2015"
        },
        {
          "version": "PHP 8",
          "release_date": "November 26, 2020"
        }
      ]
    }
  }
}

To get the same basic results as the ChatGPT user interface, do the following:

    $chatGPT = new ChatGPTSpeaker();
    $chatGPT->returnText();

    $prompt = <<<PROMPT
        Please create a table of the PHP major version releases along with the date of release.
    PROMPT;
    $response = $chatGPT->prompt($prompt);

 

(From RESTSpeaker) To convert the RESTSpeaker API request into a curl CLI command, do this:

composer require --dev octoper/cuzzle
$curlCLI = $chatGPT->api->http->testHandler->getRecords()[0];

Output: 
curl 'https://api.openai.com/v1/chat/completions' -A 'PHPExperts/RESTSpeaker-2.4 (PHP 8.3.3)' \
   -H 'Content-Type: application/json'  -H 'Authorization: Bearer [redacted]' \ 
   -X POST  -d '{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"Say 'Hello, World!'."}]}'

(From RESTSpeaker) To get the raw payload as returned by api.openai.com:

$rawReturn = (string)$chatGPT->api->getLastResponse()->getBody();

Use cases

✔ Returns the same responses as chat.openai.com.

Testing

phpunit

Roadmap

  • Implement the Models endpoint
  • Implement the Images endpoints
  • Implement the Files endpoint
  • Implement the Audio endpoints
  • Implement the new Embeddings endpoints for AI Model Training
  • Implement the new Fine Tunings Endpoints for custom GPT Agents
  • Implement the Moderations endpoint
  • Implement support for the GPT5 Agents

Contributors

Theodore R. Smith [email protected]
GPG Fingerprint: 4BF8 2613 1C34 87AC D28F 2AD8 EB24 A91D D612 5690
CEO: PHP Experts, Inc.

License

CC-BY-ND-4.0 Creative Commons NoDerivations v4.0: Please see the license file for more information.

YOU MAY FORK THIS PROJECT.

YOU MAY NOT PUBLISH ANY DERIVATION of this project to either your own website or a third-party host.

About

A quick and easy extension for effortlessly handling OpenAI's API for ChatGPT.

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE.md
Unknown
LICENSE.txt

Stars

Watchers

Forks

Packages

No packages published