by Devin Yang

建立於: 1年前 ( 更新: 1年前 )

最近好像大家都在講OpenAI,如果您也想玩,可以在Laravel的API寫個簡易的API測試哦。
因為可以用curl呼叫,所以透過guzzle就能呼叫了。

如果您登入了openai的網站,可在此處看到官方的教學說明
https://beta.openai.com/docs/quickstart/build-your-application

API的KEY的申請,就在這頁的下方就有按鈕了

+ Create new secret key


再把key加到Laravel的.env中,這裡我取名叫
OPENAI_KEY=

在routes/api.php中新增/openai功能 

use GuzzleHttp\Client;
use GuzzleHttp\Exception\ClientException;
Route::get('/openai', function (Request $r) {
    if(empty($r->text)){
        return sprintf("呼叫API:<br/>%s/api/openapi?text=問的問題",env("APP_URL"));
    }
    $client = new Client;
    $api_url = "https://api.openai.com/v1/completions";
    $json = <<<JSON
                {
                    "model": "text-davinci-003",
                    "prompt": "用正體中文回應我:$r->text",
                    "temperature": 0.9,
                    "max_tokens": 150,
                    "top_p": 1,
                    "frequency_penalty": 0.0,
                    "presence_penalty": 0.6,
                    "stop": [" Human:", " AI:"]
                }
            JSON;
    $json = json_decode(preg_replace('/[\x00-\x1F]/', '', $json), true);
    try {
        $r = $client->request('POST', $api_url, [
            'headers' => [
                'Authorization' => 'Bearer ' . env("OPENAI_KEY")
            ],
            'json' => $json
        ]);
    } catch (ClientException $e) {
        return json_decode($e->getResponse()->getBody()->getContents(), true);
    }
    return $r;
});


然後打開自己Laravel專案的/api/openai?text=就能輸入測試囉

在官方網站有大量的範例可以參考,中間的Json如何設定的
https://beta.openai.com/examples/

 

Tags: openapi ai laravel

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


Laravel,artisan

關於Laravel的artisan中的--env的操作

本文採用Lravel 9.40.1進行操作我相信很多人都知道了--env的用法,但我還是提供一下資訊給Laravel的初學者。在artisan的指令中,我們能透過--env來指定使用不同的.env檔,這樣在不同的子域名下,我就能用不同的環境甚至是不同的資料庫。大家應該也有注意到,本站採用的是多語的環境,寫兩套嗎?當然沒有,基本上我建了多個.env在同一個Project中。

docker,laravel

如何使用多個YAML檔,執行多個docker的container服務

這個影片介紹如何用docker-compose命令,指定多個YAML結構語言設定檔,來建立容器的執行,並且介紹在D-Laravel的使用環境中,我們如何透過使用.env的方式,簡化docker-compose的啟動命令。

laravel

Laravel 5.7新功能dump-server。

Laravel 5.7.x,artisan指令開始支援並整合了Symfony的傾印伺服器(dump-server)囉。 透過artisan指令,啟動dump-server,我們可以將dump的資料顯示在console端。