当前位置: 首页 > news >正文

openapi-to-cli:让AI智能体轻量调用HTTP API的CLI方案

1. 项目概述:当AI助手需要调用API时,我们该怎么做?

如果你正在开发或使用AI智能体(Agent),比如Claude、GPTs或者基于LangChain、LlamaIndex构建的应用,一个绕不开的核心问题就是:如何让AI安全、高效地调用外部HTTP API?无论是查询天气、发送邮件、管理GitHub仓库,还是操作内部业务系统,让AI与真实世界交互的能力至关重要。

传统的解决方案各有优劣。直接给AI一个冗长的OpenAPI文档?上下文窗口(Context Window)的“黄金令牌”很快就会被耗尽,成本高昂且效率低下。为每个API单独编写工具函数?开发维护成本爆炸,敏捷性无从谈起。使用MCP(Model Context Protocol)服务器?虽然解决了认证和状态管理,但引入了额外的架构复杂度和部署开销。那么,有没有一种方法,能像在终端里使用curl一样轻便,但又足够智能,能让AI自主发现并调用API呢?

openapi-to-cli(简称ocli)正是为了解决这个痛点而生。它是一个用TypeScript编写的命令行工具,其核心思想非常巧妙:在运行时(Runtime)动态地将任何符合OpenAPI或Swagger规范的HTTP API,转换为一组可以直接在终端执行的CLI命令。它不需要预先进行代码生成(Code Generation),你只需要提供API的基础URL和OpenAPI规范文件,它就能立刻为你生成一套对应的命令行接口。

想象一下这个场景:你的AI助手需要操作GitHub。你不再需要将包含845个端点的GitHub OpenAPI文档全部塞进提示词。你只需要告诉AI:“使用ocli,先搜索‘create pull request’相关的命令,然后查看repos_owner_repo_pulls_post这个命令的帮助信息,最后带上合适的参数执行它。” AI通过执行这几条简单的Shell命令,就能完成复杂的API调用。整个过程,AI的上下文中只需要理解ocli这一个“工具”的用法,而不是成百上千个独立的API端点。这极大地降低了上下文负担,提升了AI工作的可靠性和效率。

2. 核心设计思路:在工具生态中找到精准定位

在讨论ocli的具体用法前,我们有必要厘清当前AI工具生态中的几个关键层次。ocli的作者在文档中清晰地划分了“工具(Tools)”、“MCP”、“技能(Skills)”和“CLI”四层,这并非竞争关系,而是针对不同场景的互补方案。

2.1 各层级的职责与适用场景

内置工具(Built-in Tools):这是智能体的“标准装备库”,通常包括文件读写、Shell执行、网页浏览等基础且关键的能力。这些工具必须常驻在智能体的上下文(Context)中,因为它们的使用频率极高,是智能体与操作系统交互的基石。例如,让AI写文件或运行一个脚本,就必须依赖这类工具。

MCP(Model Context Protocol):你可以把它理解为智能体的“远程工具服务器”。当某些能力不适合或不能直接内置时,MCP就派上用场了。它非常适合需要集中式认证(如企业SSO)、维护共享状态(如数据库连接池)、保持持久化连接(如WebSocket),或者由于安全、交付限制无法打包进标准工具包的情况。MCP将工具能力“服务化”,智能体通过协议与这些远程服务通信。

技能(Skills):技能的本质是“使用说明书”。它不提供新的工具,而是教导智能体何时以及如何使用已有的工具。技能提供了上下文隔离,只有在特定任务需要时才会被加载到提示词中。例如,一个“GitHub操作技能”可能会详细描述如何利用ocli或GitHub CLI来分步完成代码仓库的管理工作。

CLI(命令行接口)ocli就处在这一层。它面向的是“运行时执行”。当智能体已经通过技能或自身推理,明确了要做什么(What)和大致怎么做(How),剩下的就是具体的执行(Execution)。CLI提供了最轻量、最直接的方式,让智能体通过执行Shell命令来完成一连串动作,特别是那些涉及多个步骤的自动化流程或需要接入Shell管道(Pipe)的场景。

2.2 为什么选择CLI方案?权衡与取舍

