PHP怎样调用京东言犀大模型_填业务参数获商品文案输出【窍门】

11次阅读

京东言犀API调用前必须确认app_key、app_secret、access_Token三个参数:app_key为应用唯一标识,app_secret仅创建时可见,access_token需用前两者申请且2小时过期须缓存刷新。

PHP怎样调用京东言犀大模型_填业务参数获商品文案输出【窍门】

京东言犀 API 调用前必须确认的三个业务参数

京东言犀大模型不开放通用接口,必须走京东云「言犀智能创作」服务,且需提前在 京东云控制台 → ai大模型 → 言犀智能创作 中完成应用创建和权限开通。真正影响调用成败的不是代码,而是这三个参数是否准确填对:

  • app_key:应用创建后生成的唯一标识,不是京东账号ID,也不是API Key
  • app_secret:对应密钥,仅创建时可见一次,丢失需重置
  • access_token:非静态值,需用 app_key + app_secrethttps://api.jd.com/oauth2/token 申请,有效期2小时,必须缓存并自动刷新

php 发起 POST 请求获取商品文案的关键写法

京东言犀要求请求体为 jsON,且必须带 Content-Type: application/jsonAuthorization: Bearer {access_token}。常见错误是直接用 file_get_contents() 拼 URL,或漏掉认证头导致 401。

 '为一款【无线降噪蓝牙耳机,支持30小时续航,IPX5防水】生成3条电商主图文案,每条不超过60字,突出卖点,口语化',     'model' => 'yanxi-pro', // 目前可用值:yanxi-base / yanxi-pro     'max_tokens' => 200,     'temperature' => 0.7 ];  $options = [     'http' => [         'method' => 'POST',         'header' => [             "Content-Type: application/jsonrn",             "Authorization: Bearer {$access_token}rn"         ],         'content' => json_encode($data, JSON_UNESCAPED_UNICODE)     ] ];  $context = stream_context_create($options); $result = file_get_contents('https://api.jd.com/yanxi/v1/chat/completions', false, $context);  if ($result === false) {     throw new Exception('HTTP request failed'); } $response = json_decode($result, true); echo $response['choices'][0]['message']['content'] ?? '无返回内容'; ?>

返回结果里文案提取容易踩的坑

京东言犀返回结构和 openai 不同:response['choices'] 是数组,但每项的文本不在 text 字段,而在 message['content'];且当请求失败时,错误信息藏在 response['Error']['message'],不是 HTTP 状态码决定成败。

  • 不要假设 $response['choices'][0]['text'] 存在 —— 这是 OpenAI 风格,言犀不用
  • 检查 isset($response['choices'][0]['message']['content']) 前,先判断 isset($response['error'])
  • 若返回 "error": {"code": "INVALID_PARAMETER", "message": "prompt cannot be empty"},说明 prompt 字段为空或含非法字符(如未转义的换行)

生产环境必须处理的两个实际问题

本地跑通不等于线上可用。真实业务中,access_token 刷新和并发请求是高频故障源。

立即学习PHP免费学习笔记(深入)”;

  • access_token 必须持久化存储(如 redis 或文件),不能每次请求都重新申请;刷新逻辑要加锁,避免多进程同时触发重复申请
  • 京东言犀接口有 QPS 限制(默认 5次/秒),PHP-FPM 场景下若未做请求合并或队列缓冲,高并发时大量 429 错误
  • 提示词(prompt)中避免硬编码商品参数,应使用占位符 + sprintf() 或模板引擎拼接,否则难以维护和 A/B 测试

京东言犀不是“调个 API 就出文案”的玩具,它的业务参数强耦合京东生态,app_keyaccess_token 的生命周期管理比调用本身更关键。很多人卡在第一步——以为拿到文档就能跑,其实连控制台里那个「应用状态」是不是「已上线」都没确认。

text=ZqhQzanResources