AI新闻写作配置:用大模型接口和脚本搭建自动写稿流程
AI 新闻写作配置的核心不是找一个“一键写稿”的按钮,而是把素材输入、模型调用和稿件保存三步固定成脚本或工作流。
本文按可执行顺序讲清楚:在 Linux 服务器上准备 Python 环境,用兼容 OpenAI 的接口调用大模型,配置提示词模板,最后运行脚本并检查输出是否合格。
适合已有模型 API Key、需要半自动或批量生成新闻初稿的编辑和运维人员。
先确认需要准备什么
动手前需要三样东西:一台能访问外网的 Linux 服务器或本地电脑、一个可用的模型 API Key、以及 Python 3.9 以上版本。
如果模型服务商提供的是兼容 OpenAI 的接口,后续代码可以直接复用;
如果是其他协议,只需替换请求地址和鉴权头。
检查 Python 版本:
python3 --version
如果版本低于 3.9,先升级。
Ubuntu/Debian 可执行 sudo apt update && sudo apt install python3 python3-pip -y。
接着创建虚拟环境,避免污染系统包:
python3 -m venv newsenv
source newsenv/bin/activate
pip install openai requests
把 API Key 写入环境变量,不要硬编码在脚本里:
export AI_API_KEY="你的密钥"
export AI_BASE_URL="https://你的服务商地址/v1"
AI_BASE_URL 要看服务商文档确认,不同平台路径可能不同,写错会直接返回 404。
配置模型调用脚本
新建 write_news.py,核心是读取环境变量、组装提示词、调用接口并保存结果。
下面示例使用 openai 库的兼容调用方式,模型名称替换成你实际可用的型号:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("AI_API_KEY"),
base_url=os.getenv("AI_BASE_URL")
)
def write_news(topic, material):
prompt = f"""你是新闻编辑。根据以下素材写一篇 400 字左右的消息稿。
要求:标题不超过 20 字;正文包含时间、地点、事件、影响;不使用夸张形容词;不确定的信息不要编造。
主题:{topic}
素材:{material}
"""
resp = client.chat.completions.create(
model="你的模型名",
messages=[{"role": "user", "content": prompt}],
temperature=0.3,
timeout=60
)
return resp.choices[0].message.content
if __name__ == "__main__":
text = write_news("某地举办春季招聘会", "3月15日,某市体育馆举办招聘会,120家企业提供3000个岗位。")
with open("output.md", "w", encoding="utf-8") as f:
f.write(text)
print("已写入 output.md")
运行 python write_news.py,
如果终端打印“已写入 output.md”,
说明调用链路打通。temperature 设为 0.3 是为了让新闻稿更稳定,
需要更多表达变化时可以调高,
但不要超过 0.8。
提示词模板要固定边界
新闻写作最容易出的问题是模型补充素材里没有的细节。
提示词里要明确三件事:字数范围、必须包含的要素、禁止编造。
建议把模板单独存成 prompt.txt,脚本读取后拼接素材,这样调整格式不用改代码。
模板中不要写“写得生动一些”这类模糊要求,换成“每段不超过三句”“直接陈述事实”更可控。
如果一次要处理多条素材,可以把素材放在 CSV 里,逐行读取并调用函数,输出文件名按序号生成。
注意控制并发,免费或低配额接口连续快速请求容易触发限流,建议每条之间加 time.sleep(2)。
常见报错与避坑
返回 401 或鉴权失败:检查 AI_API_KEY 是否已 export,以及脚本运行所在终端是否和设置环境变量的终端一致。
用 echo $AI_API_KEY 确认能看到值,注意不要在多行命令中泄露密钥。
返回 404:多数是 base_url 路径不对。
兼容接口通常以 /v1 结尾,但以服务商文档为准,不要凭猜测拼接。
请求超时:先确认服务器能访问目标域名,可用 curl -I https://你的服务商地址 看是否有响应。
网络正常但模型响应慢时,适当调大 timeout,并避免一次提交超长素材。
返回空内容:检查 resp.choices 是否为空,部分服务商在触发内容审核时会返回空结果。
脚本里加一个判断,空内容时打印原始响应并跳过写文件,避免生成空稿件覆盖已有文件。
输出事实错误:这是配置层面无法完全消除的风险,新闻稿必须人工复核。
提示词只能降低概率,不能替代编辑审核。
验证输出是否可用
脚本跑通不等于配置完成。
打开 output.md,逐项检查:标题是否在字数范围内、正文是否出现素材中没有的人名或数字、段落是否完整。
建议保留原始素材文件,把生成稿和素材并排比对。
连续跑三条不同主题的素材,如果结构稳定、没有明显编造,说明提示词和参数基本可用;
如果三条都出现同类问题,回到提示词模板调整约束条件,而不是反复改代码。
涉及批量生成时,先小批量试跑并人工抽检,确认无误后再扩大数量。
AI 新闻写作配置的终点是稳定产出可复核的初稿,而不是完全无人值守。