理解了分层,就能明白ocli的设计取舍。它放弃了MCP在认证和状态管理上的便利性,换来了极致的轻量与便携。

  • 零基础设施依赖:你不需要部署和维护一个MCP服务器。ocli作为一个全局NPM包,安装即用。
  • 极低的上文开销:智能体只需要记住ocli这一个工具的用法,而不是成百上千个API端点的细节。这在处理像GitHub API这样的大型接口时,节省的上下文令牌(Tokens)是惊人的。
  • 无缝融入现有流程:AI生成的ocli命令,可以直接被人类开发者复制到终端执行、调试,或者嵌入到Shell脚本中,实现了人机协作的流畅衔接。
  • 运行时灵活性:由于是动态解析,当后端的OpenAPI文档更新时(比如新增了端点),你不需要重新生成或部署任何代码,ocli会自动感知到新的命令。

因此,ocli的定位非常明确:当你需要一种轻量级、可移植的方式,让任何具备Shell访问能力的智能体去调用HTTP API时,它是绝佳的选择。如果你的场景涉及复杂的OAuth 2.0流程、需要维护会话状态,或者API本身不适合暴露为命令行,那么MCP可能是更合适的选择。

3. 快速上手指南:从安装到第一次API调用

理论讲完,我们动手实践。ocli的入门非常简单,整个过程在几分钟内就能完成。

3.1 安装与环境准备

ocli基于Node.js开发,因此你需要先确保系统已安装Node.js(版本14或以上)和NPM。

最直接的安装方式是全局安装,这样可以在任何目录下使用ocli命令:

npm install -g openapi-to-cli

安装完成后,在终端输入ocli --version,如果显示出版本号,说明安装成功。

注意:如果你只是临时试用,或者不想污染全局环境,强烈推荐使用npxnpx会临时下载并运行包,无需安装。后文会介绍用npx的快速上手命令。

3.2 添加你的第一个API配置(Profile)

ocli的核心概念是“配置”(Profile)。一个Profile对应一个HTTP API服务。你需要告诉ocli这个API的基础地址(Base URL)和描述它的OpenAPI规范文件(Spec)的位置。

让我们以GitHub REST API v3这个公开API为例:

# 假设你已经将GitHub Personal Access Token存储在环境变量 GITHUB_TOKEN 中 # 如果没有,请先创建:https://github.com/settings/tokens # 并执行:export GITHUB_TOKEN=‘你的token’ ocli profiles add github \ --api-base-url https://api.github.com \ --openapi-spec https://api.github.com/openapi.json \ --api-bearer-token "$GITHUB_TOKEN"

逐条解释这个命令:

  • profiles add github: 添加一个名为“github”的配置。
  • --api-base-url: API的根路径,所有请求都会基于这个URL发起。
  • --openapi-spec: OpenAPI规范文件的URL。GitHub很友好地在其API根目录提供了标准的openapi.json文件。
  • --api-bearer-token: 用于认证的Bearer Token。这里我们使用了环境变量$GITHUB_TOKENocli也支持通过--api-basic-auth传递用户名密码格式的Basic认证。

执行成功后,ocli会下载并解析GitHub的OpenAPI规范,为其所有端点生成对应的命令,并缓存这个配置。

3.3 探索与执行:让AI帮你找到正确的命令

配置添加好后,AI智能体(或者你本人)就可以开始探索和使用这个API了。

第一步:搜索命令AI可能知道它想“创建一个拉取请求(Pull Request)”,但不知道具体的命令名。这时可以使用搜索功能:

ocli commands --query “create pull request” --limit 3

ocli内置了BM25算法(一种信息检索中常用的相关性评分算法)对命令进行自然语言搜索。它会遍历所有命令的名称、HTTP方法、路径、描述和参数名,返回最相关的结果。--limit参数限制返回数量。

第二步:查看命令详情假设搜索返回了一个叫repos_owner_repo_pulls_post的命令,看起来很有希望。在执行前,AI应该先查看它的详细用法和必填参数:

ocli repos_owner_repo_pulls_post --help

--help输出会显示这个命令对应的API路径(如POST /repos/{owner}/{repo}/pulls),列出所有可用参数(--owner,--repo,--title,--head,--base等),并标注哪些是必需的,哪些有默认值或枚举值。这对于AI正确构造请求至关重要。

第三步:执行命令在了解了所需参数后,AI就可以构造并执行命令了:

ocli repos_owner_repo_pulls_post --owner octocat --repo hello-world --title “Fix a critical bug” --head feature-branch --base main

ocli会将命令行参数转换为正确的HTTP请求:将{owner}{repo}路径参数替换为实际值,将--title等参数作为JSON请求体(RequestBody)发送,并自动添加认证头(Authorization: Bearer ...)。执行后,它会将API返回的JSON结果直接打印到终端。

3.4 使用npx的免安装快速体验

如果你只是想快速体验,或者在不常使用的机器上操作,可以使用npx配合onboard子命令,它集成了添加配置和设为当前激活配置的步骤:

npx openapi-to-cli onboard \ --api-base-url https://api.github.com \ --openapi-spec https://api.github.com/openapi.json \ --api-bearer-token “$GITHUB_TOKEN”

这个命令运行后,会临时下载ocli,完成配置添加,并提示你后续可以直接使用npx openapi-to-cli来执行命令。这种方式非常适合快速测试和演示。

4. 高级功能与配置详解

掌握了基础用法后,我们来看看ocli提供的一些高级特性,这些特性能让你在更复杂的生产场景中游刃有余。

4.1 灵活的配置管理

一个ocli可以管理多个API配置。你可以为公司的用户服务、订单服务、支付服务分别创建不同的profile。

  • 列出所有配置ocli profiles list
  • 查看配置详情ocli profiles view <profile_name>
  • 删除配置ocli profiles remove <profile_name>
  • 设置当前激活配置ocli use <profile_name>。设置后,后续命令如果不指定--profile参数,默认使用此配置。

4.2 精细化控制:过滤端点与自定义命令

对于大型API,你可能不希望生成所有端点。ocli提供了精细化的过滤和自定义能力。

ocli profiles add internal-api \ --api-base-url https://internal.company.com/api/v1 \ --openapi-spec ./local-openapi.yaml \ --include-endpoints “get:/users,post:/users,get:/users/{id}” \ --command-prefix “company_” \ --custom-headers ‘{“X-API-Version”: “1.0”, “X-Tenant-ID”: “acme”}’
  • --include-endpoints: 这是一个逗号分隔的列表,用于白名单过滤。格式为方法:路径,例如get:/users。只有匹配的端点才会生成CLI命令。这对于只暴露部分API给AI的场景非常有用。
  • --command-prefix: 为所有生成的命令添加统一前缀(如company_),避免与系统命令或其他API的命令冲突。
  • --custom-headers: 指定需要附加到每个请求的HTTP头。通常用于传递API版本、租户ID等通用信息。值必须是合法的JSON字符串。

4.3 强大的命令发现机制

除了基础的--query搜索,ocli还支持正则表达式搜索,方便进行模式匹配。

# 查找所有以‘post’结尾的命令(通常是创建资源的操作) ocli commands --regex “.*_post$” --limit 10 # 查找所有与‘user’相关的命令 ocli commands --regex “.*user.*” --limit 10

你也可以直接列出当前激活配置下的所有命令:ocli commands。这对于了解一个陌生API的全貌很有帮助。

4.4 对复杂OpenAPI规范的深度支持

现实世界中的OpenAPI文档往往比Petstore示例复杂得多。ocli在后续版本中加强了对这些复杂特性的支持,确保了更高的兼容性。

  • 请求体(RequestBody)处理:完整支持OpenAPI 3的requestBody和Swagger 2的body/formData参数,能正确生成处理JSON或表单数据的CLI参数。
  • 参数继承与引用:支持路径级别(Path-level)的参数定义被操作(Operation)继承,也支持使用$ref引用的参数和请求体模式(Schema)。
  • 参数序列化:支持OpenAPI中定义的多种查询参数序列化风格,如deepObject(深度对象)、pipeDelimited(管道分隔)等,确保生成的请求格式能被服务器正确解析。
  • 多文件规范:支持解析由多个文件通过$ref链接组成的OpenAPI规范,这对于大型、模块化的API设计是必需的。
  • 组合模式(Composed Schemas):更好地处理使用了allOfoneOf等组合关键字的复杂JSON Schema,在--help中给出更清晰的提示。

这些改进意味着,即使你面对的是一个结构复杂、设计严谨的企业级API文档,ocli也有很大概率能够正确解析并生成可用的CLI命令。

5. 与AI智能体(Agent)的集成实战

