FEATURED · 精选文章

AI Agent如何简化生物信息学分析:从零代码到自动化工作流

发布时间 / 2026/8/17 16:18:07
来源 / 创域科博编辑部
栏目 / 资讯中心
AI Agent如何简化生物信息学分析:从零代码到自动化工作流 在实际生物信息学Bioinformatics项目中数据获取、清洗、分析和可视化往往涉及复杂的命令行工具、脚本编写和统计学知识学习曲线陡峭。近年来以大型语言模型LLM为核心的AI Agent技术为自动化、简化甚至“零代码”完成部分生信分析流程提供了新的可能性。这种模式并非完全取代编程而是通过自然语言指令驱动Agent调用一系列工具将开发者从繁琐的命令行参数记忆和中间文件处理中解放出来更专注于分析逻辑和结果解读。本文面向有一定生物学或医学背景但对编程和复杂生信工具链感到畏惧的研究人员、学生以及对AI Agent应用场景感兴趣的开发者。我们将围绕“AI生信”这一主题构建一个从环境准备到实战分析的技术路径。核心目标是搭建一个集成了AI Agent能力的本地分析环境并演示如何通过自然语言指令驱动Agent自动完成一篇生信分析报告中的关键步骤例如数据获取、质控、比对和差异表达分析。你将了解到如何将开源模型、工具调用框架和生信软件整合起来创建一个可交互、可复现的分析工作流。需要明确的是“零代码”在这里指的是用户无需手动编写Python或Shell脚本来串联分析步骤但底层环境依然需要安装必要的生信软件和Python库分析逻辑也需由用户通过自然语言清晰定义。整个过程更像是指挥一个高度专业化的“智能助手”去执行任务。1. 理解“AI Agent 生信”的核心工作模式在传统生信分析中一个典型的RNA-seq差异表达分析流程可能包含从NCBI SRA数据库下载数据、使用FastQC进行质控、使用Trimmomatic修剪接头、使用HISAT2或STAR进行序列比对、使用featureCounts或HTSeq-count进行计数、最后使用DESeq2或edgeR进行差异分析。每一步都需要输入特定命令和参数。AI Agent的介入旨在改变这种交互模式。其核心工作模式可以分解为以下几个部分1.1 Agent的构成规划、工具调用与执行一个用于生信分析的AI Agent通常由三部分组成规划模块Planner接收用户的自然语言指令如“请分析GSE12345数据集比较癌症组与对照组的差异表达基因”并将其分解为一系列具体的、可执行的任务序列。例如分解为数据下载 - 质控 - 比对 - 计数 - 差异分析 - 可视化。工具调用模块Tool CallingAgent需要知道它能使用哪些“工具”。这些工具就是封装好的生信软件或Python函数。例如download_sra_data、run_fastqc、run_deseq2等。Agent根据规划选择并调用合适的工具。执行与状态跟踪模块Executor负责实际执行工具调用可能是运行一个子进程执行Shell命令或是调用一个Python函数。同时它需要跟踪每个任务的执行状态成功/失败管理中间文件并将执行结果如输出文件路径、日志信息反馈给规划模块以决定下一步行动。1.2 本地化部署的重要性由于生信数据通常涉及敏感或大量的序列数据且许多分析工具需要在特定环境下运行因此将AI Agent系统部署在本地或可控的服务器上是更可行的方案。这避免了将数据上传到外部AI服务的隐私和带宽问题。本地部署的核心是本地大语言模型LLM使用如Llama 3、Qwen、ChatGLM等开源模型通过Ollama、LM Studio或vLLM等框架在本地运行。本地生信工具链确保FastQC、Trimmomatic、STAR等软件已正确安装并配置在系统PATH中。Agent框架使用如LangChain、LlamaIndex、CrewAI等框架来构建Agent的规划、工具调用和能力集成。1.3 “零代码”的边界与期望管理“零代码”并非魔法。用户仍需通过自然语言给出精确、符合逻辑的指令。Agent的能力受限于底层工具集的完整性Agent只能调用它“知道”且系统已安装的工具。LLM的理解与规划能力模型可能误解复杂的生物学问题或生成不合理的任务顺序。错误处理当某个工具运行失败时Agent需要具备一定的错误诊断和恢复能力这通常需要预先编写好处理逻辑。因此当前阶段的“AI生信”Agent更适合作为辅助和自动化工具用于执行标准化、流程化的分析步骤极大提升效率。对于探索性、需要复杂统计建模或算法开发的任务仍需专业人员的深度参与。2. 环境准备搭建本地AI生信分析工作站为了构建一个稳定、可复现的环境我们推荐使用Conda进行Python环境和生信软件的管理并结合Docker或ApptainerSingularity来封装那些依赖复杂的生信工具。2.1 基础系统与Conda环境配置首先确保你的系统Linux/macOS推荐Windows可通过WSL2已安装Miniconda或Anaconda。# 1. 创建一个新的conda环境命名为ai_bioinfo指定Python 3.10 conda create -n ai_bioinfo python3.10 -y conda activate ai_bioinfo # 2. 安装基础的Python科学计算和AI库 pip install numpy pandas scipy matplotlib seaborn jupyter pip install scikit-learn statsmodels # 3. 安装生信分析常用的Python库 pip install biopython pysam pybedtools pyensembl2.2 生信命令行工具安装许多核心生信工具通过Bioconda频道安装最为方便。首先添加Bioconda频道。# 添加conda频道按顺序添加优先级从高到低 conda config --add channels defaults conda config --add channels bioconda conda config --add channels conda-forge conda config --set channel_priority strict # 安装一批常用的生信工具以RNA-seq流程为例 conda install -c bioconda fastqc trimmomatic hisat2 star samtools subread conda install -c bioconda sra-tools # 用于下载SRA数据 conda install -c bioconda multiqc # 聚合质控报告 # 验证安装 fastqc --version trimmomatic -version hisat2 --version2.3 本地大语言模型与Agent框架部署接下来部署本地LLM和Agent框架。我们以Ollama运行本地模型和LangChain构建Agent为例。方案A使用Ollama运行本地模型推荐入门Ollama简化了本地LLM的下载和运行。# 在Linux/macOS上安装Ollama curl -fsSL https://ollama.com/install.sh | sh # 启动Ollama服务 ollama serve # 在另一个终端拉取并运行一个模型例如Llama 3 8B ollama pull llama3:8b ollama run llama3:8b # 测试一下输入/bye退出对话方案B使用LangChain和本地模型API如果你通过其他方式如vLLM启动了模型服务可以通过LangChain连接。# 在ai_bioinfo环境中安装LangChain及相关工具 pip install langchain langchain-community langchain-experimental pip install langchain-openai # 用于兼容OpenAI API格式的本地模型假设你的本地模型服务在http://localhost:8000/v1提供OpenAI兼容的API你可以这样配置from langchain_openai import ChatOpenAI import os os.environ[OPENAI_API_KEY] dummy-key # 本地模型通常不需要真key os.environ[OPENAI_API_BASE] http://localhost:8000/v1 llm ChatOpenAI(modellocal-model, temperature0.1)2.4 项目目录结构规划一个清晰的项目结构有助于管理数据、代码和结果。ai_bioinfo_project/ ├── agents/ # Agent相关代码 │ ├── __init__.py │ ├── bio_agent.py # 生信Agent核心类 │ └── tools/ # 工具定义目录 │ ├── __init__.py │ ├── data_fetch_tools.py │ ├── qc_tools.py │ └── analysis_tools.py ├── configs/ # 配置文件 │ └── paths.yaml # 路径配置 ├── data/ # 原始数据 │ ├── raw/ │ └── sra/ ├── processed/ # 处理中间文件 ├── results/ # 最终结果和报告 ├── logs/ # 运行日志 ├── requirements.txt # Python依赖 └── run_analysis.py # 主启动脚本使用paths.yaml来管理路径避免硬编码# configs/paths.yaml data_dir: “./data” raw_data_dir: “{data_dir}/raw” sra_data_dir: “{data_dir}/sra” processed_dir: “./processed” results_dir: “./results” log_dir: “./logs” reference_genome: “/path/to/your/genome/index” # 例如HISAT2索引路径 gtf_file: “/path/to/your/annotation.gtf”3. 构建生信分析AI Agent工具定义与集成Agent的核心是它能使用的工具集。我们需要将生信软件封装成LangChain可以调用的Tool对象。3.1 封装数据下载工具首先创建一个从NCBI SRA数据库下载数据的工具。我们使用sra-tools中的prefetch和fastq-dump。# agents/tools/data_fetch_tools.py import subprocess import os from langchain.tools import BaseTool from typing import Type from pydantic import BaseModel, Field class SraDownloadInput(BaseModel): sra_accession: str Field(description”SRA accession number, e.g., SRR1234567”) output_dir: str Field(description”Directory to save downloaded FASTQ files”) class SraDownloadTool(BaseTool): name “sra_downloader” description “Downloads sequencing data from NCBI SRA database given an accession number.” args_schema: Type[BaseModel] SraDownloadInput def _run(self, sra_accession: str, output_dir: str) - str: “””执行下载逻辑””” os.makedirs(output_dir, exist_okTrue) # 使用prefetch下载sra文件 prefetch_cmd [“prefetch”, “-O”, output_dir, sra_accession] # 使用fastq-dump或fasterq-dump解压为fastq # 这里使用fasterq-dump更快注意它是sra-tools的一部分 fastq_cmd [“fasterq-dump”, “–outdir”, output_dir, “–split-files”, os.path.join(output_dir, f”{sra_accession}.sra”)] try: print(f”Prefetching {sra_accession}…”) subprocess.run(prefetch_cmd, checkTrue, capture_outputTrue, textTrue) print(f”Converting to FASTQ…”) result subprocess.run(fastq_cmd, checkTrue, capture_outputTrue, textTrue) # 清理.sra文件以节省空间可选 sra_path os.path.join(output_dir, f”{sra_accession}.sra”) if os.path.exists(sra_path): os.remove(sra_path) return f”Successfully downloaded and converted {sra_accession} to FASTQ in {output_dir}.n{result.stdout}” except subprocess.CalledProcessError as e: error_msg f”Failed to download {sra_accession}. Error: {e.stderr}” print(error_msg) return error_msg async def _arun(self, sra_accession: str, output_dir: str): “””异步版本暂不实现””” raise NotImplementedError(“This tool does not support async”)3.2 封装质控工具封装FastQC和MultiQC。# agents/tools/qc_tools.py import subprocess import os from pathlib import Path from langchain.tools import BaseTool from typing import Type, List from pydantic import BaseModel, Field class FastQCInput(BaseModel): fastq_path: str Field(description”Path to a FASTQ file or directory containing FASTQ files.”) output_dir: str Field(description”Directory to save FastQC reports.”) class FastQCTool(BaseTool): name “fastqc” description “Runs FastQC quality control on FASTQ file(s).” args_schema: Type[BaseModel] FastQCInput def _run(self, fastq_path: str, output_dir: str) - str: os.makedirs(output_dir, exist_okTrue) cmd [“fastqc”, “-o”, output_dir, “–noextract”, fastq_path] try: result subprocess.run(cmd, checkTrue, capture_outputTrue, textTrue) return f”FastQC completed for {fastq_path}. Report saved to {output_dir}.n{result.stdout}” except subprocess.CalledProcessError as e: return f”FastQC failed for {fastq_path}. Error: {e.stderr}” class MultiQCInput(BaseModel): analysis_dir: str Field(description”Directory containing output from various bioinformatics tools (e.g., FastQC).”) output_dir: str Field(description”Directory to save the aggregated MultiQC report.”) class MultiQCTool(BaseTool): name “multiqc” description “Aggregates results from bioinformatics analyses (e.g., FastQC) into a single report.” args_schema: Type[BaseModel] MultiQCInput def _run(self, analysis_dir: str, output_dir: str) - str: os.makedirs(output_dir, exist_okTrue) cmd [“multiqc”, analysis_dir, “-o”, output_dir] try: result subprocess.run(cmd, checkTrue, capture_outputTrue, textTrue) return f”MultiQC report generated in {output_dir}.n{result.stdout}” except subprocess.CalledProcessError as e: return f”MultiQC failed. Error: {e.stderr}”3.3 创建Agent并装配工具在bio_agent.py中我们将LLM和工具组合起来创建一个可以执行复杂计划的Agent。# agents/bio_agent.py import yaml from langchain.agents import initialize_agent, AgentType from langchain.memory import ConversationBufferMemory from langchain_openai import ChatOpenAI from .tools.data_fetch_tools import SraDownloadTool from .tools.qc_tools import FastQCTool, MultiQCTool # 后续可以导入更多工具如比对、计数、差异分析工具 class BioInfoAgent: def __init__(self, config_path”configs/paths.yaml”): # 加载配置 with open(config_path, ‘r’) as f: self.config yaml.safe_load(f) # 初始化LLM连接本地Ollama服务 self.llm ChatOpenAI( model”local-model”, openai_api_base”http://localhost:11434/v1”, # Ollama默认API地址 openai_api_key”ollama”, # Ollama不需要真实key temperature0.1, max_tokens2048 ) # 初始化工具列表 self.tools [ SraDownloadTool(), FastQCTool(), MultiQCTool(), # 未来添加 Hisat2Tool, Deseq2Tool 等 ] # 初始化记忆使Agent能记住对话上下文 self.memory ConversationBufferMemory(memory_key”chat_history”, return_messagesTrue) # 创建Agent执行器 self.agent_executor initialize_agent( toolsself.tools, llmself.llm, agentAgentType.CHAT_CONVERSATIONAL_REACT_DESCRIPTION, # 适合多轮对话和工具调用 memoryself.memory, verboseTrue, # 打印详细思考过程便于调试 handle_parsing_errorsTrue # 处理解析错误 ) def run(self, human_input: str) - str: “””运行Agent接收自然语言指令””” try: response self.agent_executor.invoke({“input”: human_input}) return response[“output”] except Exception as e: return f”Agent execution failed with error: {e}” # 简单测试 if __name__ “__main__”: agent BioInfoAgent() # 测试指令下载数据并做质控 test_input “”” 请帮我下载SRA数据SRR1234567假设的accession保存到./data/sra目录。 然后对下载好的FASTQ文件运行FastQC质控将报告输出到./results/fastqc。 最后使用MultiQC汇总所有质控报告到./results/multiqc。 “”” result agent.run(test_input) print(“Agent Response:”, result)4. 运行与验证驱动Agent完成自动化分析流程现在我们有了一个初步可用的Agent。让我们通过一个更完整的示例来验证其工作流程。由于直接操作真实SRA数据可能耗时我们以模拟流程和检查点验证为主。4.1 启动本地模型服务确保Ollama服务正在运行并且拉取了一个合适的模型如llama3:8b或qwen:7b。# 终端1启动Ollama服务如果尚未运行 ollama serve # 终端2拉取并运行模型如果尚未拉取 ollama pull llama3:8b # ollama run llama3:8b # 交互式测试用我们的Agent通过API连接4.2 编写主运行脚本并测试基础功能创建一个主脚本run_analysis.py它初始化Agent并处理用户查询。# run_analysis.py import sys import os sys.path.append(os.path.dirname(os.path.abspath(__file__))) from agents.bio_agent import BioInfoAgent def main(): print(“初始化生物信息学AI Agent…”) agent BioInfoAgent() # 示例1简单的工具调用测试不涉及真实下载 print(“n 测试1询问工具能力 ”) test_query1 “你有哪些可以使用的工具” response1 agent.run(test_query1) print(f”用户: {test_query1}”) print(f”Agent: {response1}”) # 示例2一个完整的分析指令假设性 print(“nn 测试2执行一个假设的分析流程 ”) # 注意这里使用一个不存在的SRA号避免真实下载。实际使用时替换为真实的。 test_query2 “”” 请执行以下RNA-seq分析流程 1. 从SRA下载数据SRR1234567这是一个测试号可能不存在到./data/sra_test目录。 2. 对下载的数据进行FastQC质量检查输出报告到./results/fastqc_test。 3. 使用MultiQC整合质控报告到./results/multiqc_test。 请按步骤告诉我你做了什么。 “”” response2 agent.run(test_query2) print(f”用户: {test_query2}”) print(f”Agent: {response2}”) # 示例3交互式模式 print(“nn 进入交互式模式 (输入 ‘quit’ 退出) ”) while True: try: user_input input(“n您: “) if user_input.lower() in [‘quit’, ‘exit’, ‘q’]: print(“再见”) break if user_input.strip(): response agent.run(user_input) print(f”Agent: {response}”) except KeyboardInterrupt: print(“n程序被中断。”) break except Exception as e: print(f”发生错误: {e}”) if __name__ “__main__”: main()运行此脚本conda activate ai_bioinfo python run_analysis.py你将看到Agent的思考过程因为verboseTrue它会尝试解析你的指令规划步骤并调用相应的工具。对于测试指令由于SRA号不存在prefetch会失败Agent会返回错误信息。这正是我们验证错误处理流程的机会。4.3 验证成功的关键检查点一个成功的Agent执行流程应能观察到以下关键点规划分解Agent的思考日志verbose输出应显示它将你的自然语言指令分解成了几个明确的步骤例如“我需要先调用sra_downloader然后调用fastqc最后调用multiqc”。工具调用日志中应显示类似“Action: sra_downloader, Action Input: {…}”的内容表明它正确选择了工具并传入了参数。工具执行对应的工具函数被触发执行Shell命令。结果观察在指定的输出目录如./results/fastqc_test中应生成相应的报告文件如.html和.zip文件即使数据下载步骤失败后续步骤也可能因缺少输入文件而失败但工具调用本身是成功的。状态反馈Agent最终会汇总各步骤的结果用自然语言回复给你。5. 核心问题排查与调试指南在构建和运行此类AI Agent系统时你会遇到各种问题。以下是按优先级排序的排查清单。5.1 模型服务连接失败现象Agent初始化或运行时卡住或报错ConnectionError、Timeout。检查1服务是否运行执行curl http://localhost:11434/api/tagsOllama或相应API端点看是否返回模型列表。检查2端口和地址确认openai_api_base配置的端口和IP地址正确。Ollama默认是http://localhost:11434/v1。检查3模型是否已拉取运行ollama list确认所需模型存在。解决方案启动服务拉取模型修正配置地址。5.2 工具调用失败或参数错误现象Agent日志显示调用了工具但工具执行报错或参数格式不对。检查1工具描述descriptionLLM依赖工具的描述来选择工具。确保描述清晰、准确包含关键输入参数名。检查2参数模式args_schema确认args_schema中定义的字段名和类型与工具的_run方法参数匹配。字段的description要写清楚。检查3子进程执行路径在工具的_run方法中打印出要执行的命令cmd然后在终端手动执行看是否能成功。常见问题包括软件未安装、未加入PATH、环境变量问题在Conda环境中子进程可能未激活环境。可以在命令前加上conda run -n ai_bioinfo或使用绝对路径。解决方案修正工具描述和参数模式确保生信软件在Agent运行环境中可用在工具函数内添加更详细的错误捕获和日志。5.3 Agent无法理解复杂指令或规划错误现象Agent没有按正确顺序执行任务或完全误解了指令。检查1指令清晰度给Agent的指令应尽量清晰、结构化。可以分步骤描述或先让Agent“制定一个分析计划”确认后再执行。检查2模型能力较小的模型如7B、8B在复杂规划和逻辑推理上可能不足。尝试换用更大参数量的模型如70B或使用专为工具调用微调的模型如Qwen2.5-7B-Instruct。检查3温度temperature参数过高的温度如0.7会增加输出的随机性可能导致规划不稳定。对于执行任务建议设置在0.1-0.3。解决方案优化指令升级模型调整LLM参数考虑使用更高级的Agent框架如CrewAI来显式定义工作流和角色。5.4 生信软件本身报错现象工具调用触发了但生信软件如hisat2,deseq2运行失败。检查1输入文件确认上游步骤产生的文件存在且格式正确。例如FastQC要求输入是.fastq或.fastq.gz文件。检查2软件参数Agent调用的工具函数中预设的命令行参数可能不适用于你的特定数据如测序读长、单端/双端。需要根据数据情况调整工具函数的默认参数或让用户通过指令指定。检查3资源限制比对、组装等步骤非常消耗内存和CPU。检查服务器资源是否充足是否被killed。检查4参考文件确保参考基因组索引、GTF注释文件等路径在配置文件中正确且文件完整。解决方案手动运行失败的命令根据错误信息调试在工具函数中加入更完善的参数验证和资源检查分步执行确保每一步成功后再进行下一步。问题大类具体现象可能原因检查与解决方向环境与连接Agent初始化失败LLM无响应1. 本地模型服务未启动2. 网络端口被占用或防火墙阻止3. Python依赖包版本冲突1. 检查服务进程和端口 (netstat -tlnp)2. 验证API连通性 (curl)3. 创建干净的Conda环境按requirements.txt重装工具执行工具被调用但报错“命令未找到”1. 生信软件未安装或未加入PATH2. Conda环境未在子进程中激活3. 工具函数中的命令拼写错误1. 在Agent运行环境中手动执行命令测试2. 在命令中使用绝对路径或conda run3. 检查并修正工具函数中的命令字符串逻辑与规划Agent步骤顺序混乱或执行了错误工具1. 用户指令模糊2. LLM模型推理能力有限3. 工具描述description不够准确1. 将复杂指令拆分成多个简单指令分步执行2. 尝试更大或更专精的模型3. 重写工具描述突出其核心功能和输入输出数据与文件生信软件报错“文件不存在”或“格式错误”1. 上游步骤输出文件未生成2. 文件路径配置错误3. 文件权限不足1. 检查每个工具的输出目录和日志2. 使用绝对路径或统一管理路径变量3. 检查文件读写权限 (ls -l)资源与性能进程被杀死或长时间无响应1. 内存不足 (OOM)2. CPU占用过高3. 磁盘空间不足1. 使用top或htop监控资源2. 对大数据分析考虑使用队列系统或分批次处理3. 定期清理中间文件6. 生产环境最佳实践与扩展方向将AI Agent用于实际的生信分析生产流程需要超越“跑通demo”的阶段考虑稳定性、可维护性和扩展性。6.1 安全与稳定性加固输入验证与沙箱Agent接收的用户指令可能包含恶意代码或危险路径。必须在工具调用前对输入参数进行严格验证如检查路径是否在允许的目录内。考虑在Docker容器内运行工具进行资源隔离。错误处理与重试目前的工具_run方法只有基础异常捕获。生产环境需要更健壮的错误处理例如网络波动导致的下载失败应自动重试数次并记录详细日志。资源限制通过subprocess的resource模块或容器限制为每个工具调用设置CPU、内存和运行时间的上限防止单个任务耗尽服务器资源。操作确认对于删除文件、覆盖重要结果等危险操作Agent应主动向用户请求确认或设计为不可逆操作需要额外标志。6.2 可观测性与日志结构化日志不要只依赖print。使用Python的logging模块为不同级别INFO, WARNING, ERROR和不同组件Agent, 各个Tool配置日志并输出到文件。日志应包含时间戳、任务ID、工具名、输入参数、开始结束时间、执行状态和错误信息。结果持久化Agent的对话历史、执行计划和最终结果应保存到数据库如SQLite或文件中便于追溯和审计。监控告警对于长时间运行的分析流程可以集成监控系统当任务失败或超过预期时间时发出告警。6.3 扩展Agent能力集成更多生信工具按照相同模式封装更多工具如Trimmomatic、HISAT2、STAR、featureCounts、DESeq2R脚本调用、clusterProfiler富集分析等。目标是覆盖一个完整的分析流程。实现条件逻辑与循环当前的Agent是线性的。更复杂的流程需要条件判断如“如果质控失败则进行修剪”和循环如“对样本列表中的每一个样本执行比对”。这需要更强大的规划器或使用支持工作流定义的框架如LangGraph。结果解读与报告生成让Agent不仅能运行分析还能初步解读结果。例如调用DESeq2后可以封装一个工具来读取结果表格提取上下调的Top基因并调用LLM生成一段简明的结果摘要。甚至可以集成matplotlib或seaborn来自动生成火山图、热图并嵌入到最终的Markdown或HTML报告中。6.4 工作流编排与可视化对于固定的、复杂的分析流程完全依赖LLM进行动态规划可能效率低下且不稳定。可以考虑混合模式预定义工作流模板将常见的分析流程如“标准RNA-seq差异分析”、“WGS变异检测”定义为固定模板如CWL、Nextflow或Python函数。Agent作为调度器与参数填充器用户用自然语言描述需求Agent负责识别匹配的模板并将用户意图转化为模板所需的参数如物种、SRA号、比较组然后启动该工作流引擎执行。可视化界面结合Gradio、Streamlit等库为Agent构建一个Web界面用户可以更直观地上传数据、输入指令、查看任务进度和下载结果。构建一个真正实用、可靠的“AI生信”分析系统是一个渐进的过程。从封装好单个工具开始到串联起一个完整流程再到处理异常、优化性能、完善交互。这个过程中AI Agent扮演的是“智能胶水”和“自然语言接口”的角色其价值在于降低技术门槛、提升自动化程度而分析任务本身的生物学意义和严谨性始终需要研究者来把握和决策。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