LangChain Model与Agent实战:从零构建AI应用的完整指南
在实际 AI 应用开发中很多开发者会遇到这样的困境虽然能够调用大模型的 API 生成文本但很难构建出真正实用、稳定、可交互的 AI 应用。问题往往出在缺乏一个完整的框架来管理对话上下文、工具调用和工作流程。LangChain 正是为了解决这些问题而设计的框架它提供了一套完整的工具链来构建基于大模型的应用程序。本文将带领零基础的开发者从 LangChain 的核心概念入手逐步掌握 Model 和 Agent 的使用方法最终能够独立开发出功能完整的 AI 应用。我们会从最基础的环境配置开始通过实际代码示例演示如何集成不同的大模型如何构建能够使用工具的智能 Agent以及如何将这些组件组合成可用的应用。1. 理解 LangChain 的核心价值为什么需要框架而不仅仅是 API 调用1.1 大模型应用的复杂性挑战直接使用大模型 API 开发应用时会遇到几个典型问题。首先是上下文管理多轮对话需要维护历史记录手动拼接 prompt 既繁琐又容易出错。其次是工具集成如果希望模型能够查询数据库、调用外部 API 或执行计算需要复杂的逻辑来协调模型输出和工具调用。最后是工作流设计复杂的应用往往需要多个模型协同工作或者需要根据模型输出决定后续步骤。LangChain 通过提供标准化的组件和设计模式来解决这些问题。它将大模型应用开发抽象为几个核心概念Model模型、Prompt提示词、Chain链、Agent代理和 Memory记忆。这种模块化设计让开发者可以专注于业务逻辑而不是底层的基础设施。1.2 LangChain 与 LangGraph 的定位差异从搜索热词中可以看到很多开发者困惑于 LangChain 和 LangGraph 的区别。简单来说LangChain 更适合构建线性的、确定性的对话流程而 LangGraph 更适合需要复杂状态管理和循环执行的应用。LangChain 的 Chain 和 Agent 适用于大多数业务场景比如客服机器人、文档问答、数据提取等。LangGraph 则更适合需要多步推理、回溯和复杂决策的应用比如自主 AI 代理、复杂规划任务等。对于初学者建议先从 LangChain 入手掌握基本模式后再学习 LangGraph。2. 环境准备与基础配置2.1 安装与版本管理LangChain 的版本兼容性很重要特别是 langchain-core、langchain-community 等子包之间的版本匹配。当前稳定版本是 LangChain 0.1.x 系列建议使用最新版本以避免已知问题。# 安装核心包 pip install langchain-core pip install langchain-community # 安装可选组件 pip install langchain-openai # 如果使用 OpenAI 模型 pip install langchain-anthropic # 如果使用 Claude 模型 # 安装工具依赖 pip install wikipedia # 示例中会用到维基百科查询如果遇到版本冲突可以创建虚拟环境来隔离依赖python -m venv langchain-env source langchain-env/bin/activate # Linux/Mac # 或 langchain-env\Scripts\activate # Windows pip install -r requirements.txt2.2 API 密钥配置使用大模型需要配置相应的 API 密钥。建议使用环境变量来管理敏感信息避免将密钥硬编码在代码中。# 在终端中设置环境变量临时 export OPENAI_API_KEYyour-openai-key export ANTHROPIC_API_KEYyour-anthropic-key # 或者创建 .env 文件 echo OPENAI_API_KEYyour-openai-key .env echo ANTHROPIC_API_KEYyour-anthropic-key .env在代码中安全地读取配置import os from dotenv import load_dotenv load_dotenv() # 加载 .env 文件中的环境变量 openai_api_key os.getenv(OPENAI_API_KEY) if not openai_api_key: raise ValueError(请设置 OPENAI_API_KEY 环境变量)3. Model 基础连接不同的大模型3.1 模型接口的统一抽象LangChain 的核心价值之一是为不同提供商的大模型提供了统一的接口。无论使用 OpenAI、Anthropic、通义千问还是本地部署的模型都可以通过相同的方式进行调用。from langchain_openai import ChatOpenAI from langchain_anthropic import ChatAnthropic # 初始化 OpenAI 模型 openai_model ChatOpenAI( modelgpt-4o, api_keyos.getenv(OPENAI_API_KEY), temperature0.7 # 控制创造性0-1之间越高越有创造性 ) # 初始化 Anthropic 模型 claude_model ChatAnthropic( modelclaude-3-sonnet-20240229, api_keyos.getenv(ANTHROPIC_API_KEY), temperature0.3 )3.2 模型参数详解不同模型支持的参数有所差异但以下几个是关键通用参数model: 模型名称如 gpt-4o, claude-3-sonnet-20240229temperature: 创造性程度0-1之间越高输出越随机max_tokens: 最大输出token数控制回复长度top_p: 核采样参数影响词汇选择多样性在实际项目中需要根据任务类型调整这些参数。比如创意写作可以设置较高的 temperature而事实问答应该设置较低的 temperature 以确保准确性。3.3 处理常见的模型错误从搜索热词中可以看到开发者经常遇到模型配置错误。以下是一些典型错误和解决方法错误信息可能原因解决方案model is not supported模型名称拼写错误或不在支持列表检查文档确认正确的模型名称maximum context length exceeded输入过长减少输入文本或使用摘要技术no available modelsAPI 密钥错误或配额不足检查密钥和账单状态400 Bad Request请求参数格式错误检查参数类型和取值范围try: response model.invoke(你好) except Exception as e: print(f模型调用失败: {e}) # 可以根据具体错误类型提供更详细的处理建议4. 构建第一个 AI Agent让模型使用工具4.1 Agent 的基本概念Agent 是 LangChain 中最强大的概念之一。它让大模型能够根据当前任务决定是否需要使用工具以及使用哪个工具。这与简单的模型调用有本质区别Agent 具备自主决策能力。一个典型的 Agent 包含三个组件LLM: 负责推理和决策的大脑Tools: 可供调用的工具集合AgentExecutor: 执行决策的引擎4.2 工具的定义与注册工具是 Agent 扩展能力的关键。LangChain 提供了大量内置工具也可以自定义工具。from langchain.agents import tool from langchain_community.utilities import WikipediaAPIWrapper tool def search_wikipedia(query: str) - str: 在维基百科中搜索相关信息 wikipedia WikipediaAPIWrapper() return wikipedia.run(query) tool def calculate(expression: str) - str: 计算数学表达式 try: result eval(expression) # 生产环境应使用更安全的计算方式 return f计算结果: {expression} {result} except Exception as e: return f计算错误: {e} # 工具列表 tools [search_wikipedia, calculate]4.3 创建并运行第一个 Agent有了模型和工具就可以组装成完整的 Agent 系统from langchain.agents import create_tool_calling_agent from langchain.agents import AgentExecutor from langchain import hub # 从 LangChain Hub 获取推荐的 prompt prompt hub.pull(hwchase17/openai-tools-agent) # 创建 Agent agent create_tool_calling_agent( llmopenai_model, toolstools, promptprompt ) # 创建执行器 agent_executor AgentExecutor( agentagent, toolstools, verboseTrue # 显示详细执行过程 ) # 运行 Agent result agent_executor.invoke({ input: 请查询爱因斯坦的生平并计算他的出生年份到现在的年数 }) print(result[output])4.4 Agent 执行过程分析当设置verboseTrue时可以看到 Agent 的完整思考过程 进入新的 AgentExecutor 链... 思考用户要求查询爱因斯坦的生平和计算出生年份到现在的年数。 我需要先查询爱因斯坦的出生年份然后计算到现在的年数。 行动search_wikipedia 行动输入{query: 阿尔伯特·爱因斯坦 出生年份} 观察阿尔伯特·爱因斯坦1879年3月14日1955年4月18日... 思考现在我知道爱因斯坦出生于1879年当前是2024年。 需要计算 2024 - 1879 145年。 行动calculate 行动输入{expression: 2024 - 1879} 观察计算结果: 2024 - 1879 145 思考现在我有所有需要的信息了。 最终答案爱因斯坦出生于1879年到2024年已经145年。 链结束。这个过程展示了 Agent 如何自主决定使用工具、处理工具结果并生成最终答案。5. 高级 Agent 配置与优化5.1 多步骤任务处理复杂任务往往需要多个工具协同工作。LangChain 的 Agent 能够自动处理多步骤任务# 复杂问题示例 complex_question 请执行以下任务 1. 查询巴黎埃菲尔铁塔的建造年份 2. 查询法国大革命的开始年份 3. 计算这两个事件相隔多少年 4. 用一句话总结这两个历史事件的关系 result agent_executor.invoke({input: complex_question})5.2 错误处理与重试机制在实际应用中工具调用可能失败Agent 需要具备错误处理能力from langchain.agents import AgentExecutor from tenacity import retry, stop_after_attempt, wait_exponential class RobustAgentExecutor(AgentExecutor): retry(stopstop_after_attempt(3), waitwait_exponential(multiplier1, min4, max10)) def robust_invoke(self, input_data): try: return self.invoke(input_data) except Exception as e: print(fAgent 执行失败: {e}) # 可以在这里添加降级策略 return {output: 抱歉暂时无法处理这个请求} robust_executor RobustAgentExecutor( agentagent, toolstools, verboseTrue, handle_parsing_errorsTrue # 自动处理解析错误 )5.3 性能优化建议生产环境中的 Agent 需要考虑性能优化工具选择优化: 为工具添加描述帮助模型更好地选择工具缓存策略: 对频繁查询的结果进行缓存超时控制: 设置合理的超时时间避免长时间等待并发处理: 对独立的任务使用并发执行from langchain.globals import set_llm_cache from langchain.cache import InMemoryCache # 启用缓存 set_llm_cache(InMemoryCache()) # 带超时的工具调用 tool def search_wikipedia_with_timeout(query: str) - str: import signal from contextlib import contextmanager class TimeoutException(Exception): pass contextmanager def time_limit(seconds): def signal_handler(signum, frame): raise TimeoutException(Timed out!) signal.signal(signal.SIGALRM, signal_handler) signal.alarm(seconds) try: yield finally: signal.alarm(0) try: with time_limit(10): # 10秒超时 return search_wikipedia(query) except TimeoutException: return 查询超时请简化问题或重试6. 实战项目构建智能研究助手6.1 项目需求分析我们将构建一个智能研究助手具备以下功能多来源信息查询维基百科、学术数据库数据计算和分析报告生成和总结对话历史记忆6.2 系统架构设计用户输入 → 意图识别 → 工具选择 → 信息获取 → 数据分析 → 报告生成 → 输出结果6.3 完整代码实现import os from datetime import datetime from langchain.agents import AgentExecutor, create_tool_calling_agent from langchain.memory import ConversationBufferMemory from langchain import hub from langchain_openai import ChatOpenAI from langchain_community.tools import WikipediaQueryRun from langchain_community.utilities import WikipediaAPIWrapper class ResearchAssistant: def __init__(self): # 初始化模型 self.llm ChatOpenAI( modelgpt-4o, temperature0.3, api_keyos.getenv(OPENAI_API_KEY) ) # 初始化工具 wikipedia WikipediaQueryRun(api_wrapperWikipediaAPIWrapper()) tool def get_current_date(): 获取当前日期用于时间计算 return datetime.now().strftime(%Y年%m月%d日) tool def analyze_trend(data_description: str) - str: 基于数据描述进行趋势分析 return f基于数据 {data_description} 的趋势分析结果... self.tools [wikipedia, get_current_date, analyze_trend] # 初始化记忆 self.memory ConversationBufferMemory( memory_keychat_history, return_messagesTrue ) # 创建 Agent prompt hub.pull(hwchase17/openai-tools-agent) agent create_tool_calling_agent( llmself.llm, toolsself.tools, promptprompt ) # 创建执行器 self.agent_executor AgentExecutor( agentagent, toolsself.tools, memoryself.memory, verboseTrue, handle_parsing_errorsTrue ) def research(self, topic: str) - str: 执行研究任务 research_plan f 请对以下主题进行深入研究{topic} 要求 1. 查询相关背景信息 2. 分析关键时间节点 3. 总结主要影响和意义 4. 提供数据支持如有 result self.agent_executor.invoke({input: research_plan}) return result[output] def chat(self, message: str) - str: 普通对话模式 result self.agent_executor.invoke({input: message}) return result[output] # 使用示例 if __name__ __main__: assistant ResearchAssistant() # 研究模式 research_result assistant.research(人工智能发展历史) print(研究结果:, research_result) # 对话模式 chat_response assistant.chat(能详细说说深度学习的发展吗) print(对话回复:, chat_response)6.4 项目扩展方向这个基础项目可以进一步扩展多数据源集成: 添加学术论文数据库、新闻API等可视化输出: 集成图表生成工具文档处理: 添加PDF解析、文档总结功能多语言支持: 支持不同语言的研究和输出7. 生产环境部署考虑7.1 安全性最佳实践在生产环境部署 AI 应用时安全性是首要考虑因素import re from typing import Dict, Any class SecurityFilter: def __init__(self): self.sensitive_patterns [ r\b(密码|密钥|api[_-]?key|secret)\b, r\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}, # IP地址 # 添加其他敏感模式 ] def filter_input(self, user_input: str) - str: 过滤敏感信息 filtered_input user_input for pattern in self.sensitive_patterns: filtered_input re.sub(pattern, [已过滤], filtered_input, flagsre.IGNORECASE) return filtered_input def validate_tool_usage(self, tool_name: str, parameters: Dict[str, Any]) - bool: 验证工具使用是否安全 dangerous_tools [execute_code, system_command] if tool_name in dangerous_tools: # 对危险工具进行额外检查 return self._check_dangerous_operations(parameters) return True # 在 Agent 中使用安全过滤器 secure_agent SecurityFilter()7.2 监控与日志记录完善的监控体系对于生产应用至关重要import logging from datetime import datetime class MonitoringAgentExecutor(AgentExecutor): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.logger logging.getLogger(agent.monitoring) self.usage_stats { total_requests: 0, successful_requests: 0, failed_requests: 0, average_response_time: 0 } def invoke(self, input_data: Dict[str, Any]) - Dict[str, Any]: start_time datetime.now() self.usage_stats[total_requests] 1 try: result super().invoke(input_data) self.usage_stats[successful_requests] 1 # 记录成功日志 self.logger.info(f请求处理成功: {input_data.get(input, )}) except Exception as e: self.usage_stats[failed_requests] 1 self.logger.error(f请求处理失败: {e}) raise finally: # 计算性能指标 response_time (datetime.now() - start_time).total_seconds() self._update_performance_metrics(response_time) return result def _update_performance_metrics(self, latest_time: float): # 更新平均响应时间移动平均 current_avg self.usage_stats[average_response_time] total_requests self.usage_stats[total_requests] new_avg (current_avg * (total_requests - 1) latest_time) / total_requests self.usage_stats[average_response_time] new_avg7.3 成本控制策略大模型 API 调用成本需要有效管理class CostAwareAgent: def __init__(self, monthly_budget: float 100.0): # 默认月度预算100美元 self.monthly_budget monthly_budget self.current_month_cost 0.0 self.cost_rates { gpt-4o: {input: 0.005, output: 0.015}, # 每千tokens价格 claude-3-sonnet: {input: 0.003, output: 0.015} } def estimate_cost(self, model: str, input_tokens: int, output_tokens: int) - float: 估算请求成本 rates self.cost_rates.get(model, {input: 0.01, output: 0.03}) input_cost (input_tokens / 1000) * rates[input] output_cost (output_tokens / 1000) * rates[output] return input_cost output_cost def check_budget(self, estimated_cost: float) - bool: 检查是否超出预算 return (self.current_month_cost estimated_cost) self.monthly_budget def record_usage(self, model: str, input_tokens: int, output_tokens: int): 记录实际使用情况 cost self.estimate_cost(model, input_tokens, output_tokens) self.current_month_cost cost if self.current_month_cost self.monthly_budget * 0.8: print(f警告: 本月预算已使用 {self.current_month_cost}/{self.monthly_budget})8. 常见问题排查与调试技巧8.1 Agent 执行问题诊断根据搜索热词中反映的常见问题整理以下排查指南问题现象可能原因排查步骤Agent 不停循环调用工具工具输出无法满足停止条件检查工具描述是否清晰添加明确的停止条件模型选择错误工具工具描述不够准确优化工具描述使其更具体明确解析错误Parsing Error模型输出格式不符合预期使用handle_parsing_errorsTrue或自定义输出解析器长时间无响应工具执行超时或模型推理慢设置超时限制检查网络连接8.2 调试工具和技巧开发过程中可以使用以下调试方法# 1. 详细日志记录 import logging logging.basicConfig(levellogging.DEBUG) # 2. 中间结果检查 def debug_agent_execution(agent_executor, input_text): print( 调试模式 ) print(f输入: {input_text}) # 分步执行以观察中间状态 step_by_step_result agent_executor.invoke( {input: input_text}, return_intermediate_stepsTrue ) for i, (action, observation) in enumerate(step_by_step_result[intermediate_steps]): print(f\n步骤 {i1}:) print(f动作: {action}) print(f观察: {observation}) return step_by_step_result[output] # 3. 自定义回调进行监控 from langchain.callbacks import BaseCallbackHandler class DebugCallbackHandler(BaseCallbackHandler): def on_agent_action(self, action, **kwargs): print(fAgent 选择动作: {action}) def on_tool_start(self, serialized, input_str, **kwargs): print(f工具开始执行: {serialized.get(name)}, 输入: {input_str}) def on_tool_end(self, output, **kwargs): print(f工具执行完成, 输出: {output}) # 在 AgentExecutor 中使用回调 debug_agent AgentExecutor( agentagent, toolstools, callbacks[DebugCallbackHandler()] )8.3 性能优化检查清单部署前建议完成以下检查[ ] 模型参数temperature、max_tokens是否针对任务优化[ ] 工具描述是否清晰准确[ ] 是否设置了合理的超时时间[ ] 错误处理机制是否完善[ ] 敏感信息过滤是否生效[ ] 成本控制策略是否就绪[ ] 监控日志是否配置完整[ ] 内存使用是否在合理范围内通过系统性的学习和实践开发者可以掌握 LangChain Model 与 Agent 的核心用法构建出真正实用的 AI 应用。关键是要理解框架的设计理念而不仅仅是记住 API 调用方式。在实际项目中建议先从简单功能开始逐步增加复杂度同时建立完善的测试和监控体系。

相关新闻

STM32 SysTick定时器原理与裸机延时编程实战

STM32 SysTick定时器原理与裸机延时编程实战

1. 项目概述:为什么SysTick是STM32的“心跳” 玩STM32的兄弟,肯定都跟定时器打过交道。从基本定时器到高级定时器,功能一个比一个花哨。但今天聊的这个“滴答定时器”(SysTick),它有点特殊。它不像TIM1、TI…

2026/7/30 8:35:32 阅读更多 →
Z变换与零极点分析:数字信号处理的核心工具

Z变换与零极点分析:数字信号处理的核心工具

1. 从时域到z域:为什么我们需要另一个“域”? 信号与系统这门课,学到这里,很多同学可能已经有点“域”疲劳了。先是时域,然后是傅里叶变换带来的频域,现在又冒出来一个z域。这玩意儿到底是干嘛的&#xff1…

2026/7/30 8:35:32 阅读更多 →
51单片机循迹小车:从硬件选型到PID算法,手把手打造嵌入式入门经典项目

51单片机循迹小车:从硬件选型到PID算法,手把手打造嵌入式入门经典项目

1. 项目概述:从零到一,打造你的第一台智能循迹小车 “51单片机循迹小车”,这几乎是每一个电子、自动化或嵌入式方向学生和爱好者的“启蒙项目”。我第一次接触它,还是在大学实验室里,看着一堆散乱的杜邦线、电机驱动板…