ocli最大的用武之地就是作为AI智能体的“手”和“眼”。下面我们以两个流行的AI开发框架为例,看看如何将ocli集成到工作流中。

5.1 为OpenClaw智能体添加技能

OpenClaw 是一个开源的AI智能体框架。它通过“技能(Skill)”来扩展能力。

方法一:通过ClawHub技能市场安装(推荐)如果你的OpenClaw环境连接了 ClawHub 技能市场,安装ocli技能非常简单:

clawhub install ocli-api

这个命令会自动下载并安装名为ocli-api的官方技能。技能本质上是一个Markdown文件,里面详细描述了ocli是什么、如何安装、以及AI应该如何使用它(包括搜索、查看帮助、执行命令的标准流程)。

方法二:手动安装技能你也可以从openapi-to-cli项目的skills/目录下找到SKILL.md文件,将其复制到OpenClaw的技能目录中:

# 假设你的OpenClaw技能目录是 ~/.openclaw/skills/ cp /path/to/openapi-to-cli/skills/ocli-api/SKILL.md ~/.openclaw/skills/ocli-api/

重启你的OpenClaw智能体,它就能在技能列表中看到ocli-api,并在需要调用外部API时加载和使用这个技能。

5.2 为Claude Code配置技能

如果你使用的是Claude Code编辑器或其相关的智能体环境,同样可以通过技能来集成。

# 从ocl项目示例中复制技能文件到你的Claude项目配置目录 cp /path/to/openapi-to-cli/examples/skill-ocli-api.md .claude/skills/api.md

这样,当你在该项目中与Claude交互时,它就能理解如何使用ocli来操作API。

5.3 智能体的标准工作流

无论使用哪个框架,集成了ocli技能的AI智能体,在需要调用API时,都会遵循一个类似人类的、合理的工作流:

  1. 发现(Discovery):智能体首先使用ocli commands --query “<任务描述>”来搜索与当前任务相关的API命令。例如,用户说“帮我把这个文件上传到服务器”,AI就会搜索“upload file”。
  2. 学习(Learning):从搜索结果中选取最相关的命令,然后使用ocli <command_name> --help来详细了解该命令所需的参数、格式和必填项。
  3. 执行(Execution):根据帮助信息,智能体构造出完整的、参数正确的ocli命令并执行。它可能会从对话上下文中提取参数值(如文件名、用户ID),或向用户询问缺失的必要信息。
  4. 解析与反馈(Parsing & Feedback):智能体接收ocli执行的原始JSON结果,解析后,用自然语言总结并反馈给用户,或者根据结果决定下一步操作。

这个工作流将复杂的API调用,分解成了AI可以可靠执行的、离散的Shell命令步骤,极大地提高了任务的成功率。

6. 性能与优势分析:数据说话

为什么选择ocli而不是其他方案?项目文档中提供的基准测试数据给出了量化的答案。测试对比了四种策略在处理Swagger Petstore(19个端点)和GitHub API(845个端点)时的令牌(Token)开销。

核心指标:工具定义开销(Tool Definition Overhead)这是指为了让AI能使用一个工具,你需要在系统提示词或上下文中放入的“工具描述”所占用的令牌数。这部分开销在每次AI思考时都可能被计入。

  • MCP Naive(朴素MCP):为每个API端点都定义一个独立的MCP工具。对于Petstore(19端点),开销是2945个令牌;对于GitHub API(845端点),这个数字会膨胀到惊人的130,106个令牌。这在实际应用中是完全不可接受的。
  • MCP+Search(MCP带搜索):这是一种优化方案,只定义少数几个“元工具”(如search_endpoints,get_schema,call_api)。开销降至355-437个令牌,且不随API端点数量增长。
  • CLI(ocli):只需要定义一个工具:“执行Shell命令”。通过这个工具,AI可以运行ocli的所有子命令。其开销恒定在158个令牌,是所有方案中最低的。

总令牌消耗对比(模拟多轮对话)在一个典型的任务中(如“创建PR”),AI可能需要多轮交互(搜索、查帮助、执行)。测试模拟了这个流程:

  • ocli方案总消耗约925令牌。
  • 优化的MCP方案(MCP+Search Compact)消耗约2066令牌。
  • 朴素的MCP方案消耗约3015令牌。

结论ocli在令牌效率上具有显著优势,尤其是在面对大型API时。它将庞大的API知识从昂贵的AI上下文中移出,转移到了按需执行的、廉价的Shell命令中。这不仅节省了成本,也意味着你可以让AI在有限的上下文窗口内处理更复杂的任务。

7. 生态对比与项目选型

市面上存在不少将API转换为CLI的工具,ocli在其中处于一个独特的位置。下表对比了几个主流项目:

特性oclimcp2cliopenapi-cli-generatorCLI-Anything
运行时解释(无代码生成)
无需LLM即可工作
零配置安装(npx/uvx)
多API配置管理✅ (bake模式)
BM25命令搜索❌ (仅子串匹配)
正则命令搜索
按配置过滤端点
OpenAPI/Swagger支持
MCP服务器支持✅ (HTTP/SSE/stdio)
GraphQL支持✅ (自省)
响应过滤(jq/JMESPath)✅ (jq)✅ (JMESPath)

选型建议:

  • 首选ocli:如果你的核心场景是为AI智能体提供轻量级、动态的API调用能力,特别是基于Node.js/TypeScript技术栈,且看重自然的命令搜索功能,那么ocli是最贴合的选择。
  • 考虑mcp2cli:如果你需要更广泛的后端协议支持(如同时支持OpenAPI、MCP服务器、GraphQL),或者需要内置的响应过滤(jq)、OAuth 2.0 PKCE认证等高级功能,并且不介意使用Python环境,那么mcp2cli是一个功能更全面的强大替代品。
  • 代码生成器:像openapi-cli-generator这类工具,适合需要生成静态、可独立分发的专用CLI客户端的场景。它生成的代码性能更好,但失去了运行时的灵活性。
  • CLI-Anything:这个项目更侧重于研究,需要LLM来理解自然语言并生成CLI命令,不属于“开箱即用”的工具。

8. 常见问题与实战排坑指南

在实际使用中,你可能会遇到一些问题。以下是一些常见情况的排查思路和解决方案。

8.1 命令执行失败:网络与认证问题

问题:执行ocli命令后,返回4xx或5xx HTTP错误,或连接超时。

  • 检查网络连通性:首先用curl或浏览器直接访问--api-base-url,确保网络可达。
  • 验证OpenAPI规范地址:确保--openapi-spec指向的URL或文件路径正确,并且返回的是合法的OpenAPI JSON/YAML。
  • 确认认证信息:仔细检查--api-bearer-token--api-basic-auth的值是否正确,Token是否有足够的权限访问目标端点。对于Bearer Token,确保它包含在环境变量中且已导出。
  • 查看自定义请求头:检查--custom-headers的JSON格式是否正确,头信息是否被服务器接受。

8.2 生成的命令不符合预期

问题ocli commands列出的命令很少,或者命令参数看起来不对。

  • 检查端点过滤:你是否使用了--include-endpoints?确认过滤条件是否过于严格,意外排除了需要的端点。
  • 审查OpenAPI规范:有些API的OpenAPI文档可能不完整或不符合规范。可以用在线验证工具(如Swagger Editor)检查你的规范文件。ocli对OAS 3.0支持最好。
  • 路径参数格式:确保OpenAPI文档中路径参数(如/users/{id})的定义是正确的。ocli依赖这些定义来生成对应的CLI参数(如--id)。

8.3 与AI智能体集成不工作

问题:AI无法正确使用ocli技能,或者总是执行错误。

  • 技能描述是否清晰:检查你提供给AI的技能描述文件(SKILL.md)。它是否清晰地说明了ocli的安装步骤、核心子命令(profiles add,commands,--help)以及标准工作流(搜索->查帮助->执行)?
  • AI的Shell权限:确认运行AI智能体的环境(如Docker容器、服务器)是否有权限执行ocli命令,以及Node.js和npm是否已安装。
  • 环境变量传递:如果ocli命令需要环境变量(如$GITHUB_TOKEN),确保这些变量在AI智能体的执行环境中是可用的。

8.4 性能与缓存问题

问题:添加大型API配置(如GitHub API)时速度慢,或者命令搜索有延迟。

  • 利用缓存ocli会自动缓存解析后的OpenAPI规范。首次添加配置时会慢一些,后续操作会快很多。缓存通常位于用户主目录下的.config/ocl或类似位置。
  • 使用本地规范文件:如果远程的openapi.json文件很大或加载慢,可以尝试先将其下载到本地,然后在--openapi-spec参数中指定本地文件路径(如./github-openapi.json)。
  • 限制搜索范围:如果ocli commands列表太长,总是配合--query--regex进行过滤,避免AI需要处理过多的文本输出。

