如何让 AI 稳定的按模板输出

2023-07-06 14:26:26 +08:00
 tokoy

我用博客模板搭建了一个ACG 资讯搬运的网站,原理就是抓取日站的 html ,然后截取相关的标签给到 AI 去提取信息和翻译,模板 prompt 是:

const template = `---
layout: '../../layouts/MarkdownPost.astro'
title: '替换为中文标题'
pubDate: 日期为 YYYY-MM-DDThh:mm:ssZ
description: '替换为中文描述'
author: '替换为作者名称'
cover:
  url: '替换为 https://animeanime.jp/imgs/ogp_f/的图片'
  square: '替换为 https://animeanime.jp/imgs/ogp_f/的图片'
  alt: "cover"
tags: ['news','anime','替换为文章标签']
theme: 'light'
featured: false
---
![cover](替换为 https://animeanime.jp/imgs/ogp_f/的图片)
`;

const prompt = `转换为中文,保持模板格式: ${template}`

temperature 也设置为了 0,但输出的结果有时候正常,有时候就压根不转换或者不翻译成中文,导致经常得手动去修复。 想问问有没有 AI prompt 大佬给点建议,如何修改 prompt 可以让 AI 更加稳定的输出。

文章本体的 prompt 是:

const prompt1 = "你是一个日本动漫资讯的编辑,你需要执行下面的步骤对文本进行处理: 1.把 html 转换成 markdown 格式,需要保留 imgs 图片地址。2.将文章翻译成中文,人名和作品名称不需要翻译。"
913 次点击
所在节点    问与答
6 条回复
xmumiffy
2023-07-06 14:31:13 +08:00
用 functions 并且 function_call 强制指定
locoz
2023-07-06 14:33:09 +08:00
先说用的是什么模型,这种实际类似于自定义格式的需求需要模型具备一定程度的逻辑能力,逻辑能力差的就很容易抽风
tokoy
2023-07-06 14:37:17 +08:00
@locoz 用的 gpt-3.5-turbo
locoz
2023-07-06 14:47:10 +08:00
@tokoy #3 GPT3.5 确实逻辑能力差一些,而且可能出现 HTML 比较长导致 Token 数量过多的情况,这个只能通过其他取巧的方式处理了,比如先只做数据提取,然后再对提取后的数据做翻译
tokoy
2023-07-06 14:57:31 +08:00
@locoz html 过长这个我已经做了拆分了,所以还好,我可以确定需要的标签数据都已经在提取出来了,就是经常会出现不翻译,或者压根不按模板转换,甚至如果把 prompt 里的转换换成翻译,就直接给你把模板都翻译成中文。修改 prompt 后对效果也影响蛮大的,所以想着是不是 prompt 问题。
@xmumiffy 这个我研究下,谢谢!
locoz
2023-07-06 15:21:13 +08:00
@tokoy #5 你说的这种就是很典型的模型逻辑能力差导致的问题,想要一次性转换格式并进行其他处理就会抽风。我有类似场景做了很多尝试,最后也没办法解决,还是拆成了多步再做的处理。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/954573

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX