访问 coze 申请对应的COZE_API_KEY、COZE_BOT_ID
- 创建个人访问令牌,有效期为30天,现在没有永久有效了
- 拿到令牌(这个就是COZE_API_KEY),这个后面有用到,保存好
- 创建机器人,然后根据你要的需求进行配置,最后点击发布,然后勾选扣子智能体商店和Agent as API,然后点击发布
4. 点击复制就会生成对应的https://www.coze.cn/store/bot/7436587430495076364?bot_id=true
,7436587430495076364就是COZE_BOT_ID,这个后面有用到,保存好
查看主要代码
生成Html模板
去掉多余的代码,只保留核心代码
给AI一些提示词
// 分析网站,自动打标签、获取标题、描述、图标地址
export async function analyzeWebsite(inputUrl: string) {
const { sendRequest, responseContentPath } = getServer()
let { html, url } = await fetchHtml(inputUrl)
const payload = await createPayload({ html, url })
const content = `
你是一个熟悉 Web HTML、拥有丰富的 SEO 优化经验、可以熟练地提炼归纳信息的高级人工智能机器人。
我将会给你一份 JSON,它有这些 Key:
- url: 待分析网站的链接地址
- head: 待分析网站的 HTML 文档的 <head> 的内容。
- innerText: 待分析网站的 HTML 文档的 <body> 的 innerText,不同元素下的文本会用 / 分隔。
- tags: 一组标签,使用 / 分隔。
请你根据提供的 head 和 innerText 推断这个网站的主题、内容、目标群体。并且以此执行下面 4 个任务:
Task1 为网站取一个简短、直观、明了的标题,结果存储在 {{title}} 中,同时要注意:
- 参考 <head> 中的 <title> 标签内容。
- 减少商业营销性质的文字。
- 如果你有更好的网站标题候选,就用你的,否则可以直接用 <title> 的内容。
- 文本长度控制在 20 字之内。
Task2 给网站一段简短、直观、明了的介绍,结果存储在 {{description}} 中,同时要注意:
- 参考 <head> 中的 <meta name="description"> 标签的 content 内容。
- 减少商业营销性质的文字。
- 文本长度不超过 100 字。
- 请避免太过宽泛的描述。
Task3 分析网站的图标地址,结果存储在 {{favicon}} 中,请注意:
- 结果必须以 http 起始
- 如果结果以 / 起始,请使用传入的 url 与其拼接作为正确结果
Task4 从传入的 JSON 的 tags 中找到和这个网站主题最为相关若干个标签,结果存储在 {{tags}} 中,同时要注意:
- 你可以将标签和网站的相关性打个分,分值介于 1~100,数字越大代表相关性越强。
- 入选得分大于 80 的标签。
- 从 tags 中最终选出的标签个数最多为 5 个。
- 如果 tags 中的标签的相关性得分都很低,即你认为这些标签和网站相关性都很低,可以一个也不入选。
- 如果你认为有其他标签,虽然不在 tags 中的标签中但是和当前网站相关度很高,也可以返回,但是最多 2 个。
- 最终结果为字符串数组,例如:["A", "B", ...]。
将处理结果以 JSON 格式输出,并且有以下 key:
- title 值为 {{title}}。
- description 值为 {{description}}。
- tags 值为 {{tags}}。
- favicon 值为 {{favicon}}。
以下是你需要分析的 JSON:
${JSON.stringify(payload)}
`
.replace(/\\/g, '')
.replace(/\s{2,}/g, '')
// `.replace(/\s/g, '')
process.env.AI_DEBUG && console.log(content)
const rsp = await sendRequest(content)
const chatMessageContent = objGet(rsp, responseContentPath)
process.env.AI_DEBUG && console.log(rsp, chatMessageContent)
if (!chatMessageContent) {
throw new Error('AI 响应异常')
}
return chatResultAdapter(chatMessageContent)
}
然后点击AI智能解析,即可得到结果。
接口请求的结果也会回显到页面上,方便添加,高效新增对应的标签。