从论文到代码:Paper2Agent如何实现智能体自动化构建
大语言模型驱动的代码生成正成为连接自然语言描述与可执行程序的关键技术。其核心原理在于将高层次的任务描述,通过提示工程和结构化解析,转化为具体的编程逻辑和API调用。这一过程的技术价值在于极大降低了软件开发门槛,使领域专家能够快速验证想法,加速了从理论到实践的迭代周期。在应用场景上,它广泛适用于智能体构建、自动化脚本生成和教育演示等领域。本文聚焦的Paper2Agent项目,正是这一技术的典型实践,
1. 项目概述:从论文到智能体的自动化之路
最近在AI智能体这个圈子里,一个叫“Paper2Agent”的项目引起了我的注意。简单来说,它瞄准了一个非常具体但又极具价值的痛点:如何把一篇描述智能体架构或方法的学术论文,快速、自动地转化成一个可以实际运行、甚至能进行基准测试的代码智能体。这听起来有点像“论文复现自动化”,但它的野心显然更大——不仅仅是复现代码,更是要构建一个能理解论文意图、提取核心逻辑、并组装成可执行智能体框架的管道。
我自己在跟进前沿论文时,就深有体会。读一篇顶会论文,比如讲一个新型的ReAct智能体或者多智能体协作框架,理解其思想可能需要一两天,但要把里面的架构图、算法描述真正落地成能跑起来的代码,调试到能稳定工作,没个一周甚至更长时间根本下不来。这中间涉及到对论文假设的解读、对未明确细节的补全、对依赖工具的集成,以及无穷无尽的调试。“Paper2Agent”想做的,就是把这个漫长且充满不确定性的过程,给标准化、自动化掉。
它的核心价值在于 加速从理论到实践的验证循环 。对于研究者,可以快速验证新论文中智能体设计的有效性,进行消融实验;对于开发者,可以低门槛地将最新的学术成果转化为可集成的组件;对于学习者,这提供了一个绝佳的、动态的学习案例库。项目通过解析论文(可能是PDF、ArXiv链接或摘要),提取关键组件如推理逻辑、工具使用规范、记忆机制等,然后利用大语言模型的代码生成能力,结合一些预设的智能体框架模板,生成一个功能完整的智能体实现。这不仅仅是代码生成,更是对论文中“智能体思维”的具象化。
2. 核心架构与工作流拆解
要理解Paper2Agent如何工作,我们需要把它拆解成一个清晰的流水线。它不是一个单一的黑盒模型,而是一个精心设计的、模块化的系统。整个流程可以大致分为四个核心阶段:论文理解与信息提取、智能体蓝图生成、代码合成与组装、以及最终的验证与测试。
2.1 第一阶段:论文理解与深度信息提取
这是整个流程的基石,也是最关键的一步。系统接收的输入可能是一篇PDF论文、一个ArXiv ID,或者一段结构化的摘要。这一步的目标不是简单地进行文本摘要,而是像一位经验丰富的工程师一样,从论文中精准抽取出构建一个智能体所需的所有“设计规格书”。
首先,是文档解析与关键信息定位。 对于PDF论文,系统会使用像 PyPDF2 、 pdfplumber 或更专业的 GROBID 这样的工具进行解析,将PDF转换为结构化的文本。这里的一个难点是处理论文中复杂的图表和数学公式。项目很可能会结合OCR和布局分析技术,确保算法伪代码、架构图说明等关键信息不被遗漏。解析后的文本会被送入大语言模型进行深度理解。
接下来,进入结构化信息抽取环节。 这里会使用精心设计的提示词工程,引导LLM(例如GPT-4、Claude 3或开源的Llama 3)扮演“智能体架构师”的角色。提示词会要求模型从论文中提取出以下核心要素:
- 智能体类型与目标 :这是一个单智能体还是多智能体系统?它的核心任务是什么(如问答、决策、代码生成)?
- 推理逻辑与工作流 :智能体是如何思考的?是标准的ReAct(Reasoning-Acting)循环,还是Chain-of-Thought(思维链),或是论文提出的新型推理模式(如Tree of Thoughts)?必须精确提取出循环的步骤和触发条件。
- 工具使用规范 :智能体可以调用哪些外部工具或API?每个工具的输入输出格式、调用时机是什么?例如,论文中可能提到“当需要计算时,调用Calculator工具;当需要搜索时,调用Search API”。
- 记忆与状态管理 :智能体是否有短期记忆(对话历史)或长期记忆(向量数据库)?记忆的存储、检索和更新机制是如何描述的?
- 评估与终止条件 :智能体如何判断任务是否完成?是否有内置的验证逻辑或输出格式要求?
注意 :这个阶段最大的挑战是处理论文的模糊性和未言明的隐含知识。比如,论文可能说“智能体在遇到不确定性时会进行反思”,但具体“不确定性”如何量化、“反思”的具体操作是什么,往往没有代码级的描述。这时,系统需要依赖预置的“常见模式库”或通过多次追问式提示,让LLM做出最合理的假设补全。
提取出的信息会被组织成一个结构化的中间表示,通常是一个JSON或YAML文件,我称之为“智能体蓝图”。这个蓝图文件就是下一阶段的输入,它定义了要建造的“智能体”的所有规格。
2.2 第二阶段:从蓝图到可执行框架的生成
拿到“智能体蓝图”后,系统进入代码生成阶段。这一步不是简单地让LLM写一个完整的脚本,而是基于模板的、组装式的代码合成。
首先,是框架与模板的选择。 Paper2Agent内部应该维护了一个“智能体框架模板库”。这个库包含了针对不同智能体范式的、经过验证的代码模板。例如:
- 基础ReAct智能体模板 :包含一个主循环,循环内部分为“思考(Think)”、“行动(Act)”、“观察(Observe)”三个基本步骤。
- 多智能体协作模板 :包含一个协调者(Orchestrator)和多个专家智能体(Specialist Agent)的通信框架。
- 具有长期记忆的智能体模板 :集成了向量数据库(如ChromaDB, Weaviate)的客户端和检索增强生成逻辑。
系统会根据蓝图中的“智能体类型”和“推理逻辑”字段,选择最匹配的一个或多个基础模板。选择策略可能基于规则(if-else),也可能通过一个小型分类器模型来完成。
然后,进行模板的实例化与填充。 这是代码生成的核心。LLM会接收选定的模板和“智能体蓝图”,它的任务是将蓝图中的具体配置“注入”到模板的占位符中。例如:
- 将蓝图中的“工具使用规范”列表,转化为模板中
get_tools()函数的具体返回内容,每个工具都实例化为相应的类(如CalculatorTool,WebSearchTool)。 - 将蓝图中的“推理逻辑”描述,转化为模板主循环中
_think()方法的具体实现逻辑。如果论文提出了新的推理模式,LLM可能需要根据描述,在模板基础上生成全新的代码片段。 - 将“记忆机制”的描述,实例化为特定的记忆存储类,并集成到智能体的初始化函数中。
这个过程类似于一个高级的、针对智能体领域的代码补全和重构。LLM不仅需要理解Python语法,更需要理解LangChain、AutoGen、CrewAI等流行智能体框架的API设计模式。
最后,是依赖管理与项目结构生成。 生成的智能体代码不是孤立的。系统会同时分析代码中导入的库,自动生成一个 requirements.txt 或 pyproject.toml 文件,列出核心依赖(如 openai , langchain , chromadb )及其建议版本。同时,它也会创建一个基本的项目目录结构,比如将工具类放在 tools/ 目录下,配置放在 config.yaml 中,主入口文件为 agent_main.py 。这确保了生成的项目是即插即用、符合工程规范的。
3. 实操过程:构建你自己的Paper2Agent管道
理解了原理,我们来看看如何动手搭建一个简化版的Paper2Agent流程。这里我不会直接使用未公开的项目代码,而是基于其思想,用常见的开源工具链实现一个核心功能演示。我们的目标是:给定一篇关于“具有代码执行能力的数学推理智能体”的论文摘要,自动生成一个能运行该智能体的脚本。
3.1 环境准备与核心工具选型
我们选择Python作为实现语言。首先安装核心库:
pip install openai langchain chromadb pypdf2 python-dotenv
这里我们做如下选型考量:
- OpenAI API :作为核心的LLM服务,用于信息提取和代码生成。选择它是因为其强大的推理和代码能力,且API稳定。你也可以替换为开源的
ollama(本地运行Llama 3)或anthropic的API。 - LangChain :它提供了智能体(Agent)、工具(Tool)、链(Chain)等高级抽象,是我们的“模板库”和组装框架。利用LangChain可以极大简化智能体的构建流程。
- ChromaDB :一个轻量级、内存式的向量数据库。如果论文中涉及长期记忆或知识检索,我们将用它来实现。
- PyPDF2 :用于基础的PDF文本提取。对于复杂论文,可以升级到
pdfplumber或pymupdf。 - python-dotenv :用于管理API密钥等环境变量。
接下来,在项目根目录创建 .env 文件,填入你的OpenAI API密钥:
OPENAI_API_KEY=sk-your-key-here
3.2 实现论文解析与信息提取模块
我们创建一个 paper_parser.py 文件。首先,实现一个简单的PDF提取函数(作为备选):
import PyPDF2
def extract_text_from_pdf(pdf_path):
"""从PDF中提取纯文本(简易版)"""
text = ""
with open(pdf_path, 'rb') as file:
reader = PyPDF2.PdfReader(file)
for page in reader.pages:
text += page.extract_text() + "\n"
return text
但更核心的是,我们直接从一个结构化的论文摘要(模拟LLM解析后的结果)开始。我们设计一个提示词,让LLM从摘要中提取智能体蓝图。
import os
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import JsonOutputParser
from pydantic import BaseModel, Field
from typing import List
from dotenv import load_dotenv
load_dotenv()
# 1. 定义我们期望输出的“智能体蓝图”数据结构
class AgentBlueprint(BaseModel):
agent_name: str = Field(description="智能体名称")
primary_task: str = Field(description="核心任务描述")
agent_type: str = Field(description="如:ReAct, CoT, Multi-Agent")
reasoning_loop: str = Field(description="推理循环的步骤描述")
tools: List[str] = Field(description="需要的工具列表,如:Python REPL, WolframAlpha, Web Search")
memory_required: bool = Field(description="是否需要记忆机制")
termination_condition: str = Field(description="任务完成的条件")
# 2. 创建输出解析器,强制LLM按JSON格式返回
parser = JsonOutputParser(pydantic_object=AgentBlueprint)
# 3. 构建提示词模板
prompt_template = ChatPromptTemplate.from_messages([
("system", "你是一个资深的AI智能体架构师。你的任务是从AI论文描述中提取构建一个可执行智能体所需的全部规格信息。\n{format_instructions}"),
("human", "请分析以下论文摘要,并提取信息:\n{paper_abstract}")
])
# 将Pydantic模型的格式要求注入提示词
prompt = prompt_template.partial(format_instructions=parser.get_format_instructions())
# 4. 初始化LLM
llm = ChatOpenAI(model="gpt-4-turbo-preview", temperature=0.1) # 低温度保证输出稳定
# 5. 创建处理链
chain = prompt | llm | parser
# 6. 模拟一篇论文摘要(例如,一篇关于MathAgent的论文)
paper_abstract_demo = """
本文提出MathSolver Agent,一个专为解决复杂数学问题设计的智能体。该智能体采用增强的ReAct(Reason-Act)循环。在每次循环中,智能体首先分析问题(Analyze),然后决定是否需要执行代码计算(Decide)。如果需要计算,则调用Python代码解释器工具执行计算(Execute Code),并解析结果(Parse)。最后,基于结果进行总结或进入下一轮分析。智能体可以访问两个工具:1) Python REPL,用于数值计算和符号运算;2) 方程解析器(内置)。该智能体具有对话历史记忆,用于参考之前的步骤。当智能体输出最终答案且置信度超过95%时,任务终止。
"""
# 7. 运行链,提取蓝图
try:
blueprint = chain.invoke({"paper_abstract": paper_abstract_demo})
print("提取的智能体蓝图:")
print(blueprint)
except Exception as e:
print(f"解析失败:{e}")
运行这段代码,你应该会得到一个结构化的字典,类似于:
{
"agent_name": "MathSolver Agent",
"primary_task": "解决复杂数学问题",
"agent_type": "ReAct",
"reasoning_loop": "分析问题 -> 决定是否需要计算 -> 如需计算则调用Python REPL执行 -> 解析结果 -> 总结或进入下一轮",
"tools": ["Python REPL", "方程解析器"],
"memory_required": true,
"termination_condition": "输出最终答案且置信度超过95%"
}
这个 blueprint 对象就是我们后续代码生成的“图纸”。
3.3 实现基于蓝图的代码生成器
有了蓝图,我们进入代码生成阶段。创建 code_generator.py 。我们将根据蓝图中的 agent_type 选择不同的模板。这里以实现一个“增强型ReAct智能体”模板为例。
我们先定义一个基础ReAct智能体的字符串模板:
# code_generator.py
import os
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from dotenv import load_dotenv
load_dotenv()
REACT_AGENT_TEMPLATE = '''
# 根据论文《{paper_title}》生成的智能体:{agent_name}
# 核心任务:{primary_task}
import os
from langchain.agents import AgentExecutor, create_react_agent
from langchain.tools import Tool
from langchain.memory import ConversationBufferMemory
from langchain_openai import ChatOpenAI
from langchain import hub # 用于拉取ReAct提示词
# 1. 定义工具
# {tool_implementation_placeholder}
# 2. 初始化LLM和记忆
llm = ChatOpenAI(model="gpt-4-turbo-preview", temperature=0)
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
# 3. 拉取ReAct标准提示词
prompt = hub.pull("hwchase17/react")
# 4. 创建智能体
agent = create_react_agent(llm, tools, prompt)
# 5. 创建执行器
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
memory=memory,
verbose=True,
handle_parsing_errors=True,
max_iterations=10, # 可根据蓝图调整
early_stopping_method="generate" # 终止条件映射
)
# 主函数
if __name__ == "__main__":
print(f"智能体 '{agent_name}' 已启动,任务:{primary_task}")
while True:
try:
user_input = input("请输入您的问题 (或输入'quit'退出): ")
if user_input.lower() == 'quit':
break
result = agent_executor.invoke({{"input": user_input}})
print("智能体回答:", result["output"])
except Exception as e:
print(f"执行出错: {{e}}")
'''
接下来,我们编写一个函数,将蓝图填充到这个模板中,并让LLM生成具体的工具实现代码。
def generate_agent_code(blueprint: dict):
"""根据蓝图生成智能体代码"""
# 选择模板(这里简化,只实现ReAct类)
if "react" in blueprint["agent_type"].lower():
template = REACT_AGENT_TEMPLATE
else:
raise ValueError(f"暂不支持 {blueprint['agent_type']} 类型的智能体模板")
# 准备工具实现部分的提示词,让LLM生成具体工具代码
llm = ChatOpenAI(model="gpt-4-turbo-preview", temperature=0.1)
tool_gen_prompt = ChatPromptTemplate.from_template("""
你是一个Python编程专家。请根据以下工具名称列表,为LangChain框架生成可用的Tool对象定义代码。
每个Tool需要包含:name, description, 以及一个实现其功能的函数。
工具列表:{tools_list}
只输出Python代码片段,不要任何解释。确保代码可以直接放入LangChain的 `Tool.from_function()` 中使用。
例如,对于"Python REPL"工具,你应该生成一个能执行Python代码并返回结果的函数。
""")
tool_gen_chain = tool_gen_prompt | llm
tools_code = tool_gen_chain.invoke({"tools_list": ", ".join(blueprint["tools"])}).content
# 填充模板
final_code = template.format(
paper_title="相关论文",
agent_name=blueprint["agent_name"],
primary_task=blueprint["primary_task"],
tool_implementation_placeholder=tools_code # 将LLM生成的工具代码插入占位符
)
# 根据蓝图调整参数(简单示例)
final_code = final_code.replace(
"max_iterations=10,",
f"max_iterations=10, # 终止条件: {blueprint['termination_condition']}"
)
if not blueprint["memory_required"]:
final_code = final_code.replace(
"memory = ConversationBufferMemory(memory_key=\"chat_history\", return_messages=True)",
"memory = None"
).replace(
"memory=memory,",
"memory=None,"
)
return final_code
# 使用上一节提取的蓝图
if __name__ == "__main__":
# 假设blueprint是上一节提取的结果
demo_blueprint = {
"agent_name": "MathSolver Agent",
"primary_task": "解决复杂数学问题",
"agent_type": "ReAct",
"reasoning_loop": "...",
"tools": ["Python REPL", "方程解析器"],
"memory_required": True,
"termination_condition": "输出最终答案且置信度超过95%"
}
generated_code = generate_agent_code(demo_blueprint)
print("生成的智能体代码:")
print(generated_code)
# 将代码写入文件
with open("generated_math_agent.py", "w", encoding="utf-8") as f:
f.write(generated_code)
print("\n代码已保存至 'generated_math_agent.py'")
运行这个生成器,你会得到一个完整的 generated_math_agent.py 文件。打开它,你会看到LLM已经生成了 PythonREPLTool 和 EquationParserTool 的具体实现代码(虽然是模拟的),并且整个智能体框架已经搭建完毕,可以直接运行测试。
3.4 测试与迭代优化
生成代码后,最关键的一步是测试。创建一个简单的测试脚本 test_agent.py :
# test_agent.py
import subprocess
import sys
def test_generated_agent():
"""测试生成的智能体"""
print("开始测试生成的MathSolver Agent...")
# 这里我们模拟一个交互过程,实际上你可以直接导入生成的模块
# 为了简单,我们直接运行生成的文件并传入一个问题
test_question = "计算圆的面积,已知半径为5。"
# 注意:实际测试需要配置好OpenAI API密钥
# 这里只是一个流程演示
print(f"测试问题: {test_question}")
print("(请确保已设置OPENAI_API_KEY环境变量,然后手动运行 'python generated_math_agent.py' 进行测试)")
# 更自动化的测试可以捕获输出并断言,但涉及LLM调用,结果非确定。
# 建议的测试策略:
# 1. 语法检查:使用 `py_compile` 或 `ast` 模块验证生成代码的语法。
# 2. 模块导入测试:尝试导入生成的文件,确保没有缺失依赖。
# 3. 简单单元测试:为生成的工具函数编写mock测试。
# 4. 集成测试(可选):在沙箱环境中运行智能体,对简单、确定性问题验证其输出是否符合预期。
if __name__ == "__main__":
test_generated_agent()
测试与迭代的心得:
- 语法检查先行 :在尝试运行任何LLM生成的代码前,一定要用Python的
ast模块或py_compile进行语法检查,避免基础错误导致解释器崩溃。 - 依赖隔离 :建议在虚拟环境或容器中运行生成的代码,因为自动生成的
requirements.txt可能不完整或存在版本冲突。 - 测试用例设计 :为生成的智能体设计“冒烟测试”(Smoke Test)。例如,对于数学智能体,输入“1+1”看它是否能正确调用计算工具并返回“2”。测试问题应尽量简单、无歧义,以验证流程是否通畅。
- 蓝图的反馈循环 :如果测试失败(如工具无法调用、循环逻辑错误),需要分析是蓝图提取不准,还是代码生成有误。可以将错误信息反馈给“蓝图提取”阶段,让LLM重新审视论文描述,修正蓝图。这就构成了一个“解析 -> 生成 -> 测试 -> 反馈”的闭环优化流程。
4. 深入解析:技术挑战与应对策略
构建一个真正鲁棒的Paper2Agent系统,远不止上面演示的流程那么简单。在实际开发中,你会遇到一系列深刻的技术挑战。
4.1 论文理解的模糊性与歧义处理
学术论文,尤其是前沿AI论文,为了突出创新点,常常在工程细节上语焉不详。比如,“智能体采用了一种新颖的混合推理策略”,这句话对于代码生成来说信息量为零。
应对策略:分层解析与常识库补全。
- 分层解析 :不要试图一次理解全文。第一层,提取明确陈述的组件(使用了X工具,遵循Y循环)。第二层,识别模糊描述(“混合推理”),并将其映射到已知的模式库(是“CoT + ReAct”还是“ToT + 反射”?)。第三层,对于完全未定义的术语,启动一个“追问模块”,让LLM基于上下文提出澄清性问题(尽管在自动流程中,这通常需要预设答案或默认选择)。
- 常识库/模式库 :系统必须内置一个丰富的智能体设计模式库。当论文提到“层级规划”时,系统应能关联到“Hierarchical Planning”的经典实现模板;提到“社会推理”时,能关联到多智能体通信协议。这个库需要手动维护和持续扩展,它是连接自然语言描述和具体代码的桥梁。
4.2 代码生成的可执行性与安全性
LLM生成的代码,尤其是涉及工具调用和外部交互的,可能存在逻辑错误、无限循环或安全漏洞(如任意代码执行)。
应对策略:静态分析、沙箱执行与模板约束。
- 静态分析 :在代码生成后,运行
pylint、bandit等工具进行基础代码质量和安全检查,捕获明显的语法错误和安全反模式(如eval的不安全使用)。 - 沙箱执行 : 这是至关重要的安全措施 。对于需要执行代码的工具(如Python REPL),绝对不能在生产环境或宿主机器上直接运行。必须使用Docker容器、
gVisor、nsjail等沙箱技术进行严格隔离,限制其网络、文件系统和系统调用权限。生成的智能体在首次测试时,也应在沙箱中运行。 - 强模板约束 :减少LLM“自由发挥”的空间。我们的代码生成器不应让LLM从头编写一个智能体类,而是让它填充一个高度结构化的模板。工具的实现也应尽量调用预先审核过的、安全的工具库(如LangChain官方工具),而非生成全新的、未经验证的工具代码。
4.3 评估生成智能体的有效性
如何判断自动生成的智能体真的“复现”了论文的思想?准确率、F1值这些传统指标可能不适用。
应对策略:多维度基准测试与对比评估。
- 功能正确性测试 :为特定任务领域构建测试套件。例如,对于数学智能体,使用
GSM8K或MATH数据集的子集进行测试,检查其解题步骤和最终答案是否正确。 - 行为一致性测试 :检查智能体的运行轨迹是否与论文中描述的推理流程一致。例如,论文说“先规划再执行”,那么生成的智能体的日志是否显示出清晰的规划阶段和执行阶段?这可以通过解析智能体的中间思考(如果支持)或工具调用序列来判断。
- 与参考实现的对比 :如果论文开源了官方代码,将生成智能体的性能与官方实现在一个标准评估集上进行对比。性能差距应在可接受的范围内(考虑到自动生成可能丢失一些优化)。
- 人工评估 :最终,引入领域专家进行人工评估,判断生成的智能体是否抓住了论文的精髓。这是黄金标准,但成本较高。
5. 扩展应用与未来展望
Paper2Agent的思想可以扩展到更广阔的领域,而不仅仅是AI智能体论文。
1. 技术博客/教程转代码: 可以将一篇讲解“如何使用FastAPI构建微服务”的技术博客,自动转换为一个可运行的、带有注释的FastAPI项目骨架。系统需要识别博客中的技术栈(FastAPI, SQLAlchemy, Pydantic)、核心端点描述和配置步骤。
2. 产品需求文档(PRD)转原型: 对于一个描述清晰的软件功能需求文档,系统可以尝试生成一个基本的UI前端代码(如React组件)和后端API接口代码。这需要理解自然语言中的实体、关系和操作。
3. 自动化实验复现与消融研究: 对于机器学习论文,可以尝试解析其实验部分,自动生成训练脚本(使用PyTorch或TensorFlow),并设置好消融实验的参数网格。这能极大加速研究人员的实验流程。
未来的核心演进方向可能在于:
- 更精细的蓝图语言 :定义一种更形式化、无歧义的“智能体描述语言”(ADL),作为论文与代码之间的中间层。论文作者可以附带一个简短的ADL描述,极大降低解析难度。
- 交互式生成与调试 :系统生成初步代码后,允许用户以对话形式进行调试和 refinement。例如,用户说“这里的记忆检索逻辑不够高效”,系统可以理解并修改对应代码。
- 集成真实工具与API :系统不仅能生成工具调用的代码框架,还能自动搜索、发现并集成真实的API(如通过APIs.guru或RapidAPI),甚至自动为其编写适配器。
构建Paper2Agent的过程,本质上是在教机器如何“阅读”和“动手实现”。这条路充满挑战,但每解决一个难题,我们就离“想法即代码”的终极愿景更近一步。从我自己的实践来看,当前阶段它最适合作为高级工程师和研究员的“超级辅助”,将人从繁琐的工程复现中解放出来,专注于更高层的设计和新想法的探索。直接全自动生成生产级代码还不现实,但在快速原型验证、知识蒸馏和教育演示方面,它已经展现出巨大的潜力。
更多推荐




所有评论(0)