先看现象。braintrust SDK 0.0.150 里 braintrust.init(project="rag-eval"),第一次上传实验就报 project not found,环境变量里放的是组织级 key,控制台能看到同名项目。
这类报错背后常见的原因有几处,逐个排除就行。组织 key 不能直接写实验,需要项目级 key 或显式项目 id。也可能是项目名大小写与空格和控制台不一致。
还有一种情况,SDK 默认打到美东端点,数据在别的区域。
另外,公司代理拦截了上传接口,报错被包装成项目不存在。
动手时先列出当前 key 可见的项目
python -c "import braintrust;print(braintrust.init(project='rag-eval'))"
显式传项目 id 而不是名字
python -c "print({'project_id':'proj_9x2','api_url':'https://api.braintrust.dev'})"
然后改用项目级 key 后重试上传
python -c "import os;os.environ['BRAINTRUST_API_KEY']='proj_key';print('ok')"
剩下的就是打开 debug 日志确认请求打到了哪个域名
python -c "import logging;logging.basicConfig(level=logging.DEBUG);print('debug')"
改完先别撤,确认这几项。实验成功出现在控制台的 rag-eval 项目下,样本数与本地一致,重复上传不会新建同名项目。
容易忽略的是,这类报错经常是权限或端点问题而不是项目真的不存在,先用同一个 key 列一次项目,能立刻区分是认证还是路由。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
