You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Guzzle调用OpenAI API的返回内容无格式问题咨询

问题解决思路

问题出在API请求的提示词设计,和Guzzle配置无关。Guzzle仅负责发起HTTP请求传递参数,返回内容的格式完全由OpenAI模型的输出逻辑决定。要实现类似ChatGPT的自动格式化输出,只需优化请求中的提示词和可选参数:

1. 强化系统提示词,强制格式要求

修改system角色的提示词,明确要求模型始终用清晰的结构化格式(比如Markdown)输出,无需用户额外指定。示例修改:

'messages' => [
    ['role' => 'system', 'content' => '你是为学区教师服务的学生对话数据分析助手,所有输出必须使用标准Markdown格式:列表用短横线/星号,分段用换行,关键内容可加粗。无需用户额外要求格式,自动适配查询需求生成结构化结果。'],
    ['role' => 'user', 'content' => "Based on the following data:\n$databaseResults\n\nGenerate observations based on the query: $userQuery"]
]

2. 可选:指定响应格式(针对支持的模型)

gpt-4o-mini支持通过response_format参数指定输出格式,可明确要求返回Markdown,进一步约束输出:

'json' => [
    'model' => 'gpt-4o-mini',
    'messages' => [/* 上述修改后的消息 */],
    'max_tokens' => 1000,
    'response_format' => ['type' => 'text', 'format' => 'markdown'] // 新增参数
]

注意:部分旧模型不支持该参数,gpt-4o-mini及以上版本可正常使用。

3. 前端渲染适配(可选)

如果需要将Markdown转为HTML展示给教师,可使用PHP的Markdown解析库(比如Parsedown),示例代码:

// 先安装Parsedown:composer require erusev/parsedown
$parsedown = new Parsedown();
$htmlObservations = $parsedown->text($observations);
echo $htmlObservations;

验证修改效果

当教师查询“列出3个给出创意答案的学生及其回答”时,模型会自动输出类似:

  • 学生A:[回答内容]
  • 学生B:[回答内容]
  • 学生C:[回答内容]
    的结构化Markdown内容,无需教师手动添加格式要求。

内容的提问来源于stack exchange,提问作者Michael Gabe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 02:14:59