AIGC入门,程序员的第一个MCP例子

快速上手:实现你的第一个 MCP Client 本文介绍了如何使用 MCP Python SDK 编写一个 MCP 客户端,并集成 LLM 来实现灵活的工具调用和数据处理。通过简单的示例和进阶示例,展示了如何通过标准输入输出(stdio)方式与 MCP 服务器建立连接,并集成 LLM(如通义千问)来实现更复杂的应用场景。 阅读详情

一步步来,先来stdio的Claude MCP例子

MCP示例:时间查询

创建目录及mcp示例脚本

/Users/mac/mcp_time_server/time_server.py

#!/usr/bin/env python3
"""
时间查询MCP服务器
支持多时区时间查询和格式化
"""

import asyncio
import logging
from datetime import datetime
import pytz
from typing import Any, Sequence
from mcp.server.models import InitializationOptions
import mcp.types as types
from mcp.server import NotificationOptions, Server
import mcp.server.stdio

# 配置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("time-server")

# 创建服务器实例
server = Server("time-query-server")

@server.list_tools()
async def handle_list_tools() -> list[types.Tool]:
    """
    返回可用工具列表
    """
    return [
        types.Tool(
            name="get_current_time",
            description="获取当前时间,支持指定时区",
            inputSchema={
                "type": "object",
                "properties": {
                    "timezone": {
                        "type": "string",
                        "description": "时区名称 (如: Asia/Shanghai, UTC, America/New_York)",
                        "default": "UTC"
                    },
                    "format": {
                        "type": "string", 
                        "description": "时间格式 (如: %Y-%m-%d %H:%M:%S)",
                        "default": "%Y-%m-%d %H:%M:%S"
                    }
                }
            }
        ),
        types.Tool(
            name="get_timezone_info",
            description="获取时区信息和当前时间",
            inputSchema={
                "type": "object",
                "properties": {
                    "timezone": {
                        "type": "string",
                        "description": "时区名称 (如: Asia/Shanghai, UTC, America/New_York)",
                        "default": "UTC"
                    }
                }
            }
        ),
        types.Tool(
            name="list_timezones",
            description="列出常用时区",
            inputSchema={
                "type": "object",
                "properties": {
                    "region": {
                        "type": "string",
                        "description": "地区过滤 (如: Asia, America, Europe)",
                        "default": ""
                    }
                }
            }
        ),
        types.Tool(
            name="time_difference",
            description="计算两个时区之间的时间差",
            inputSchema={
                "type": "object",
                "properties": {
                    "timezone1": {
                        "type": "string",
                        "description": "第一个时区",
                        "default": "UTC"
                    },
                    "timezone2": {
                        "type": "string", 
                        "description": "第二个时区",
                        "default": "Asia/Shanghai"
                    }
                }
            }
        )
    ]

@server.call_tool()
async def handle_call_tool(
    name: str, arguments: dict[str, Any] | None
) -> list[types.TextContent]:
    """
    处理工具调用
    """
    if arguments is None:
        arguments = {}
    
    try:
        if name == "get_current_time":
            timezone_name = arguments.get("timezone", "UTC")
            time_format = arguments.get("format", "%Y-%m-%d %H:%M:%S")
            
            try:
                tz = pytz.timezone(timezone_name)
                current_time = datetime.now(tz)
                formatted_time = current_time.strftime(time_format)
                
                return [
                    types.TextContent(
                        type="text",
                        text=f"当前时间 ({timezone_name}): {formatted_time}"
                    )
                ]
            except Exception as e:
                return [
                    types.TextContent(
                        type="text", 
                        text=f"错误: 无效的时区或格式 - {str(e)}"
                    )
                ]
                
        elif name == "get_timezone_info":
            timezone_name = arguments.get("timezone", "UTC")
            
            try:
                tz = pytz.timezone(timezone_name)
                current_time = datetime.now(tz)
                utc_offset = current_time.strftime("%z")
                
                info = f"""时区信息:
- 时区名称: {timezone_name}
- 当前时间: {current_time.strftime("%Y-%m-%d %H:%M:%S")}
- UTC偏移: {utc_offset}
- 时区缩写: {current_time.strftime("%Z")}"""
                
                return [types.TextContent(type="text", text=info)]
            except Exception as e:
                return [
                    types.TextContent(
                        type="text",
                        text=f"错误: 无效的时区 - {str(e)}"
                    )
                ]
                
        elif name == "list_timezones":
            region = arguments.get("region", "").strip()
            
            # 常用时区列表
            common_timezones = [
                "UTC", "GMT",
                "Asia/Shanghai", "Asia/Tokyo", "Asia/Seoul", "Asia/Hong_Kong",
                "America/New_York", "America/Los_Angeles", "America/Chicago",
                "Europe/London", "Europe/Paris", "Europe/Berlin", "Europe/Rome",
                "Australia/Sydney", "Australia/Melbourne"
            ]
            
            if region:
                filtered_timezones = [tz for tz in common_timezones if region in tz]
            else:
                filtered_timezones = common_timezones
            
            timezone_list = "".join([f"- {tz}" for tz in filtered_timezones])
            
            return [
                types.TextContent(
                    type="text",
                    text=f"{'过滤后的' if region else '常用'}时区列表:{timezone_list}"
                )
            ]
            
        elif name == "time_difference":
            tz1_name = arguments.get("timezone1", "UTC")
            tz2_name = arguments.get("timezone2", "Asia/Shanghai")
            
            try:
                tz1 = pytz.timezone(tz1_name)
                tz2 = pytz.timezone(tz2_name)
                
                now = datetime.now(pytz.UTC)
                time1 = now.astimezone(tz1)
                time2 = now.astimezone(tz2)
                
                # 计算时差
                offset1 = time1.utcoffset().total_seconds() / 3600
                offset2 = time2.utcoffset().total_seconds() / 3600
                diff = offset2 - offset1
                
                result = f"""时区时间对比:
- {tz1_name}: {time1.strftime("%Y-%m-%d %H:%M:%S")} (UTC{offset1:+.0f})
- {tz2_name}: {time2.strftime("%Y-%m-%d %H:%M:%S")} (UTC{offset2:+.0f})
- 时差: {diff:+.0f} 小时"""
                
                return [types.TextContent(type="text", text=result)]
                
            except Exception as e:
                return [
                    types.TextContent(
                        type="text",
                        text=f"错误: 无效的时区 - {str(e)}"
                    )
                ]
        else:
            return [
                types.TextContent(
                    type="text",
                    text=f"错误: 未知工具 '{name}'"
                )
            ]
            
    except Exception as e:
        return [
            types.TextContent(
                type="text",
                text=f"执行工具 '{name}' 时出错: {str(e)}"
            )
        ]

async def main():
    """主函数"""
    logger.info("启动时间查询MCP服务器...")
    
    async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
        await server.run(
            read_stream,
            write_stream,
            InitializationOptions(
                server_name="time-query-server",
                server_version="1.0.0",
                capabilities=server.get_capabilities(
                    notification_options=NotificationOptions(),
                    experimental_capabilities={}
                )
            )
        )

if __name__ == "__main__":
    asyncio.run(main())

进行Claude配置

/Users/mac/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "time-query-server": {
      "command": "/Users/mac/my_venv/bin/python",
      "args": ["/Users/mac/mcp_time_server/time_server.py"],
      "env": {
        "VIRTUAL_ENV": "/Users/mac/my_venv"
      },
      "description": "时间查询MCP服务器 - 支持多时区时间查询和格式化",
      "disabled": false
    }
  }
}

重启Claude

看到下方2个截图则表示安装正确
在这里插入图片描述

在这里插入图片描述

测试MCP-查询当前时间

可以看到Claude自动使用了这个MCP服务了
在这里插入图片描述

MCP工具选择推理过程

我有多个可用的工具,其中time-query-server明显最适合:
● 工具描述:“获取当前时间,支持指定时区”
● 其他工具如baidu-search、web_search等都不是专门处理时间查询的

参数构造推理

  1. 时区参数推理:

    ○ 大阪在日本
    ○ 日本标准时区是 Asia/Tokyo(东京时区覆盖整个日本,包括大阪)
    ○ 这是标准的IANA时区标识符格式

  2. 格式参数选择:

    ○ 使用默认的 %Y-%m-%d %H:%M:%S 格式
    ○ 这是最常见和清晰的时间显示格式

知识来源

这些推理基于我的训练数据中包含的:
● 世界地理知识(大阪在日本)
● 时区知识(日本使用Asia/Tokyo时区)
● 工具使用模式和API设计常识
● IANA时区数据库的标准命名规则
所以整个过程是:意图识别 → 工具匹配 → 参数映射 → API调用。

Claude MCP小结

