如何使用ChatGPT生成高赞小红书标题、标签和内容?

您所在的位置:网站首页 solo模型怎么读 如何使用ChatGPT生成高赞小红书标题、标签和内容?

如何使用ChatGPT生成高赞小红书标题、标签和内容?

2023-03-16 14:22| 来源: 网络整理| 查看: 265

最近有个很火的应用:ChatPDF

ChatPDF这个应用最近非常火,用户只要上传自己的pdf就可以通过聊天的方式询问这个PDF的内容。我上传了阿里Java开发手册尝试了一下,效果还是很惊艳的,读一本书的效率瞬间提高了很多。

ChatPDF 总结Java规范要点ChatPDF原理

在网上搜索了一下ChatPDF的实现原理,发现了这篇文章,https://v2ex.com/t/921750,这篇文章是根据https://github.com/mckaywrigley/paul-graham-gpt这个开源库来总结的,大概就是将源数据拆成若干片段,然后获取这些片段的embedding。再获取问题的embedding,根据embedding计算片段和问题最接近的n个片段,然后将这些片段塞给ChatGPT,用户对ChatGPT询问,ChatGPT会根据塞给的n个片段进行回答。总结来说ChatGPT的优势在于将已有的知识用更人性化的方式说了一遍。

ChatGPT + 小红书 = ChatXiaoHongShu

我在想是不是可以用同样的方法来做一个小工具,然后想到了小红书,小红书推文分为标题、内容和标签三个主要部分,是不是可以做一个根据小红书内容生成标题或者标签的AI工具。我们先用chatgpt测试一下它是不是具备这样的功能。我们先问一下ChatGPT是不是知道小红书,确定它理解小红书这个应用。然后输入一个小红书的推文内容,让ChatGPT生成给出一个吸引人的标题。

ChatGPT 生成小红书标题

从生成的结果上看还是可以得到一个不错的结果的。

训练 ChatGPT

根据最新的消息,openai已经开发了chatgpt的接口,我翻阅了openai的文档,根据openai文档上显示的chatgpt模型目前不能训练,只能塞给chatgpt api一些上下文信息,然后对chatgpt进行询问得到答案。这个限制导致我们不能训练特定类型的chatgpt,不过我们可以在chatgpt上预设一些示例对话内容:

{"role": "system", "content": "你是一个小红书作家,我输入一篇小红书推文,你给这个小红书起一个名字。"} {"role": "user", "content": "小红书的内容"} {"role": "assistant", "content": "小红书的标题"} {"role": "user", "content": "小红书的内容"}

最后一条消息是让chatgpt生成一个指定小红书的内容。类似的也可以让chatgpt根据推文内容生成小红书风格的标签;根据标题或者标签生成推文内容。

Fine Tune 模型

OpenAI 还提供一种自己训练模型的方法,fine tuning。准备promt和completion数据然后训练模型,最后使用这些模型来补全生成的内容。

{"prompt": "推文内容1", "completion": "标题1"} {"prompt": "推文内容2", "completion": "标题2"}

我使用davinci模型作为基础模型,然后将准备的数据上到openai,调用fine-tune接口训练模型。将训练成功的模型传给Completion接口进行调用,传入需要测试的推文内容,得到结果。

# 准备训练数据 messages = [] with open('posts.csv') as f: reader = csv.reader(f) for row in reader: messages.append(json.dumps({"prompt": rows['prompt'], "completion": row['completion']})) # 写入训练数据到文件,文件必须是JSON Lines格式,https://jsonlines.readthedocs.io/en/latest/ with open('train.jsonl', 'a') as f: for message in messages: f.write(message + "\n") # 上传训练数据到OpenAI upload_file = openai.File.create(file=open("train.jsonl"), purpose='fine-tune', ) print(upload_file) # 训练模型 fine_tune_response = openai.FineTune.create(training_file='文件ID', model='davinci') print(fine_tune_response) # 获取模型信息 fine_tune_response = openai.FineTune.retrieve(id='模型ID') print(fine_tune_response) # 列出所有Fine Tune模型 fine_tune_models = openai.FineTune.list() print(fine_tune_models) # 测试模型效果 new_prompt = "村上春树说:有的人会用一辈子治愈童年,有的人会用童年治愈一辈子。了解自己身上的习惯,看透自己原生家庭的痛和乐。\n书名:《原生家庭》\n作者: (美)苏珊·福沃德博士 / (美)克雷格·巴克\n有毒家庭千千万,作者将其总结为“天下无不是的父母”、“不称职的父母”、“操控型的父母”、“酗酒型的父母”、“身体虐待型的父母”、“言语虐待型的父母”和“性虐待型的父母”,这些父母对孩子的负面模式持续存在(而不是偶尔的),始终支配着孩子的生活,影响着孩子与人的正常交际交往。\n当然,要判断自己的原生家庭是否有毒确实不是一件容易的事情,因而苏珊还提供了调查问卷,帮助读者进行自测。\n书中内容:\n如何判断自己的原生家庭种类\n有毒的父母会对孩子造成什么样的伤害?\n做才能摆脱原生家庭的负面影响?\n读完的感受:\n简单来说,看完苏珊的《原生家庭:如何修补自己的性格缺陷》真的帮助我认识到自己许久以来人际交往的通病产生的本质原因。\n发现自己,接纳自己,才会治愈自己。\n很有意义的一本书。希望可以帮助到更多需要帮助的宝子。" answer = openai.Completion.create( model='模型名', prompt=new_prompt, max_tokens=1000 ) print(answer)总结

最后结果是使用ChatGPT方法可以快速生成小红书标题和标签以及内容,但是不能用小红书数据训练ChatGPT让它变得更专业。使用Fine Tune方法可以使用自己的数据训练模型,效果根据训练数据来决定。

附录

这进行上面这个探索的过程中,制作了一些工具用于解决一些问题。

自动提取小红书数据工具

为了使用Fine Tune方法训练模型,需要准备大量的小红书推文数据。工具核心的原理是在小红书APP上复制你要提取的推文链接,然后在电脑浏览器打开,使用插件提取小红书内容,将这些提取出来的数据存储到文件里。关于这个工具更详细的内容可以查看这篇文章:

ChatGPT 接口调用和 Fine Tune 接口调用脚本

这两个是脚本工具,用于和OpenAI接口进行交互,达到我们提交测试数据和获取结果的目的。

如果你想了解这个工具更多细节,可以点击下面的咨询链接联系我哦!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3