/open-ai

A PHP SDK for accessing the OpenAI GPT-3 API

Primary LanguagePHPMIT LicenseMIT

OpenAI GPT-3 Api Client in PHP

Latest Version on Packagist Total Downloads

For more information, you can read laravel news blog post.

Installation

You can install the package via composer:

composer require orhanerday/open-ai

Usage

To get started with this package, you'll first want to be familiar with the OpenAI API documentation and examples.

use Orhanerday\OpenAi\OpenAi;
// Load your key from an environment variable
$open_ai = new OpenAi(env('OPEN_AI_API_KEY'));

/**Completions
 * Given a prompt, the model will return one or more predicted completions, 
 * and can also return the probabilities of alternative tokens at each position.
 * */
$complete = $open_ai->complete([
    'engine' => 'davinci',
    'prompt' => "Hello",
    'temperature' => 0.9,
    "max_tokens" => 150,
    "frequency_penalty" => 0,
    "presence_penalty" => 0.6,
]);

/** Searches
 *
 * Given a query and a set of documents or labels,
 * the model ranks each document based on its semantic 
 * similarity to the provided query.
 * */
$search = $open_ai->search([
    'engine' => 'ada',
    'documents' => ["White House", "hospital", "school"],
    'query' => "the president",
]);

/** Answers
 *
 * Given a question, a set of documents, and some examples,
 * the API generates an answer to the question based on the information in the set of documents.
 * This is useful for question-answering applications on sources of truth,
 * like company documentation or a knowledge base.
 * */
$answer = $open_ai->answer([
    "documents" => ["Puppy A is happy.", "Puppy B is sad."],
    "question" => "which puppy is happy?",
    "search_model" => "ada",
    "model" => "curie",
    "examples_context" => "In 2017, U.S. life expectancy was 78.6 years.",
    "examples" => [["What is human life expectancy in the United States?", "78 years."]],
    "max_tokens" => 5,
    "stop" => ["\n", "<|endoftext|>"],
]);

/** Classifications
 *
 * Given a query and a set of labeled examples,
 * the model will predict the most likely label for the query. 
 * Useful as a drop-in replacement for any ML classification or text-to-label task.
 * */
$classification = $open_ai->classification([
    'examples' => [
        ["A happy moment", "Positive"],
        ["I am sad.", "Negative"],
        ["I am feeling awesome", "Positive"],
    ],
    'labels' => ["Positive", "Negative", "Neutral"],
    'query' => "It is a raining day =>(",
    'search_model' => "ada",
    'model' => "curie",
]);

/** List engines
 *
 * Lists the currently available engines,
 * and provides basic information about each one such as the owner and availability.
 */
$engines = $open_ai->engines();

/** Retrieve engine
 *
 * Retrieves an engine instance, 
 * providing basic information about the engine such as the owner and availability.
 */
$engine = $open_ai->engine('davinci');

// this will print $search
echo $search;

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please report security vulnerabilities to orhanerday@gmail.com

Credits

License

The MIT License (MIT). Please see License File for more information.

Donation

Buy Me A Coffee