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

SAS环境中PROC HTTP封装宏调用ChatGPT 3.5出现404错误求助

SAS宏中调用ChatGPT 3.5触发HTTP 404错误排查

问题概述

在SAS环境中,调用ChatGPT 3.5的代码在宏外可正常运行,但封装进宏后触发HTTP 404(Not Found)错误,执行被%ABORT语句终止,怀疑问题出在PROC HTTP的授权头语句。

宏内报错日志

SYMBOLGEN:  Macro variable SYS_PROCHTTP_STATUS_CODE resolves to 404
 MLOGIC(CHATGPT):  %IF condition (&SYS_PROCHTTP_STATUS_CODE. NE 200) is TRUE
 MLOGIC(CHATGPT):  %PUT An error occurred. HTTP &SYS_PROCHTTP_STATUS_CODE.: &SYS_PROCHTTP_STATUS_PHRASE
 SYMBOLGEN:  Macro variable SYS_PROCHTTP_STATUS_CODE resolves to 404
 SYMBOLGEN:  Macro variable SYS_PROCHTTP_STATUS_PHRASE resolves to Not Found
 An error occurred. HTTP 404: Not Found
 MLOGIC(CHATGPT):  %ABORT 
 ERROR: Execution terminated by an %ABORT statement.

宏外可运行代码片段

%let api_key= ; 
%let question = %str(%"sas code to transpose data%");
%let question = %str(%"debug 'proc print data=mydf; vars myvar; run;' %");

/* Body of the POST request */
filename in temp;
data _null_;
file in;
put;
put "{";
put  '"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": '"&question }]";
put "}";
run;

排查方向

  • 检查宏内PROC HTTP的授权头配置:确认api_key宏变量在宏内是否正确解析,是否存在宏变量作用域导致的引用失效问题,比如是否需要用%global声明api_key
  • 验证请求体一致性:对比宏内和宏外生成的请求体内容,检查question变量的转义字符、引号是否正确,避免宏替换导致JSON格式错误
  • 确认PROC HTTP的URL:检查宏内的请求URL是否和宏外一致,是否因宏替换操作导致URL被意外修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:43:08