● 脚本编写可以给出提示词Claude帮你生成
● MCP服务脚本编写完成后,并不需要在item2中通过命令行主动运行起来,即不需要执行python3 time_server.py,下方是Claude启动前后的进程对比,可以看到Claude启动后自动运行了time_server.py脚本了

一步步来,再来个stdio协议的IntelliJ IDEA MCP例子

MCP示例:git commit时,message自动在结尾增加一行文字

创建目录及mcp示例脚本

/Users/mac/.aone_copilot/mcp_servers/commit-message-enhancer/main.py

#!/usr/bin/env python3
import json
import sys
import asyncio

# 模拟FastMCP类,避免依赖问题
class FastMCP:
    def __init__(self, name: str):
        self.name = name
        self.tools = {}

    def tool(self, description: str):
        def decorator(func):
            self.tools[func.__name__] = {
                "function": func,
                "description": description
            }
            return func
        return decorator

    def run(self):
        # 简单的MCP协议实现
        if len(sys.argv) > 1 and sys.argv[1] == "--mcp":
            if len(sys.argv) > 2 and sys.argv[2] == "tools":
                # 返回工具列表
                tools_list = []
                for name, tool in self.tools.items():
                    tools_list.append({
                        "name": name,
                        "description": tool["description"],
                        "inputSchema": {
                            "type": "object",
                            "properties": {},
                            "required": []
                        }
                    })
                print(json.dumps(tools_list))
            elif len(sys.argv) > 2 and sys.argv[2] == "tool" and len(sys.argv) > 3:
                # 执行工具
                tool_name = sys.argv[3]
                if tool_name in self.tools:
                    # 获取函数参数(如果有)
                    kwargs = {}
                    if len(sys.argv) > 4:
                        try:
                            kwargs = json.loads(sys.argv[4])
                        except:
                            pass

                    # 执行函数
                    result = asyncio.run(self.tools[tool_name]["function"](**kwargs))
                    output = {
                        "content": [{
                            "type": "text",
                            "text": result
                        }]
                    }
                    print(json.dumps(output))

# 创建 MCP 服务器
mcp = FastMCP("Commit Message Enhancer")

# MCP 工具 - 增强commit message
@mcp.tool(description="在commit message末尾添加协作开发信息")
async def enhance_commit_message(message: str) -> str:
    """
    在commit message末尾添加协作开发信息

    Args:
        message: 原始commit message
    """
    try:
        # 在commit message末尾添加协作开发信息
        enhanced_message = message + "\n\nCo-developed-by: Lingma Copilot <lingma-agent@alibaba-inc.com>"
        return enhanced_message
    except Exception as e:
        return f"增强commit message时出错: {str(e)}"

if __name__ == "__main__":
    mcp.run()

配置后原则上无须重启IDEA即可加载出来,如下图所示

在这里插入图片描述

测试MCP-提交代码

Aone Copilot插件-Agent模式下,输入“提交代码”,会自动完成代码提交工作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

学会查看错误日志

如果配置后Claude Destop重启后依旧看不到或者有报错信息,可以使用下面的命令查看错误详情
tail -n 20 -F ~/Library/Logs/Claude/mcp*.log

AIGC 里 MCP 模型上下文协议的优势解读 随着AIGC(人工智能生成内容)技术的快速发展,上下文处理能力成为决定模型生成质量的核心要素。传统上下文管理方案(如固定窗口截断、滑动窗口机制)在面对长文本、多模态输入、复杂对话场景时,普遍存在上下文丢失、语义断层、跨模态融合低效等问题。本文聚焦MCP(Multi-Contextual Protocol)模型上下文协议,系统解析其在动态上下文建模、分层语义表示、跨模态信息融合等方面的技术优势,通过理论分析、算法实现和实战案例,展现其在提升AIGC模型上下文理解能力上的突破性价值。背景介绍。 阅读详情

相关推荐

MCP模型上下文协议在AIGC中的实现与优化策略

随着AIGC技术的快速发展,如何更好地管理模型的上下文信息成为提高生成内容质量和效率的关键问题。MCP模型上下文协议为解决这一问题提供了一种有效的方案。本文的目的在于深入探讨MCP模型上下文协议在AIGC中的实现方式以及相应的优化策略,以帮助开发者更好地应用该协议提升AIGC系统的性能。研究范围涵盖了MCP模型上下文协议的基本原理、在AIGC中的具体实现步骤、相关的优化方法以及实际应用场景等方面。通过理论分析和代码实践相结合的方式,全面展示该协议在AIGC领域的应用价值。