2026/7/30 8:35:32 阅读更多 →

最新新闻

Kimi K3长文本处理:本地部署实战与工程化应用指南

Kimi K3长文本处理:本地部署实战与工程化应用指南

上周,当我第一次在本地机器上成功运行起一个号称能处理超长文本的模型时,同事路过我工位,瞥了一眼屏幕上滚动的日志,半开玩笑地问:“你这跑的是不是那个‘女友献舞’的Kimi K3啊?” 我愣了一下,…

2026/7/30 8:46:35 阅读更多 →
Arxiv论文精选:前沿科研与自动化筛选实践

Arxiv论文精选:前沿科研与自动化筛选实践

1. 项目概述 "Arxiv论文每周精选(2026-W09)"是一个学术文献筛选与推荐项目,旨在从海量预印本论文中挖掘最具价值的科研前沿成果。作为长期跟踪学术动态的研究者,我每周都会系统梳理Arxiv平台最新发布的论文,通过多维度评估筛选出各…

2026/7/30 8:46:35 阅读更多 →
ElectronBot-SIM七层架构:从CAD到MuJoCo仿真的机器人开发全流程

ElectronBot-SIM七层架构:从CAD到MuJoCo仿真的机器人开发全流程

在机器人开发领域,从CAD设计到真实机器人控制往往存在巨大的鸿沟。传统的开发流程需要经历机械设计、电子调试、软件编程等多个独立环节,每个环节都可能出现兼容性问题。ElectronBot-SIM项目正是为了解决这一痛点而生,它构建了一个完整的七层…

