PHP言語でchatgpt3.5モデルを記述する例

もちろん!PHP 言語を使用して OpenAI API を呼び出し、ChatGPT-3.5 モデルと対話します。まず、PHP 7.2 以降がインストールされており、OpenAI API キーが利用可能であることを確認してください。

以下は、OpenAI API を使用して ChatGPT-3.5 モデルと通信する方法を示す基本的な PHP の例です。

```php
<?php

// 函数用于向OpenAI API发送请求
function openaiChat($messages) {
    $apiKey = 'YOUR_OPENAI_API_KEY';
    $url = 'https://api.openai.com/v1/engines/davinci-codex/completions';

    $headers = array(
        'Content-Type: application/json',
        'Authorization: Bearer ' . $apiKey
    );

    $data = array(
        'messages' => $messages
    );

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
}

// 设置用户和AI的初始对话
$chat = array(
    array('role' => 'system', 'content' => 'You are a helpful assistant.'),
    array('role' => 'user', 'content' => 'Who won the world series in 2020?'),
    array('role' => 'assistant', 'content' => '')
);

// 与AI进行对话
while (true) {
    // 调用OpenAI API发送请求
    $response = openaiChat($chat);

    // 处理API响应
    $json = json_decode($response, true);
    $message = end($json['choices']);
    $chat[] = array('role' => 'user', 'content' => ''); // 准备用户输入的占位符

    if ($message['role'] == 'assistant') {
        // 显示AI的回复
        echo 'AI: ' . $message['message']['content'] . "\n";

        // 获取用户输入
        $userInput = trim(fgets(STDIN));

        // 更新对话
        $chat[count($chat) - 1]['content'] = $userInput;
    } else {
        // AI已经完成对话,退出循环
        break;
    }
}
```

上記は基本的な例であり、ニーズに応じて変更および拡張できます。「YOUR_OPENAI_API_KEY」を独自の OpenAI API キーに忘れずに置き換えてください。

このコードは、AI が対話を終了するまでの単純な対話ループを実装します。各ループで、OpenAI API にリクエストを送信し、AI から応答を取得して、ユーザーがダイアログの次の行に入るのを待ちます。AI の応答は `$message['message']['content']` で抽出されます。

この例でのユーザー入力は、「fgets(STDIN)」を使用してコマンドラインで取得されることに注意してください。Web アプリケーションなどの他のコンテキストでコードを使用する場合は、ユーザー入力を取得するために別の方法を使用する必要がある場合があります。

この例がお役に立てば幸いです。さらに詳しいガイダンスが必要な場合はお気軽にお問い合わせください。

おすすめ

転載: blog.csdn.net/qq_26429153/article/details/132230611