ChatGPT – php 安裝用法教學 (laravel)

官方提供了 HTTP 的教學範例,其實可以直接訪問 https://platform.openai.com/docs/api-reference/introduction。自己用 PHP 寫一個 curl 當然沒問題,但就是懶了,你當然可以用 ChatGPT 幫你生產一篇,然後你做修改。但更好的方法我覺得可以使用套件。後面介紹套件的方式

註冊

先註冊一個一般的使用者:https://openai.com/blog/chatgpt,在右上角點擊 “View API Keys” 查看我們程式碼最需要的金鑰。

點擊後複製鑰匙,官方說只會顯示一次,如果搞丟了,就要產生一把新的

開始開發

我直接使用 laravel 開發,所以直接

composer require tectalic/openai

然後寫程式碼

use GuzzleHttp\Client;
use Tectalic\OpenAi\Authentication;
use Tectalic\OpenAi\Manager;

$openaiClient = Manager::build(
    new Client(),
    new Authentication(
        "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"
    )
);

$data = [
    'model' => 'gpt-3.5-turbo',
    'messages' => [
        [
            'role' => 'user',
            'content' => '請問你會說中文嗎'
        ],
    ],
];

$response = $openaiClient->chatCompletions()->create(
    new \Tectalic\OpenAi\Models\ChatCompletions\CreateRequest($data)
)->toArray();

// 輸出你就看到囉
dd($response['choices'][0]['message']['content']);

完成!

參考

Composer – 查詢套件的當前版本

用指令找最快。

當你安裝的套件是有版本號,那麼可以

composer show 套件名稱 | grep 'versions'

如果是自己私有或是公司內部的 repository 而沒有公開在 packagists ,可能沒有特別壓上版本號,這時候我們要認的就是 commit 的 hash 值,可以

composer show 套件名稱 | grep 'source'

當然可以直接看檔案 composer.lock 找版本,只是要用文字搜尋,就會比較麻煩。

mongo – 安裝 mongodump 的方法

我目前要在現在的主機,備份遠端的 mongo,那麼必須要在本機使用 mongodump,要安裝工具

apt-get update
apt install mongo-tools

這樣就可以下指令

mongodump --forceTableScan --host="遠端 IP" --db=你想備份的資料庫 --out="匯出的絕對路徑" --gzip

Docker – 從 Container 的網路連線到 host 主機外的連線方法

我在 Host 主機中,想要把 Docker 中的 A Container連線到 Host 上 Docker 外的其他服務,如資料庫 MongoDB,可以直接透過 “host.docker.internal” 連線,如下圖

我打算在 A Container 透過 cli 備份 host 上的 MongoDB 資料庫,那麼就可以這麼下指令
mongodump --forceTableScan --host="host.docker.internal" --db=MyDatabase --out="/var/www/backup" --gzip

參考官方:https://docs.docker.com/desktop/networking/

php – 錯誤解決方法:LogicException: Please make sure the PHP Redis extension is installed and enabled.

這幾天 laradock 重新安裝,跑 test 會出現
LogicException: Please make sure the PHP Redis extension is installed and enabled.

追原因應該是 php-redis 現在也要使用版本號的關係,但是 laradock 的 Dockerfile 沒更新

查找已安裝的套件

sudo dpkg -l | grep php

因此在 workspace 下指令即可

apt-get update

# 先查詢可安裝的套件是否存在
apt-cache search php7.4-redis

# 執行安裝
apt-get install php7.4-redis

檢查看是否安裝

dpkg -l | grep php 

# 或

php -m

這樣就正常了