2026/7/30 8:46:35 阅读更多 →
FLAC3D边坡地震响应分析与自由场边界设置

FLAC3D边坡地震响应分析与自由场边界设置

1. FLAC3D边坡地震模型概述 在岩土工程领域,边坡稳定性分析一直是重点和难点问题。当遭遇地震荷载时,边坡的动力响应更为复杂,传统的静力分析方法已无法满足工程需求。FLAC3D作为一款专业的岩土工程数值分析软件,其显式有限差分算…

2026/7/30 8:46:35 阅读更多 →
STM32串口通信实战:HAL库三种模式详解与DMA+空闲中断高效接收方案

STM32串口通信实战:HAL库三种模式详解与DMA+空闲中断高效接收方案

1. 项目概述:从“点灯”到“对话” 玩过STM32的朋友都知道,第一步往往是“点灯”,用HAL库的 HAL_GPIO_TogglePin() 函数让一个LED闪烁起来,这标志着我们成功建立了与芯片最基本的“控制”连接。但嵌入式开发的世界远不止于此&am…

2026/7/30 8:46:35 阅读更多 →
模型参考自适应控制(MRAC)从理论到实践:李雅普诺夫稳定性与Python仿真实现

模型参考自适应控制(MRAC)从理论到实践:李雅普诺夫稳定性与Python仿真实现

1. 项目概述:从“失控”到“自适应”的工程实践 干了这么多年控制系统,最头疼的莫过于面对一个“不确定”的对象。你费尽心思建好模型,调好PID参数,现场一跑,负载一变、环境一改,性能立马拉胯,要…

2026/7/30 8:45:35 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