好的,以下是用ThinkPHP查询wenda_content表id小于500输出title的代码:
Copy Code
<?php
use think\Db;
$result = Db::table('wenda_content')
->where('id', '<', 500)
->column('title');
$title = implode(', ', $result);
将$title作为请求参数调用OpenAI API:
$url = 'https://api.openai.com/v1/chat/completions';
$data = array(
'prompt' => '$title', // 用于生成AI回复的文本$title
'max_tokens' => 50, // AI生成回复的最大长度
'n' => 1, // 要生成的AI回复的数量
'temperature' => 0.5, // 控制AI回复多样性和创意的温度,值越高表示生成的回复越不确定和多样化
'frequency_penalty' => 0.5, // 通过惩罚过于频繁出现的词汇,来使AI生成更为丰富多样的回复
'presence_penalty' => 0.5, // 通过惩罚不需要出现在回复中的词汇,来避免AI生成无关紧要的回复
'stop' => '\n' // 当AI生成的回复中出现该停止符时,停止生成后续内容。
);
$options = array(
'http' => array(
'header' => "Content-type: application/json\r\nAuthorization: Bearer YOUR_API_KEY\r\n",
'method' => 'POST',
'content' => json_encode($data),
),
);
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
$result = json_decode($response, true);
输出返回结果的示例代码:
$response_text = json_encode($result, JSON_PRETTY_PRINT);
echo $response_text;
这将以JSON格式打印出API返回的完整响应内容,包括AI生成的回复等信息。您也可以根据需要从响应中提取特定的信息。
最后再将返回得到的数据保存到回复表里。 这样就可以把问答系统里的旧数据加上ChatGPT的回答,temperature数值一定要最低,不然旧要胡说八道了。
后面只要在发布问答的时候加入一些代码,就可以实现发布新提问后自动加入ChatGPT的回答。