简介
之前我做小说推文时,最耗时的就是改文案,而且大多是重复性工作
改文案主要的功能为改人称、换行、去标点(因为需要生成语音,标点也算字符,可以减少成本)、改开头
我就想着写一个java脚本来优化,主要的功能是改人称、换行、去标点、改开头
现在加上了ai,可以做到改人称、换行、去标点、换书名
改开头的话,免费的ai并不是很好用,还得人为改,后续需要我可以加上,但效果并不佳,我就去掉了,也可能是我写的prompt并不是很准确
文生图的api使用我也会写在下面,但免费的效果感觉不行,电脑有条件去学一下 stable diffusion ,有条件可以去试试 midjourney ,可以去某宝买个便宜的试试,效果比这个好一万倍,所以我项目里面也没有放关于文生图的功能
声明:本文只用于记录自己制作的demo,也没有前端的壳
AI使用
目前我是用了讯飞星火和硅基流动两个平台的ai模型,以下是使用教程(主要的是免费的ai)
讯飞星火(讯飞星火)(模型:Spark Lite)
创建应用

拿到秘钥

接口调用(文档:星火认知大模型Web API文档)可以看这个文档,也可以直接直接看我的参数
入参:需要修改headers(标识头)
json
url:https://spark-api-open.xf-yun.com/v1/chat/completions
Headers:Authorization: Bearer APIPassword(APIPassword 看上图)
json:
{
"model": "lite",
"messages": [
{
"role": "user",
// 只需要修改 content 即可
"content": "讲一个笑话"
}
]
}
headers添加方式

出参:
json
{
"code": 0,
"message": "Success",
"sid": "cha000b24b1@dx19513136b769a4b532",
"choices": [
{
"message": {
"role": "assistant",
"content": "当然可以,这里有一个逗乐您的小笑话:\n一天,老师问学生:"有谁知道地球离太阳有多远?"一个同学站起来说:"老师,我爸爸告诉我的。"老师很惊讶:"你怎么不早说呢?"这个同学说:"爸爸说了三遍,我才记住的。"希望你喜欢这个笑话~"
},
"index": 0
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 67,
"total_tokens": 79
}
}
硅基流动 (SiliconCloud)目前项目在使用的模型为(Qwen/Qwen2.5-7B-Instruct)
这里面也有免费的 deepseek 7B 的版本,但我觉得这个版本没有Qwen好用

接口调用(文档:创建文本对话请求 - SiliconFlow)可以看这个文档,也可以直接直接看我的参数
创建秘钥

文本生成
入参:
json
url:https://api.siliconflow.cn/v1/images/generations
Headers:Authorization: Bearer APIPassword(APIPassword看上图)
json:
{
// 模型
"model": "Qwen/Qwen2.5-7B-Instruct",
"messages": [
{
"role": "user",
// 只需要改这个就行了
"content": "中国大模型行业2025年将会迎来哪些机遇和挑战?"
}
]
}
headers位置

出参:
json
{
"id": "01951358b63064b7d2b93113c9cf286b",
"object": "chat.completion",
"created": 1739786335,
"model": "Qwen/Qwen2.5-7B-Instruct",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "中国大模型行业在2025年面临的机遇与挑战主要可以从技术进步、市场需求增长、政策环境等方面进行分析:\n\n### 机遇\n\n1. **技术创新与突破**:随着人工智能技术的不断发展,特别是在深度学习、自然语言处理、机器视觉等领域的技术突破,大模型将在更多领域展现其广阔的应用前景。比如在教育、医疗、物流、金融服务等各个行业,大模型的应用可以帮助实现更高效、更精准的服务和决策。\n\n2. **市场需求增长**:随着数字化转型的深入和技术的进步,各行各业对智能化、自动化的解决方案需求日益增长,为大模型行业提供了广阔的市场空间。特别是最近生成式AI技术的突破,如通义千问等大模型在信息生成、内容创作等方面的能力提升,有望激发更多应用场景和商业机会。\n\n3. **政策支持**:中国政府积极支持人工智能等战略性新兴产业的发展,出台了一系列政策和措施来促进人工智能技术的研究和应用。特别是在数据安全、隐私保护方面,通过完善法律法规和监管机制,为大模型的发展营造了良好的环境。\n\n4. **开放合作**:在全球范围内的数字技术合作日益紧密,有助于中国企业与国际顶尖企业开展合作,共同推进技术进步和应用场景开发。\n\n### 挑战\n\n1. **数据合规与安全**:随着对数据安全和隐私保护要求的提高,如何在遵守法律法规的前提下有效利用大规模数据资源成为大模型发展面临的一大挑战。\n\n2. **技术难题**:大模型的训练需要大量的计算资源和高效的并行计算技术,这对基础硬件设施提出了更高要求。同时,如何解决模型的泛化能力、稳定性和可解释性问题也是亟待解决的技术难题。\n\n3. **伦理与风险**:随着应用的广泛渗透,如何确保大模型能够被负责任地使用,避免潜在的社会伦理和安全风险,是行业需要重视的问题。\n\n4. **人才短缺**:高水平的技术和管理人才是推动大模型行业发展的关键因素之一。目前行业内的人才储备尚不能完全满足快速发展的需求,人才短缺成为制约行业发展的瓶颈之一。\n\n综上所述,虽然中国大模型行业在2025年面临着不少挑战,但机遇与挑战并存,通过持续的技术创新、市场开拓和政策支持,有望克服这些挑战,实现健康、快速地发展。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 45,
"completion_tokens": 483,
"total_tokens": 528
},
"system_fingerprint": ""
}
文生图
入参:
json
url:https://api.siliconflow.cn/v1/images/generations
Headers:Authorization: Bearer APIPassword(APIPassword看上图)
json:
{
// 文生图模型
"model": "stabilityai/stable-diffusion-3-5-large",
// 关键词 只需要改这个就行了
"prompt": "Anime style, silver-haired 23-year-old boy, cool, standing, wearing casual clothes, perfect composition, 8k, blurred background, perfect details",
"seed": 4999999999,
"image_size": "1024x1024"
}
出参:
json
{
"images": [
{
"url": "https://sc-maas.oss-cn-shanghai.aliyuncs.com/outputs/dbf47021-fbd2-4cec-8cde-3b9fd750fe78_0.jpeg?OSSAccessKeyId=LTAI5tQnPSzwAnR8NmMzoQq4&Expires=1739762221&Signature=FlN3xUtT%2FmrFhu8cOEh3IiTET%2Fg%3D"
}
],
"timings": {
"inference": 16.975
},
"seed": 4999999999,
"shared_id": "0",
"data": [
{
"url": "https://sc-maas.oss-cn-shanghai.aliyuncs.com/outputs/dbf47021-fbd2-4cec-8cde-3b9fd750fe78_0.jpeg?OSSAccessKeyId=LTAI5tQnPSzwAnR8NmMzoQq4&Expires=1739762221&Signature=FlN3xUtT%2FmrFhu8cOEh3IiTET%2Fg%3D"
}
],
"created": 1739758621
}
我的改文案Demo(changeCopy:)