AI天才研究院 1138

一文带大家了解关于MCP 的完整 Hello World 示例

本文是一个基于 Model Context Protocol (MCP) 的完整 Hello World 示例,包含服务端和客户端代码,展示最基本的工具注册与调用流程

liwenxiang629的博客 3759

AIGC技术指南:MCP模型上下文协议全解析

在当今人工智能生成内容(AIGC)蓬勃发展的时代,模型之间的高效数据交互和上下文理解变得至关重要。MCP(Model Context Protocol)模型上下文协议作为一种关键的技术,旨在解决模型在处理任务时对上下文信息的有效利用和传输问题。本文的目的就是深入剖析MCP模型上下文协议的各个方面,包括其原理、实现步骤、应用场景等,为相关领域的开发者、研究人员提供全面的技术指导。范围涵盖了从协议的基本概念到实际项目中的应用,以及未来的发展趋势和可能面临的挑战。

大模型应用工坊 1115

MCP开发例子

摘要: MCP(模型上下文协议)是Anthropic推出的开源AI通信标准,旨在实现AI与外部工具的高效交互。通过Python示例展示其应用:服务端定义工具(如加法、时间查询),客户端结合Ollama模型实现智能对话与工具调用。代码演示了MCP工具转换、流式对话处理及动态工具执行流程,体现AI从"聊天"到"执行"的能力升级。典型场景包括时间查询、数学计算等,开发者可通过MCP快速扩展AI功能边界。

染指年华 81

Python的MCP Server开发实战

这是一个入门级的教程主要讲解一下MCP Server的开发,主要是用官网的例子以及MCP Python SDK。

Criss@陈磊 5934

AIGC领域MCP模型上下文协议的应用与优势

随着AIGC技术的爆发式发展(如ChatGPT、Stable Diffusion、GPT-4),生成内容的复杂度和场景需求持续升级:从短文本对话到万字级报告生成,从单模态文本到多模态(文本+图像+语音)交互,从通用场景到垂直领域(如医疗问诊、法律文书)。这些升级对模型的上下文理解与管理能力提出了更高要求:模型需要精准捕捉历史对话/内容中的关键信息,避免“遗忘”重要上下文,同时动态过滤冗余信息以降低计算开销。本文聚焦AIGC领域的MCP模型上下文协议。

AI天才研究院 1177

MCP代理并发编程终极指南:10个高性能实践技巧

MCP代理(Model Context Protocol Agent)是一个强大的AI代理框架,能够通过并发编程技术显著提升多服务器环境下的性能和响应速度。无论您是构建复杂的多工具系统还是需要高效处理并行任务,掌握MCP代理的并发编程最佳实践都至关重要。🚀 ## 为什么MCP代理并发编程如此重要? 在现代AI应用中,**并发编程**已经成为提升系统性能的关键技术。MCP代理框架原生支持异步操

gitblog_00485的博客 926

STM32F429移植LVGL9.3.0:从源码配置到双缓冲优化实战

本文详细介绍了如何在STM32F429平台上移植LVGL 9.3.0图形库,涵盖从源码准备、工程配置、显示驱动适配到双缓冲优化等关键步骤。重点解析了利用STM32F429的硬件特性实现高效内存管理和流畅显示性能的实战技巧,为嵌入式GUI开发提供完整解决方案。

q6r7s8t9的博客 1128

AIGC时代的新风口!MCP协议引领未来无限可能

MCP是由Anthropic主导推出的一种开放协议,旨在标准化大型语言模型(LLM)与外部数据源和工具之间的通信。它如同AI领域的“USB-C接口”,通过统一协议连接大语言模型与本地文件、数据库、API等资源,打破数据孤岛,实现“即插即用”的智能交互[1][7][8]。MCP主机(MCP Hosts):发起请求的AI应用程序,如聊天机器人、AI驱动的IDE、个人助理等[1][3][8]。MCP客户端(MCP Clients):在主机程序内部,与MCP服务器保持1:1的连接,负责发送请求和接收响应。

程序边界 9253

合成生物学中试:花钱只是开始,烧钱才是常态

2026年合成生物学行业面临严峻产业化挑战:多家企业终止发酵项目或延期投产,显示从实验室到工厂的转化困境。核心问题并非基因合成成本,而是工艺放大难题——67%项目在中试阶段因工艺问题失败。AI辅助无法替代工程经验,菌株-配方-工艺的三元适配需要长期数据积累。中试成本惊人,涉及设备折旧、原料消耗和稀缺工艺人才,而行业普遍回避讨论这些工程现实,导致认知偏差。建议创业者提前布局中试,将其视为核心竞争力而非简单成本项。合成生物学的真正瓶颈在于工程化能力,这需要时间沉淀而非技术叙事。

