现如今,ai已经风卷全球,通过ai可以实现很多很多功能,对于喜欢建立自己博客的朋友来说,今天这篇文章可以完全解放你的双手,实现博客全自动化发文章,本功能是基于国内大型AI公司moonshot api实现,如果小伙伴习惯用chatgpt,仅需修改代码内的key和请求地址即可。
在开始前,我们先来看看这一系列功能实现的简要概述:
一、搭建表单提交页面及css样式
二、编写请求api的插件并将结果写入html文件
三、配置火车头采集器获取标题并采集
搭建表单提交页面及css样式
我们需要搭建一个表单提交页面,把你要生成的prompt(提示)传递给请求插件,单提交页面代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AI根据提示自动写标题</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
$("form").submit(function(e){
e.preventDefault(); // 阻止表单提交的默认行为
$.ajax({
type: "POST",
url: "aititle.php",
data: $(this).serialize(), // 将表单数据序列化为字符串
success: function(data){
// 在页面上显示服务器返回的消息
$("#message").text(data);
// 1 秒后刷新页面
setTimeout(function(){
location.reload();
}, 1000);
}
});
});
});
</script>
</head>
<body>
<form>
<h1>提交提示信息到AI助手</h1>
<label for="titles">请输入标题(一行一个,最多100个):</label>
<textarea name="titles" id="titles" rows="100"></textarea><br><br>
<label for="category">请选择站点:</label>
<select name="category" id="category">
<option value="category1">站点名称</option>
</select>
<br><br>
<input type="submit" value="提交">
</form>
<div id="message"></div> <!-- 显示提交成功的消息 -->
</body>
</html>
再来为表达html增加一个css样式,让页面更好看:
body {
background-color: #f5f5f5;
padding: 2rem;
display: flex;
justify-content: center;
align-items: center;
height: 70vh;
}
form {
width: 90%;
max-width: 40rem;
padding: 2rem;
border: 1px solid #ccc;
border-radius: 0.5rem;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
background-color: #96979a;
}
h1 {
font-size: 2rem;
margin-bottom: 1rem;
}
label {
display: block;
font-weight: bold;
margin-bottom: 0.5rem;
}
textarea,
input[type="submit"] {
display: block;
margin-bottom: 1.5rem;
width: 100%;
padding: 0.5rem;
font-size: 1rem;
border: none;
border-radius: 0.25rem;
background-color: #e0dbdb;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
textarea {
height: 10rem;
}
input[type="submit"] {
background-color: #26517c;
color: #fff;
cursor: pointer;
}
input[type="submit"]:hover {
background-color: #0069d9;
}
熟悉代码的朋友可以看到,在表单提交代码里,有一个url: "aititle.php"
,这个文件就是接下来要创建的请求插件文件,以下是代码,代码请求的是moonshot api,需要请求openai api的请修改代码,以下是完整代码:
<?php
// 定义 OpenAI API 的访问密钥和模型名称
$openai_api_key = 'sk-'; // moonshot的API密钥
$model_name = 'moonshot-v1-8k';
// 获取表单提交的问题参数
if (isset($_POST['titles'])) {
$titles = $_POST['titles'];
} else {
die('缺失参数: titles');
}
// 添加上下文信息到 prompt 中
$context = '你是一个专门写文章标题的高手,请写出类似百度知道、百度经验这样有关键词指数的百科问答型标题,输出的标题需符合以下要求:
1.行业尽量细分,不要太模糊,标题前面不要加上行业分类,直接输出纯标题;
2.标题不要带年份,如2023等;
3.标题结尾不要加问号;
4.不要涉及金融理财和疾病行业;
5.一行一个,每次列出5个标题。';
// 设置 OpenAI API 请求的参数
$data = array(
'model' => $model_name,
'messages' => [
[
"role" => "user",
"content" => $titles . ' ' . $context
]
],
'temperature' => 0.7, // 增加温度以增加随机性
'max_tokens' => 4096, // 增加生成的最大令牌数以增加输出长度
);
// 将参数转换为 JSON 格式
$data_string = json_encode($data);
// 设置 cURL 请求参数
$ch = curl_init('https://api.moonshot.cn/v1/chat/completions');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string),
'Authorization: Bearer ' . $openai_api_key
));
// 执行 cURL 请求
$response = curl_exec($ch);
// 将 API 返回结果转换为 PHP 数组
$response_array = json_decode($response, true);
// 关闭 cURL 请求
curl_close($ch);
// 检查 API 返回结果中是否有错误信息
if (isset($response_array['error'])) {
// 输出错误信息
echo '请求出错: ' . $response_array['error']['message'];
} else {
// 获取 API 返回的标题内容
$titles = $response_array['choices'][0]['message']['content'];
// 同时移除序号、双引号、英文以及中文问号
$titles = preg_replace('/^\d+\.\s*|"|“|”|\?|?/mu', '', $titles);
// 将标题按行分割
$titlesArray = explode("\n", $titles);
// 添加前缀到每个标题并用<h3>标签包裹
$formattedTitles = array_map(function($title) {
if (trim($title) === '') {
return ''; // 跳过空行
}
$prefixedTitle = "https://你的域名/title.php?text=" . trim($title);
return "<h3>" . htmlspecialchars($prefixedTitle) . "</h3>";
}, $titlesArray);
// 合并标题,并在每个标题后面添加换行符
$titlesToWrite = implode(PHP_EOL, $formattedTitles);
// 定义文件路径
$file_path = '/www/wwwroot/你的域名/keywordhtml/autotitles.html';
// 将处理后的标题追加到HTML文件中
file_put_contents($file_path, $titlesToWrite . PHP_EOL, FILE_APPEND);
// 输出成功信息
echo "标题生成成功!已添加到 {$file_path}";
}
?>
title.php代码需要注意的几个地方:
1、需要填写你的自己的moonshot api key
2、$prefixedTitle = "https://你的域名/title.php?text=" . trim($title)
中的title.php是一个空文件,这里主要是方便后期火车头采集器在网页地址获取标题。
3、$file_path = '/www/wwwroot/你的域名/keywordhtml/autotitles.html
‘;这一句代码是定义请求api的组合结果最后保存到哪个文件,如果没有会自动创建。
这样我们就得到了ai生成标题的文件,将该地址填入火车头采集器中即可实现采集目的,火车头采集器部分的教程大家可以参考这篇内容来实现:
最后把这些创建的文件放入网站根目录或者任何你想放置的地方,注意修改代码里的路径!接下来,你想要ai写关于什么方面的内容,就可以在表单输入框里自由操作啦。
有问题可以在本文评论区写下来,不忙的情况下可以帮助大家解决。以上就是今天给大家介绍的ai的一个玩法,感兴趣的小伙伴可以去试试啦~
本内容由作者【无涯探索】自发贡献,版权归原作者所有,秒鲨号仅提供存储服务,不承担相应的法律责任。如您发现有涉嫌抄袭侵权的内容,请发送举报信息至邮箱:ddzpay@hsrjtk.com,我们将尽快核实处理。
更多精彩内容请点击→最新资讯