PHP通过调用外部AI服务实现诗歌生成,需规范提示词设计、安全API调用、结构化输出及缓存优化,并防范注入、越狱与格式错误。

PHP本身不直接集成AI模型,但可以通过调用外部AI服务(如OpenAI、通义千问API、本地部署的LLM)实现诗歌生成。关键在于:设计清晰的提示词(Prompt)、规范输入参数(意象+风格)、安全调用API、结构化返回结果。
明确输入参数与诗歌类型控制
用户提交的“意象”(如:孤雁、秋江、青瓷、地铁站)和“风格”(如:朦胧派、盛唐边塞、宋词婉约、网络俳句)需被准确解析并注入提示词。避免模糊表述,建议前端做选项限制或关键词校验。
- 现代诗示例Prompt片段:“以‘苔藓’和‘老电梯’为意象,模仿北岛早期风格,写一首4-6行的现代诗,不用标点,分行自然”
- 古体诗示例Prompt片段:“用七言绝句格式,押平水韵‘东’部,以‘雪夜归人’和‘竹灯’为题,体现王维式空寂感”
PHP端安全调用AI接口(以cURL为例)
不硬编码API密钥,使用环境变量加载;设置超时与重试;对用户输入做基础过滤(防指令注入、长度截断);响应失败时返回友好提示而非原始错误。
- 用
filter_var($imagery, FILTER_SANITIZE_STRING)清理意象字符串 - 构造JSON payload时,将风格与意象拼入
"messages"[0]["content"]字段 - 检查HTTP状态码200且响应含
"choices"再解析诗歌文本
结构化输出与格式兼容
生成的诗歌需区分现代诗(换行符
分隔)与古体诗(按句号/顿号切分后加
,或保留原生分行)。可额外返回元数据:{"type":"jueju","rhyme":"ong","tone":"level"},便于前端渲染样式或二次处理。
立即学习“PHP免费学习笔记(深入)”;
- 古诗自动识别句读:正则
/[,。!?;:]/u切分,每句末尾加<br> - 现代诗保留AI原始换行,用
nl2br()转义,禁用strip_tags()误删 - 缓存高频组合(如“月亮+李白体”)降低API调用频次
规避常见问题
AI易忽略格律或混淆古今语汇。可在Prompt中强化约束,例如:“不出现‘WiFi’‘二维码’等现代词”“平仄按《平水韵》校验,若不符请重写”。PHP层不校验平仄,但可调用轻量Python脚本(通过exec())做后置验证并触发重试。
- 避免让用户直接输入完整Prompt,防止越狱或无效请求
- 古诗生成慎用“自动生成平仄”类描述,AI当前难以100%合规,应标注“参考格律”
- 返回前用
mb_substr($poem, 0, 500, 'UTF-8')截断超长内容,防XSS或页面溢出



