application.yaml
我加了 todo 的就是需要修改的,其他的看自己需要修改
yaml
word:
# 输入文件 是否是 resources 下的 text.txt 文件
# 输出的 地址也是 resources 下的 [outputName].word 文件
# currentDirectory 为 true 时指的是本地导出 就是在resources目录下导入和导出
currentDirectory: true
# 输入地址 只能是 docx 文件
enterAddress: C:\Users\ZHAOPINGAN\Desktop\推文\测试.docx
# 输出地址
outputAddress: C:\Users\ZHAOPINGAN\Desktop\推文
# 输出文件名 todo
outputName: 幽渊迷踪
# 性别 0:女;1:男;2:性转 todo
sex: 1
# 主角名字 改成我 todo
name: 安小海
# 视角 1:第一人称 2:第二人称 todo
visualAngle: 1
# 其他替换 并标红 主要是名字 todo
# 他和她不能对换
otherChange:
- text: 安小海
changeText: 安小海
# 用于标红,方便再次检查文案
# 男性关键词
maleKeyWords: 他,我,自己,你
# 女性关键词
femaleKeyWords: 她,我,自己
# 性转关键词
sexTurnKeyWords: 他,她,弟,哥,姐,妹,兄,儿,子,男,女,儿子,女儿,公主,王子,我,你,爸,妈,孙子,
孙女,养子,养女,千金,先生,少女,少年,男孩,女孩,爹,娘,大女人,大男人,女人,男人,青年,夫,
妇人,夫人,老爷,少爷,妻,妻子,公,老公,未婚,未婚夫,未婚妻,夫君,怨妇,怨夫,君子,老爷们,
老爷们儿,老娘,老娘们儿,帅哥,美女,帅,美,赘,赘婿,婿,女婿,娶,长发,短发,前男友,前女友,
男友,女友,母,母亲,父,父亲,叔,伯,伯父,伯母,嫂子,嫂,婶,婶子,爷,奶,婆,女子,小女,小爷,大爷,小女子,
臣妾,妾,妃子,妃,贵妃,犬子,贱内,吾,自己,朕,孤,寡人,妾身,靓仔,靓女,小子,小孩,小孩子,小朋友,
姨妈,舅,舅妈,妹夫,舅子,大舅子,姨夫,姨母,姨父,义父,义母,岳父,岳母,媳,媳妇,丈母娘,小妞,妞
# 其他关键词 用于自定义
otherKeyWords: 自己,你
# ai 相关
# 科大星火的api
spark:
# api、stream不需要修改,model按照自己情况修改,password改成自己的
api: https://spark-api-open.xf-yun.com/v1/chat/completions
stream: false
model: lite
# 秘钥 todo
password: Bearer APIPassword
# 硅基流动的api
siliconFlow:
# api不需要修改,model按照自己情况修改,password改成自己的
api: https://api.siliconflow.cn/v1/chat/completions
model: Qwen/Qwen2.5-7B-Instruct
# 秘钥 todo
password: Bearer APIPassword
# ai 通用配置
aiCommon:
# 是否启用AI重构书名,书名会打印到终端
changeBookTitleSwitch: true
# 是否启用AI重构人称
revisePersonSwitch: true
# 原书名字 todo
originalBookName: 重生1993,暗海
# 改书名话术 ? 代表原书名(originalBookName)
changeBookTitleWords: 取十个四字别名的,只保留四个字,要简洁,书名为:?
# 修改人称话术 以下三个参数会被最前面的参数替换掉
# !(?):人称 @(?):主角名 #(?):性别
revisePerson: 请将下列内容从第三人称转换到!(?),除了人称其他不用变,主角是@(?)(#(?)):
运行

生成书名展示(原名:重生1993,暗海):

文案生成对比:
