尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

机器学习数据看 Science,public-apis 与 TaoToken 的 Agent 路径

机器学习数据看 Science,public-apis 与 TaoToken 的 Agent 路径 1. 从 public-apis 的 Science Math 分类出发Agent 先整理候选表不先写爬虫当你在 Claude Code 或 Codex 里让 Agent 去 public-apis 的 Science Math 分类整理机器学习数据源时最先撞到的往往不是“没有数据”而是 README 链接 404/410、Auth 字段看不懂、CORS 状态未知。我的顺序是先到 TaoTokenhttps://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentscience_math_ml_agent创建 Key再把 Agent 的 Base URL 指向 https://taotoken.net/api让 Agent 只做数据源整理、文档入口核对和字段说明不碰生产库。public-apis 这类社区目录的价值不是替你提供一个统一 API而是把天气、地图、财经、新闻、开放数据、测试数据、科学与数学等场景的文档入口按分类摆在一起。对科研和模型训练数据准备者来说它的正确用法不是“看到链接就写爬虫”而是先得到一张候选表哪些来源可能适合监督学习、时间序列、地理空间、文本分类或图数据哪些需要 apiKey、OAuth哪些标了 HTTPS 和 CORS哪些只是文档入口真正字段、限流、许可证还要回到原文档确认。所以更稳的 Agent 路径是在本地保存一份 public-apis 仓库副本用脚本或命令抽出 Science Math 分类的条目让 Agent 把条目整理成 Markdown 表你人工核对 Auth、HTTPS、CORS、许可证和限流用本地 curl 或 Python 请求做最小验证再把请求结果归一化成 JSONL进入后续训练或分析流程。不要让 Agent 直接连公司生产库、数据仓库或线上业务数据库。数据源筛选阶段只处理公开文档、README、样例响应和本地文件。所有下载、请求、转换命令都由你在本地终端执行。先准备本地目录mkdir -p ~/work/science-ml-data cd ~/work/science-ml-data # 仓库地址请从 public-apis 项目首页复制到变量避免在脚本里硬编码 export PUBLIC_APIS_REPO_URLpublic-apis-repo-url git clone $PUBLIC_APIS_REPO_URL ~/work/science-ml-data/public-apis cd ~/work/science-ml-data/public-apis ls如果你已经有一份 README可以直接抽取 Science Math 部分。下面这个 Python 脚本只做本地解析不访问外部服务import csv import pathlib import re readme_path pathlib.Path(README.md) text readme_path.read_text(encodingutf-8) # public-apis 的分类标题通常以 ### 开头这里只抓 Science Math 段 pattern re.compile(r###\sScience\s*\s*Math\s*\n(.*?)(?\n###\s|\Z), re.S) match pattern.search(text) if not match: raise SystemExit(未找到 Science Math 分类请确认 README 结构) section match.group(1) rows [] for line in section.splitlines(): line line.strip() if not line.startswith(|): continue if --- in line: continue cells [c.strip() for c in line.strip(|).split(|)] if len(cells) 5: continue if cells[0].lower() in {api, name}: continue rows.append(cells[:6]) out pathlib.Path(science_math_candidates.csv) with out.open(w, newline, encodingutf-8) as f: writer csv.writer(f) writer.writerow([api, description, auth, https, cors, link]) writer.writerows(rows) print(f已写入 {out}共 {len(rows)} 条候选)运行后你会得到类似这样的候选表apidescriptionauthhttpscorslink候选服务 A地球观测/气象数据apiKeyYesUnknown文档入口候选服务 B地震事件/时间序列NoYesUnknown文档入口候选服务 C物种分布/分类数据NoYesYes文档入口候选服务 D论文元数据/文本NoYesUnknown文档入口候选服务 E空间位置/实时状态NoYesUnknown文档入口这张表就是 Agent 的输入。可以让 Claude Code 或 Codex 继续补充“适合的机器学习任务”和“待核对字段”但要求它只基于本地 CSV 和文档入口不要凭空编造接口参数。一个可用的 Agent 提示词如下请读取 science_math_candidates.csv只做以下工作 1. 保留 api、description、auth、https、cors、link 六列 2. 为每条候选打上可能的 ML 任务标签时间序列、地理空间、文本分类、图像、图数据、回归、异常检测 3. 新增三列待核对文档项、建议最小请求、建议归一化字段 4. 待核对文档项必须包含许可证、限流、字段示例、是否允许商用 5. 不要生成注册脚本不要访问任何生产数据库不要假设接口一定可用。 输出 Markdown 表格并在表格后列出“优先验证的 5 条候选”及理由。这样做的结果是你拿到的是数据源表、文档入口和字段假设而不是一段看似能跑、实际上密钥、配额、字段全不对的爬虫代码。2. 读懂 Auth、HTTPS、CORS科研选数据的三个前置字段public-apis 每个条目通常会有 Auth、HTTPS、CORS 等列。对模型训练数据准备者来说这三列比“是否免费”更早决定一个来源能不能进入你的流程。Auth 表示鉴权方式。No 表示请求本身不要求认证apiKey 表示通常要申请密钥OAuth 表示要处理授权流程。注意No 只说明不必携带认证信息不能推导出没有额度、频率限制或使用条款。科研场景里尤其要看数据许可证和再分发限制不能因为接口能匿名请求就直接用于论文附录或公开数据集。HTTPS 表示是否提供加密访问。对训练数据抓取来说HTTPS 不是万能保障但至少影响传输安全和部分运行环境的兼容性。若某服务只提供 HTTP要评估数据敏感性和本地网络策略不要默认它适合长期采集。CORS 更直接影响 Web 前端。标为 Yes 的服务浏览器跨域调用通常更省事标为 No 时通常只适合服务端调用Unknown 则要自己用浏览器和文档确认。很多“本地 curl 成功、上线页面被拦截”的问题根源就在这里。对数据准备者来说如果你只是本地跑 Python 或 curlCORS 不是第一优先级但如果你要做标注页面、演示面板或浏览器插件就要优先选 CORS 为 Yes 的候选。建议按下面的顺序筛选先按科研任务筛选场景时间序列、地理空间、文本、图像、图数据、开放科学数据再看 AuthNo 和 apiKey 优先做最小验证OAuth 放到后面再看 HTTPS生产流程优先 Yes再看 CORS只有浏览器端调用时才作为硬条件最后回到原始文档核对许可证、限流、字段、商用限制和地区可用性。可以建一个更细的候选表字段含义对训练数据的影响api服务名称标识来源description简短说明判断业务场景authNo/apiKey/OAuth决定是否要申请凭据httpsYes/No决定传输方式corsYes/No/Unknown决定浏览器端可用性license数据许可证决定能否再分发、商用、发论文quota限流与免费层决定采集规模和频率fields返回字段决定特征工程难度last_checked最近验证日期避免使用过期链接docs_action文档核对动作记录待确认项public-apis 的收录原则通常强调服务可免费使用或至少有免费层并且要求文档规范。但这不替你确认当前套餐。接口的限流、免费额度、数据授权、商用限制和地区可用性都可能变动。做 Demo 时可以先找 Auth 为 No 且 CORS 为 Yes 的候选准备上正式项目时要回到原始文档逐项核对配额、价格、隐私政策和服务稳定性。更可靠的方法是按业务场景选三到五个候选分别跑一个最小请求再从响应质量、调用限制和文档完整度中选出最终服务。不要只看服务名称也不要只因为“免费”就把它写进训练流水线。3. 把 Claude Code、Codex、CC Switch 切到 TaoToken三套可复制配置在让 Agent 整理数据源之前先把模型调用通道配好。创建 Key、查看控制台、复制模型入口都到 TaoToken 官网处理TaoToken 官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_code_keyAPI Keys 页面https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentml_data_api_keysBase URL 固定配置为https://taotoken.net/apiKey 统一使用占位符YOUR_API_KEY不要把真实 Key 写进仓库、脚本或 Markdown。3.1 Claude Codesettings.json 与 ANTHROPIC_* 环境变量Claude Code 常用配置文件在~/.claude/settings.json。可以这样写{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: YOUR_API_KEY, ANTHROPIC_MODEL: MODEL_ID_FROM_TAOTOKEN } }如果你更习惯用 shell 环境变量也可以在当前终端临时导出export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYYOUR_API_KEY export ANTHROPIC_MODELMODEL_ID_FROM_TAOTOKEN然后启动 Claude Codeclaude进入项目目录后先让它读取本地 CSV而不是直接访问外部服务cd ~/work/science-ml-data/public-apis claude在 Claude Code 里输入类似指令请读取当前目录的 science_math_candidates.csv。 不要联网不要调用外部 API。 请输出一张 Markdown 表列为api、ML任务、Auth、HTTPS、CORS、待核对文档项、建议最小请求、建议归一化字段。 再按“适合先做最小验证”的顺序排序并说明排序理由。如果 Claude Code 报认证失败优先检查ANTHROPIC_BASE_URL是否为https://taotoken.net/api以及ANTHROPIC_API_KEY是否用了YOUR_API_KEY对应的真实 Key。不要把 ANTHROPIC_* 这套配置复制到 Codex。3.2 Codexconfig.toml 配置Codex 使用~/.codex/config.toml。示例model MODEL_ID_FROM_TAOTOKEN model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY wire_api chat然后在 shell 中导出自己的 Keyexport TAOTOKEN_API_KEYYOUR_API_KEY启动 Codexcodex在 Codex 里同样只处理本地文件请读取 science_math_candidates.csv按时间序列、地理空间、文本、图像、图数据、异常检测分类。 输出候选表并标出每一条需要回原始文档确认的许可证、限流和字段示例。 不要生成注册脚本不要连接任何数据库。注意Codex 不要套用ANTHROPIC_*。Claude Code 和 Codex 的配置体系不同混用只会增加排障成本。3.3 CC Switch填写三件套如果你使用 CC Switch 管理多个 Claude Code 配置核心就是三件套供应商名称TaoToken Base URLhttps://taotoken.net/api API KeyYOUR_API_KEY模型 ID 从 TaoToken 控制台复制填到对应的模型字段。保存后切换到这个配置再启动 Claude Code。如果切换后仍走旧通道检查echo $ANTHROPIC_BASE_URL echo $ANTHROPIC_API_KEY确认当前终端的变量没有被旧配置覆盖。TaoToken 官网入口可从这里进入https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentcc_switch_keyKey 安全上至少做到三点不把YOUR_API_KEY替换成真实 Key 后提交到 Git不把 Key 写进公开的 Jupyter Notebook 输出不在 Agent 提示词里粘贴真实 Key。4. 可复现请求从文档入口到 JSONL 样本的本地命令Agent 整理出候选表后下一步是做最小请求。所有请求都在本地终端执行不要让它直连生产库。先准备通用变量export API_URLhttps://service-domain/endpoint export SERVICE_TOKENservice-token-if-needed export OUT_DIR$HOME/work/science-ml-data/raw mkdir -p $OUT_DIR如果候选服务声明 Auth 为 No可以先不带 tokencurl -sS $API_URL \ -H Accept: application/json \ -o $OUT_DIR/candidate_a.json python -m json.tool $OUT_DIR/candidate_a.json | head -n 40如果声明 Auth 为 apiKey再用环境变量传入curl -sS $API_URL \ -H Accept: application/json \ -H Authorization: Bearer $SERVICE_TOKEN \ -o $OUT_DIR/candidate_b.json python -m json.tool $OUT_DIR/candidate_b.json | head -n 40不要一上来就批量拉取。先看三件事HTTP 状态码是否 200返回体是 JSON、XML 还是 CSV字段是否稳定是否存在分页、时间范围、地理范围参数。可以用curl -i查看响应头curl -i -sS $API_URL \ -H Accept: application/json \ -H Authorization: Bearer $SERVICE_TOKEN \ | head -n 30如果是 JSON 数组可以用jq归一化成 JSONL。下面是一个通用模板字段名按实际响应替换jq -c .[] | { sample_id: (.id // .uuid // .name // unknown), timestamp: (.timestamp // .time // .date // null), latitude: (.latitude // .lat // .coordinates[1] // null), longitude: (.longitude // .lon // .lng // .coordinates[0] // null), value: (.value // .magnitude // .score // null), label: (.type // .category // .status // unknown), source: science_math_candidate, license: TO_VERIFY, last_checked: YYYY-MM-DD } $OUT_DIR/candidate_b.json $OUT_DIR/science_math_samples.jsonl检查 JSONL 行数和前几行wc -l $OUT_DIR/science_math_samples.jsonl head -n 3 $OUT_DIR/science_math_samples.jsonl用 Python 快速读取import json from pathlib import Path path Path.home() / work/science-ml-data/raw/science_math_samples.jsonl rows [] with path.open(encodingutf-8) as f: for line in f: if line.strip(): rows.append(json.loads(line)) print(样本数, len(rows)) print(字段示例, rows[0].keys() if rows else 空)如果你的数据源返回嵌套结构不要急着写复杂解析。先让 Agent 根据样例响应生成字段说明再由你本地执行转换。例如下面是一段候选 API 的样例响应 粘贴脱敏后的 JSON 请输出 1. 可用于机器学习的字段 2. 建议的 JSONL 归一化字段名 3. 缺失值处理建议 4. 需要回到文档确认的许可证和限流项。 不要生成访问生产库的代码。5. 数据源表与字段说明给模型训练准备者的统一中间格式为了让不同来源最终能合进同一个训练流程建议固定一张数据源表。可以先用 Markdown 维护再导出 CSV。字段类型说明示例source_idstring来源唯一标识sci_math_001api_namestringpublic-apis 条目名称Candidate API AcategorystringScience Math 子场景地理空间ml_taskstring适合的 ML 任务回归/异常检测auth_typestringAuth 列No/apiKey/OAuthhttpsstringHTTPS 列Yes/NocorsstringCORS 列Yes/No/Unknowndoc_actionstring文档核对动作查许可证、限流、字段min_requeststring最小请求路径/v1/items?limit1norm_fieldsstring建议归一化字段id,timestamp,lat,lon,value,labellicense_statusstring许可证结论TO_VERIFY/OK/BLOCKEDquotastring限流与额度1000/daylast_checkeddate最近验证日期2026-09-17对应的字段说明表可以这样写归一化字段来源字段示例用途缺失处理sample_idid/uuid/name样本去重用来源名时间戳哈希timestamptimestamp/time/date时间序列切分无时间字段则标记 unknownlatitudelatitude/lat/coordinates[1]地理空间特征无坐标则置空longitudelongitude/lon/lng/coordinates[0]地理空间特征无坐标则置空valuevalue/magnitude/score回归目标缺失则剔除或插值labeltype/category/status分类标签保留 unknownsource固定值来源追踪不允许为空license文档核对合规检查未确认前不公开分发last_checked本地日期数据新鲜度每月更新批量做最小请求时可以写一个只读脚本控制频率#!/usr/bin/env bash set -euo pipefail OUT_DIR$HOME/work/science-ml-data/raw mkdir -p $OUT_DIR while IFS, read -r api_name api_url auth_type; do [ $api_name api_name ] continue echo checking: $api_name if [ $auth_type No ]; then curl -sS --max-time 20 $api_url \ -H Accept: application/json \ -o $OUT_DIR/${api_name}.json || true else echo skip $api_name: need token / manual check fi sleep 2 done candidates_minimal.csv对应的candidates_minimal.csv示例api_name,api_url,auth_type candidate_a,https://service-domain/endpoint,No candidate_b,https://service-domain/endpoint,apiKey注意这个脚本只用于本地最小验证不要把它接到生产采集任务。正式采集前必须回文档确认限流、分页、许可证和商用条款。对于需要 apiKey 或 OAuth 的候选先手动申请和核对不要指望 Agent 自动完成授权。6. 排障与收尾404/410、CORS、限流和 Key 环境变量数据源整理过程中最常见的排障点有四类。第一类是链接失效。社区目录会过期服务也会改版、迁移或下线。你可能会遇到 404 或 410。处理方式不是硬猜新地址而是回到 public-apis 条目、搜索服务名、检查官方文档入口或者直接放弃该候选。候选表里的last_checked就是为这件事准备的。第二类是 CORS。本地 curl 成功不代表浏览器页面能调用。如果前端报跨域错误先看条目的 CORS 列再用浏览器开发者工具确认响应头。CORS 为 No 或 Unknown 时优先把请求放到服务端本地脚本不要在前端硬绕。第三类是限流和额度。你会遇到 401、403、429。401 通常与 Key 有关403 可能是权限或地区限制429 是频率过高。处理顺序# 1. 确认 HTTP 状态 curl -i -sS $API_URL -H Authorization: Bearer $SERVICE_TOKEN | head -n 20 # 2. 降低频率增加 sleep sleep 5 # 3. 检查文档中的 quota 和 rate limit第四类是 Agent 配置不生效。Claude Code 检查echo $ANTHROPIC_BASE_URL echo $ANTHROPIC_API_KEYCodex 检查echo $TAOTOKEN_API_KEY cat ~/.codex/config.tomlCC Switch 则回到三件套供应商名称、Base URL、API Key。Base URL 统一为https://taotoken.net/apiKey 占位符统一写YOUR_API_KEY真实 Key 只放在本地环境变量或受控配置文件中。最后把整个流程收束成可复现产出science_math_candidates.csv从 public-apis 抽出的 Science Math 候选表science_math_candidates.mdAgent 补充 ML 任务、待核对文档、建议字段后的表raw/*.json本地最小请求的原始响应science_math_samples.jsonl归一化后的训练样本field_dictionary.md字段说明和缺失处理记录license_check.md许可证、限流、商用限制的核对清单。如果你还没有配置好模型调用通道可以按这个顺序走先在模型对话里验证数据源表的整理提示词https://taotoken.net/models/detail/chat?utm_sourcetaotoken_aicg_blog_endutm_contentml_data_chat需要长期跑 Agent 整理和排障再看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentml_data_coding_plan创建自己的 Keyhttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentml_data_api_keysClaude Code 配置细节参考https://taotoken.net/doc/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_contentml_data_claude_code_docTaoToken 官网入口https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentfinal_cta把 Agent 放在“整理候选、核对文档、生成字段说明”的位置把本地终端放在“请求、下载、转换、验证”的位置public-apis 的 Science Math 分类就不再是一堆会过期的链接而会变成一条可复现、可审计的机器学习数据准备路径。
返回列表