8.5 安全最佳实践

  • Token管理:永远不要将API Token硬编码在脚本或命令历史中。始终使用环境变量($MY_TOKEN)来传递敏感信息。考虑使用dotenv或操作系统自带的密钥管理工具。
  • 最小权限原则:为AI智能体创建专用的API Token,并只授予其完成任务所必需的最小权限(Scope)。例如,对于GitHub,如果只需要读仓库,就不要给写权限。
  • 审计日志:在生产环境中,考虑记录AI通过ocli执行的所有命令及其结果,以便进行审计和故障排查。
  • 配置文件隔离:在共享服务器上,注意ocli的配置文件可能包含认证信息。确保配置文件目录(~/.config/ocl)的权限设置正确。

openapi-to-cli这个项目巧妙地抓住了AI智能体开发中的一个关键痛点,并提供了一种极其简洁优雅的解决方案。它不试图取代MCP或内置工具,而是在它们之间找到了一个完美的平衡点——一个轻量、动态、无需额外基础设施的API调用层。经过几个版本的迭代,它对复杂OpenAPI规范的支持日益完善,与主流AI框架的集成也愈发顺畅。如果你正在构建需要与大量REST API交互的AI应用,或者只是想给现有的AI助手(如Claude for Desktop)快速赋予操作外部服务的能力,花上半小时体验一下ocli,你很可能会发现,它正是你工具箱里缺失的那块拼图。

http://www.cnnetsun.cn/news/2106661.html

相关文章:

  • C++并查集算法简单详解
  • 注意力机制与Transformer模型核心技术解析
  • Venera漫画阅读器:一站式解决你的漫画阅读难题
  • Qt的HSL色彩系统
  • Linux下AI代码编辑器Cursor自动化安装与系统集成脚本详解
  • 基于PraisonAI的多智能体编排框架:从YAML配置到生产部署全解析
  • 深度学习数据缩放:原理、方法与实践指南
  • DeepSeek辅助解决windows 11 wsl2中启用图形界面
  • 【仅限首批200家示范农场】:MCP 2026农业物联网对接“免调试”配置包泄露——含国密SM4加密模板与北斗授时同步策略
  • 机器学习算法选择指南:构建高效算法清单
  • 用 AI Agent Harness Engineering 自动化你的数据分析工作流
  • 从零搭建AI开发环境:手把手教你用Anaconda管理多个PyTorch+CUDA版本(Ubuntu 20.04/22.04实测)
  • 每日算法-两个数组的dp、哈夫曼编码、子序列dp问题+哈希表
  • 机器学习自学路线:从基础到深度学习实战
  • 【限时开放】Docker官方2026安全基线评估工具(非开源版)内测资格仅剩47席:自动扫描你的AI训练镜像是否存在LLM提示注入残留、权重后门及CUDA驱动提权路径
  • 基于安卓的快递包裹隐私保护系统毕业设计源码
  • Claude Code技能精选指南:从信息过载到高效AI工作流构建
  • 多智能体系统在医疗领域的应用:架构设计与工程实践
  • 计算机毕业设计:Python金融大数据可视化与LSTM预测系统 Flask框架 深度学习 机器学习 AI 大模型(建议收藏)✅
  • RandLA-Net 点云语义分割:S3DIS 全流程实现
  • Seedance2:自动化生成osu!音游故事板,解放谱师视觉创意
  • 混合量子计算与三角连续变量门技术解析
  • 香港科大与新加坡国立大学找到了评判AI翻译SQL语句的更好方法
  • 智增增:国内用户免翻墙使用GPT-3.5/4的API中转与配置全攻略
  • cv_unet_image-colorization部署案例:Kubernetes集群中高可用服务编排
  • 基于DistilBERT的问答系统微调与部署实践
  • 3个关键优势:为什么MPC-HC仍是Windows上最纯净的媒体播放器解决方案
  • DJI Cloud API Demo终极指南:5分钟快速上手无人机云服务集成
  • 深度学习词级神经语言模型开发全流程解析
  • 作 业