AIexander的博客 942

UFS 3.1协议分析(第一至四章) -- UFS概述

Contents协议规范规范参考术语和定义简单概述通用特性接口特性功能特性 协议规范     UFS3.1协议规定了UFS电气接口和存储器件的特性以及系统架构。 特性:低功耗、高数据吞吐量、低电磁干扰、大容量存储器子系统效率的优化 电气接口:使用基于MIPI M-PHY的高级差分接口;M-PHY作为物理层,MIPI UniPro作为链路层,二者结合形成UFS接口的互联。 架构模型:参考 INCITS T10(SCSI) SAM 标准,命令协议基于 INCITS T1

Frank_sample的专栏 1万+

《一文搞懂 AI、LLM、Prompt、MCP、AIGC 是什么,有什么区别?》

本文用通俗易懂的方式,带你一次性搞懂五个热门 AI 概念:AI、LLM、Prompt、MCP、AIGC。不仅解释它们分别是什么、能做什么,还通过类比、图示和实际例子,讲清楚它们之间的区别与协作关系。读完后你将理解: AI 是“智能”的总称,LLM 是会语言的“核心大脑” Prompt 是你给 AI 的“提问或指令” MCP 是帮助 AI 理解上下文的“接口协议” AIGC 是最终由 AI 生成的内容结果 文章适合对 AI 感兴趣的所有人阅读,0 基础也能轻松看懂。

2508_91877124的博客 2483

STM32HAL库 基于外部Flash+FatFs模拟U盘方式进行固件拷贝升级(详解)

STM32HAL库 基于外部Flash+FatFs模拟U盘方式进行固件拷贝升级

qq_36075612的博客 1万+

AIGC时代的新风口!MCP协议引领未来无限可能_aigc mcp

MCP是由Anthropic主导推出的一种开放协议,旨在标准化大型语言模型(LLM)与外部数据源和工具之间的通信。它如同AI领域的“USB-C接口”,通过统一协议连接大语言模型与本地文件、数据库、API等资源,打破数据孤岛,实现“即插即用”的智能交互[1][7][8]。MCP主机(MCP Hosts):发起请求的AI应用程序,如聊天机器人、AI驱动的IDE、个人助理等[1][3][8]。MCP客户端(MCP Clients)

HUANGXIN9898的博客 1158

nRF52840开发环境搭建:从零开始配置Keil与SDK

本文详细介绍了nRF52840开发环境搭建的全过程,包括硬件准备、Keil MDK与nRF5 SDK的安装配置、常见问题解决方案及蓝牙功能开发进阶。特别强调了J-Link调试器的使用和SDK版本匹配的重要性,帮助开发者快速上手nRF52840开发。

weixin_29176179的博客 881

Claude Code VSCode集成开发指南:AI编程助手完整配置

Claude Code与Visual Studio Code的深度集成为开发者提供了强大的AI编程支持。本文详细介绍Claude Code VSCode扩展的安装配置、功能特性和实际应用方法。通过完整的配置流程和代码示例,帮助开发者充分利用Claude AI的智能编程能力。文章涵盖从环境搭建到高级功能应用的完整指南,包括代码自动补全、智能重构、实时代码分析等核心功能的使用技巧,以及与现有开发工作流的整合方案。

2501_93058131的博客 5981

AI大模型入门指南:从 0 开始,手把手教你开发第一个MCP服务!

给我对接的 json复制这个代码。

HUANGXIN9898的博客 1276

《用 R 探索医药数据科学》目录(持续更新,已超 250 万字)|订阅前说明

我们重磅推出《用 R 探索医药数据科学》专栏!本文作为专栏【订阅后首读】的核心内容,堪称开启学习之旅的 “入门钥匙”,也是整个专栏最关键的一篇指引文。文中不仅完整呈现了专栏 9 大核心篇章 + 问答板块的详细目录,更囊括了订阅后必知的核心要点 —— 从阅读设备、实操工具的使用建议,到学习路径、更新规则的清晰说明,再到问题反馈、感悟记录的实用方法,一站式帮你摸清专栏框架、找准学习方向。建议各位订阅者务必认真阅读、吃透内容,这能让你后续的学习更高效、少走弯!

