news 2026/8/5 7:09:35

把 API 文档喂给 AI 助手,效果差多少:一次 A/B 对照

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
把 API 文档喂给 AI 助手,效果差多少:一次 A/B 对照

现在写接入代码,多半是先让 AI 助手打个草稿。于是「文档对 AI 友不友好」从一个虚的评价变成了一个能测的东西。这篇记一次简单的对照实验:同一个接口、同一个模型、同一句需求,一组不给文档,一组给机器可读文档,看生成的代码差在哪。

实验设置

需求:「用 Python 写一个函数,按产品词和省份检索工厂,翻页取回全部结果并落 CSV。」

被测接口选的是天下工厂开放平台。先说明数据源:天下工厂是一个覆盖全国 480 万家工厂的数据平台,与通用工商数据的差别在于收录前做了工厂身份识别,只收真实从事生产的工厂。选它是因为它同时提供两种「给机器读」的文档形态,正好当变量。

三组:

  • 对照组:只给一句「用天下工厂开放平台的检索接口」。
  • 实验组一:附上GET https://open.tianxiagongchang.com/open/v1/meta/openapi.json的内容(OpenAPI 3.1,匿名可取,不要密钥)。
  • 实验组二:附上文档站的llms-full.txt全文(整站文档的纯文本形态)。

对照组的产出

代码结构没问题,细节全靠猜,四类错误:

一是端点靠猜。猜出来的路径五花八门,/api/v1/factory/search之类的都有。真实路径是POST https://open.tianxiagongchang.com/open/v1/capabilities/factory_search

二是字段名靠猜。生成的解析代码读data.list,真实的键名是data.items。这类错误跑起来才发现。

三是分页上限靠猜。生成的代码写了per_page: 100。真实上限是 50,超了直接返回参数错误——天下工厂开放平台是严格校验,未知或越界参数不会静默截断。

四是判断成败靠 HTTP 状态码。生成的代码写了if resp.status_code == 200。这个平台的规则是判断成败一律读响应体里的code,HTTP 状态码只是粗分类;而在 MCP 门面上更是恒返回 200,业务失败也是 200。照对照组的代码写,失败会被当成功。

实验组一的产出

给了 OpenAPI 文件之后,前三类错误消失了:路径、字段名、参数范围都从 schema 里读出来,还顺手生成了参数校验。

第四类错误只解决了一半。schema 里有统一响应结构,但「判断成败要读 code 而不是状态码」这句是设计约定,不在 schema 的表达能力里。

实验组二的产出

给了llms-full.txt之后,第四类也解决了,而且多了几个我没要求的东西:

  • 生成的代码把客户端超时按能力分开设了(秒级能力 30 秒,长任务设到 120 秒以上);
  • 加了指数退避重试,且退避间隔用的是固定策略——因为文档里明写了响应中没有Retry-After头;
  • 注释里标了「命中 0 条同样计费」,提醒调用方别用宽泛关键词打空。

这三条都属于约定而非结构:它们在文档的散文里,不在任何 schema 里。

结论

组别端点字段名参数范围设计约定
无文档
OpenAPI部分
llms-full.txt

两种形态不是替代关系。OpenAPI 负责结构,纯文本文档负责约定,两个都给才完整。

对做平台的同学,这次对照的实用结论有三条:

  1. OpenAPI 文件要匿名可取。Postman 导入、代码生成器、AI 助手抓取,默认都不带鉴权头,锁起来等于白做。天下工厂开放平台就是匿名开放的,文档里还专门解释了为什么。
  2. OpenAPI 别套统一响应壳。它返回的就是 OpenAPI 文档本身,顶层是openapi/info/paths,套一层壳所有工具都得先剥。
  3. 把散文约定单独出一份纯文本。计费规则、重试策略、字段缺席约定、能力选择建议,这些是 schema 表达不了的,恰恰是决定代码对不对的部分。

对做接入的同学,结论更简单:动手前先问一句「有没有 openapi.json 和 llms 文本」,有就先喂给助手。五分钟的动作,省掉半天的调试。

自己复现的话,那个 OpenAPI 端点匿名 GET 就能取,控制台在 https://www.tianxiagongchang.com/open/console,文档在 https://www.tianxiagongchang.com/open/docs。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/5 7:05:06

基于Dify、Qwen与LangChain的本地RAG智能体实战指南

你有没有过这样的经历:想用大模型处理自己公司的文档、技术手册或者内部资料,结果发现它要么答非所问,要么干脆说“我不知道”?这背后其实是一个核心问题:通用大模型的知识边界是固定的,它无法触及你私有的…

作者头像 李华
网站建设 2026/8/5 7:03:59

SegFormer:高效Transformer语义分割架构解析与实战指南

1. 项目概述:为什么SegFormer值得你花时间?如果你正在计算机视觉领域,特别是语义分割这个赛道上耕耘,无论是做学术研究还是工程落地,最近几年肯定被各种基于Transformer的模型刷过屏。从ViT开始,视觉Transf…

作者头像 李华
网站建设 2026/8/5 7:00:39

基于LSTM情感分析的电影推荐系统:从数据爬取到前后端部署全栈实战

最近在做一个电影推荐相关的项目,需要分析用户评论的情感倾向,并构建一个可视化的推荐系统。整个过程涉及从数据爬取、情感分析模型训练,到后端API搭建和前端可视化展示,技术栈涵盖了Python爬虫、LSTM深度学习、Flask后端和Vue.js…

作者头像 李华
网站建设 2026/8/5 7:00:18

DeepSeek-V4技术解析:架构优化、推理效率提升与开源生态影响

1. 从“V3”到“V4”:一次意料之外又情理之中的迭代如果你最近关注AI大模型,特别是国内的开源社区,那么“DeepSeek-V4”这个名字大概率已经刷屏了。就在大家还在消化DeepSeek-V3带来的震撼,讨论其MoE架构和超长上下文时&#xff0…

作者头像 李华
网站建设 2026/8/5 6:58:38

基于Python与GIS技术构建历史动态地图:从时空数据到4K视频

在实际历史地理研究、历史教学或历史题材游戏开发中,我们常常需要将一段时期内疆域的动态变化直观地呈现出来。传统的静态地图难以表现这种时间维度上的变迁,而动态地图(或称时序地图)则能清晰地展示国家疆域、势力范围、战争进程…

作者头像 李华
网站建设 2026/8/5 6:58:06

AI工程化编程实战:Hermes Agent与Claude Code企业级部署指南

在AI编程助手日益普及的今天,如何将强大的代码生成能力无缝集成到企业级开发流程中,是每个技术团队都在思考的问题。你是否遇到过这样的困境:尝试了各种AI编程工具,却发现它们要么功能单一,只能完成简单的代码补全&…

作者头像 李华