by Devin Yang

建立于: 3年前 ( 更新: 3年前 )

最近好像大家都在讲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

需要登入才可留言!

类似文章


docker,container,laravel

在Nas上手动更新D-Laravel的使用者id全日志

本文全日志,绍我如何更新我家Nas上的fpm image的uid。 本文章中,您应该会学会查询容器id及commit容器等相关概念。

laravel

Laravel 5.6有那些新变更

Laravel 5.6计划於2018年2月释出,有那些变更呢?我们来看看吧。(Argon2i Password Hashing Algorithm) Argon2 提供以下三种版本: 1. 在Laravel 5.6将支持 Argon2i密码哈希算法。 (Argon2i Password Hashing Algorithm) 2. Argon2d最大限度地抵抗GPU的破解攻击。 3. Argon2i经过优化,可以抵抗旁路攻击(side-channel attack)。 三、Argon2id是一个混合版本。 它遵循Argon2i方法进行第一遍遍历,然后使用Argon2d方法进行后续遍历。 看不懂没关系,反正我也看不懂,重点是,反正比较安全是可以确定的。这是开放密码杂^竞赛(PHC)在2015年7月20日

Laravel,artisan

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

本文采用Lravel 9.40.1进行操作我相信很多人都知道了--env的用法,但我还是提供一下信息给Laravel的初学者。在artisan的命令中,我们能透过--env来指定使用不同的.env档,这样在不同的子域名下,我就能用不同的环境甚至是不同的数据库。大家应该也有注意到,本站采用的是多语的环境,写两套吗?当然没有,基本上我建了多个.env在同一个Project中。