MD Code 1万+

AIGC、RAG、Agent、Function Call、MCP 到底啥关系?一次讲明白!

AI应用开发技术链解析:从内容生成到智能行动的演进路径。AIGC(AI生成内容)提供基础能力如生成文字/图像;RAG通过检索外部知识库增强模型知识;Agent实现自主决策与任务执行;Function Call让AI调用外部函数完成动作;MCP则建立跨平台统一调用标准。这五个层级共同构建智能体应用生态,使AI从单纯内容生产升级为能理解、决策和执行的智能助理。典型场景如:通过RAG查阅企业数据生成报告,Agent自动调用Function Call发送邮件,MCP确保跨系统安全调用。技术演进本质是AI从&quot

上善若水 1663

2024年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++小学组:带解析)

2024全国青少年信息素养大赛C++算法创意实践挑战赛初赛真题及解析

王老师青少年编程 2808

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

一文带你彻底理解 AIGC、Agent、MCP 的概念和关系

本文系统介绍了AIGC、MCP和Agent三大AI核心技术概念及其相互关系。AIGC指人工智能生成内容,核心是多模态和RAG技术;Agent是具备自主决策能力的智能系统,通过FunctionCall模型调用外部工具;MCP是模型上下文协议,标准化了模型与外部工具的交互方式。三者协同构建了现代AI应用:AIGC提供内容生成能力,MCP实现标准化接口,Agent则整合这些能力完成复杂任务。随着技术发展,Multi-Agent和MCP生态正推动AI向更通用、更智能的方向演进,为各行业带来变革性影响。文章为理解当前

Q2024107的博客 935

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

大模型 AIGC、Agent、MCP、RAG、Function Call分别是什么?

定义:人工智能生成内容,泛指由 AI 自动生成文本、图像、音频、视频等内容。原理基础:依赖于大规模预训练语言模型(LLM)、扩散模型(如 Stable Diffusion)、语音合成模型等。典型应用文本创作(新闻稿、小说、营销文案)图像生成(Midjourney、DALL·E)视频生成(Sora、Runway)音乐/语音合成(ElevenLabs)✅定位:AIGC 是目标层——即“要做什么”,是大模型能力的最终输出形态。

weixin_37926313的博客 1322

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

彻底爆了!一文吃透AIGC、Agent、MCP的概念和关系

AI时代,运维程序员护城河是什么近年来,人工智能领域涌现出许多新概念和新技术,其中AIGC、MCP和Agent成为了业界和学术界的热门话题。本文将深入浅出地介绍这三个概念,帮助读者全面理解它们的内涵、区别与联系,以及在实际应用中的价值。

2401_85280106的博客 1149

【程序员必藏】AIGC+Agent+MCP:构建全链路AI生产力引擎的技术指南

文章阐述了AIGC、Agent和MCP三大技术如何协同推动AI从分散工具向全链路生产力引擎转变。MCP作为标准化连接框架解决集成碎片化,Agent作为智能决策引擎实现自主执行,AIGC作为内容生成引擎重塑行业生产力。三者形成"生成-决策-执行"闭环,已在智能客服、智能制造等领域取得显著成效,2025年将成为"智能体元年",开启通用智能新纪元,同时面临数据安全等挑战。

2401_85154887的博客 775

一文吃透 AIGC、Agent、MCP 的概念和关系

本文系统解析了AIGC、Agent和MCP三大AI核心概念及其相互关系。AIGC(人工智能生成内容)利用大模型自动生成文本、图像等多媒体内容;Agent(智能体)是具备环境感知、自主决策和执行能力的智能系统;MCP(模型上下文协议)则是标准化AI模型与外部工具集成的通信协议。三者协同工作:AIGC可作为Agent的内容生成模块,MCP为二者提供与外部数据交互的标准化接口。这种技术融合推动着AI应用向智能化、高效化发展,在智能营销、智能办公等领域展现出强大潜力。

金牌架构师 934

从AIGC到MCP协议:一文掌握大模型核心技术,程序员必收藏的学习指南

MCP模型上下文协议(Model Context Protocol,简称MCP)是一个由Anthropic在2024年11月25日开源的一个。

优快云_430422的博客 936
上一篇: 机器学习入门,用Lima在macOS免费搭建Docker环境,彻底解决镜像与收费难题!
下一篇: AIGC入门,从理解通信协议sse与streamhttp开始
明月(Alioo)
博客等级 码龄18年 267粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月(Alioo)

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值