轻松构建 AI 智能助手,我用 MCP 搞定了!附实战代码

Excel MCP Server:用AI轻松玩转Excel,解放你的生产力! 今天要给你们介绍一个超实用、超硬核的项目——!这个由开发者Haris Musa打造的开源神器,简直是Excel爱好者和AI开发者的福音!无需安装Microsoft Excel,就能用AI轻松搞定Excel文件的创建、编辑和数据分析,话不多说,赶紧来看看它的魅力吧! 阅读详情

最近我们聊了不少关于 MCP 服务器的应用,今天我想带大家从零开始打造一个属于自己的智能聊天机器人,我给它取名叫 Ava,用的是几个常见的框架。

这只是个初步想法,但随着时间推移,我们可以不断完善,打造一个生产级别的应用!

img

想象一下,你正在赶一个工作项目,但突然想起得在周六晚上7点订一家 Sushi Haven 的餐厅。你在聊天窗口输入:“这周六在 Sushi Haven 订个双人位。”

几秒钟后,你的 AI 助手 Ava 不仅帮你订好了位子,还通过 Google Calendar 确认了你那天没其他安排。

这怎么做到的?全靠 Model Context Protocol (MCP),一个能让 Ava 连接到现实世界服务(如 OpenTable 和 Google Calendar)的工具箱。

在这篇指南里,我会教你用 Streamlit 搭建一个简洁的聊天界面,用 FastAPI 实现顺畅的通信,再加上 MCP 解锁强大的工具整合功能。

不需要高深的编程知识,我会用简单的例子和现成的代码让你轻松上手。
准备好了吗?开始吧!

这个 AI 助手到底是啥?

想象你有个私人助理叫 Ava,她可不是那种只会说“呃,我不知道,去 Google 搜吧”的普通聊天机器人。
她就像那个总比你快一步的朋友,在你开口前就帮你查好了航班信息。

Ava 厉害在哪儿?

  • 她能听懂你的问题(得益于像 Claude 这样的 AI)。
  • 她能通过 MCP 服务器的工具干实事,比如查邮件、点咖啡。
  • 她有个超好用的 Streamlit 聊天界面,操作简单。
  • 她通过 FastAPI 这个高效的信使,让一切运行得顺畅无比。

MCP 是秘密武器!
它就像 AI 的万能遥控器,能让 Ava 连接到各种工具,比如 Gmail、OpenTable,甚至你的智能家居设备。
没有 MCP,Ava 只是个会聊天的机器人;有了 MCP,她能帮你搞定实事儿。

它咋工作的?

假设你在德里计划一个浪漫的约会夜,你打开 Streamlit 应用(界面像 WhatsApp 一样简洁),输入:
“给我找个周五晚上8点的双人浪漫餐厅,还要确认我那天有没有空。”

img

幕后发生了啥?

  1. 你输入请求:Streamlit 抓取你的消息,通过 FastAPI(像个邮差)送出去。

  2. FastAPI 联系 Ava:FastAPI 把请求交给 AI(这里是 Claude),AI 分析后说:“好,我得查下日历和餐厅。”

  3. Ava 调用 MCP 服务器:MCP 大显身手,它有这些工具:

    • • Google Calendar 工具:查你的日程。
    • • OpenTable 工具:找餐厅并订位。
      Ava 问 MCP:“用户周五8点有空吗?”“帮我在旧金山找个浪漫餐厅。”
  4. MCP 干重活:Calendar 工具确认你有空,OpenTable 工具找到一家超有情调的意大利餐厅 The Stinking Rose(全是蒜味菜,超香!),并订好双人位。

  5. Ava 组织回复:Ava 从 MCP 拿到信息,说:“你周五8点有空,我在旧金山的 The Stinking Rose 订了双人位,氛围超棒,玩得开心!”

  6. FastAPI 送回结果:回复通过 FastAPI 传回 Streamlit。

  7. 你看到答案:聊天窗口显示 Ava 的消息,约会夜搞定!

这可不是普通的聊天,Ava 能帮你做事!MCP 让 Ava 连接到现实世界的工具,简直是游戏规则的改变者。

Ava 的“脑子”咋运转的?

下面是一个流程图,展示你的问题如何从键盘到 Ava 的回答,途经整个系统。
你会看到 Streamlit(聊天窗口)、FastAPI(信使)、Claude(AI 大脑)和 MCP(工具箱)如何合作。
MCP 连接到像 OpenTable 或 Google Calendar 这样的工具,这让 Ava 超级强大。

为啥 MCP 是真正的 MVP?

为啥 MCP 这么牛?
想象家里有一堆智能设备:恒温器、电视、咖啡机,每台设备都有自己的 App 或遥控器,烦不烦?
MCP 就像一个超级 App,能控制所有设备。它是个协议,让 AI 轻松连接到各种工具,不用每次都重新开发。

MCP 牛在哪儿?

  • 万能连接器:能对接一堆工具,从 Google Drive 到 GitHub,甚至你的智能冰箱(参考 MCP GitHub)。
  • 简单集成:开发者可以轻松添加新工具,不用重写整个 AI 系统。
  • 现实能力:让 AI 能干实事,比如发邮件、查银行余额。

比如,Anthropic 的 MCP 支持这些工具:

  • Google Workspace:查邮件、更新表格、安排会议。
  • GitHub:创建 pull request 或检查代码仓库。
  • 自定义工具:你可以自己开发,比如控制 Philips Hue往往会跳转到另一个页面,但这里我们保持在同一页面。智能灯。

这意味着 Ava 可以是你的邮件助手、代码小帮手,甚至智能家居管家,全在一个应用里。

动手干吧!(一步步指南)

好了,咱们来撸代码,打造这个智能助手!
别担心,哪怕你是编程新手,我也会让过程简单得像做你最爱的 tacos。
我们会用 Streamlit、FastAPI 和 MCP 搭建 Ava,还会给你完整的代码。

你需要一台装了 Python 的电脑和一个代码编辑器(比如 VS Code)。

步骤 1:准备“厨房”(安装工具)

先收集“食材”——安装需要的 Python 包:

  • FastAPI:后端服务器。
  • Uvicorn:运行 FastAPI。
  • Streamlit:聊天界面。
  • Requests:让 Streamlit 和 FastAPI 通信。
  • Anthropic:调用 Claude AI 模型。
  • python-dotenv:管理 API 密钥等敏感信息。

打开命令行(Mac 用 Terminal,Windows 用 Command Prompt),运行:

pip install fastapi uvicorn streamlit requests anthropic python-dotenv

你还需要一个 Anthropic API 密钥来用 Claude。
去 Anthropic 官网注册,拿到密钥,保存到项目文件夹下的 .env 文件:

ANTHROPIC_API_KEY=你的密钥

这就像备好食材,准备开干!

步骤 2:用 FastAPI 搞定后端

FastAPI 后端就像 Ava 准备答案的厨房,连接 MCP 服务器,处理你的问题。
下面是简化的 FastAPI 代码,带注释解释每部分:

from fastapi import FastAPI
from pydantic import BaseModel
from typing import Dict, Any
from contextlib import asynccontextmanager
from dotenv import load_dotenv
import os

# 加载环境变量(如 Anthropic API 密钥)
load_dotenv()

# 创建 FastAPI 应用
app = FastAPI(title="Ava’s Smart Assistant API")

# 定义查询请求的结构
class QueryRequest(BaseModel):
    query: str

# 定义工具调用的结构
class ToolCall(BaseModel):
    name: str
    args: Dict[str, Any]

# 简化的 MCP 客户端类(适合初学者)
class MCPClient:
    async def connect_to_server(self, script_path: str):
        # 模拟连接到 MCP 服务器
        print(f"Connecting to MCP server at {script_path}")
        return True
    
    async def get_mcp_tools(self):
        # 返回可用工具列表(实际中会从 MCP 服务器获取)
        return [
            {"name": "opentable", "description": "Book restaurant reservations"},
            {"name": "google_calendar", "description": "Check and manage your schedule"}
        ]
    
    async def process_query(self, query: str):
        # 模拟处理查询(实际中会调用 Claude 和 MCP 工具)
        return [
            {"role": "user", "content": query},
            {"role": "assistant", "content": f"Ava’s thinking: Let me check that for you... Done! Here’s the answer for '{query}'"}
        ]

# 存储 MCP 客户端
app.state.client = None

# 应用启动时设置服务器连接
@asynccontextmanager
async def lifespan(app: FastAPI):
    client = MCPClient()
    connected = await client.connect_to_server("path/to/your/mcp_server_script.py")
    if connected:
        app.state.client = client
    yield

app = FastAPI(title="Ava’s Smart Assistant API", lifespan=lifespan)

# 处理用户查询的端点
@app.post("/query")
async def process_query(request: QueryRequest):
    messages = await app.state.client.process_query(request.query)
    return {"messages": messages}

# 列出可用工具的端点
@app.get("/tools")
async def get_available_tools():
    tools = await app.state.client.get_mcp_tools()
    return {"tools": tools}

# 调用特定工具的端点
@app.post("/tool")
async def call_tool(tool_call: ToolCall):
    # 模拟调用工具
    return {"result": f"Called {tool_call.name} with args {tool_call.args}"}
  

运行方法:

  1. 把代码保存为 main.py。

  2. 把 path/to/your/mcp_server_script.py 替换为实际的 MCP 服务器脚本路径(可以在 MCP GitHub 找例子)。现在是模拟版,不用真服务器也能跑。

  3. 在命令行进入 main.py 所在文件夹,运行:

    uvicorn main:app --host 0.0.0.0 --port 8000
    
  4. 服务器会在 http://localhost:8000 启动,访问 http://localhost:8000/docs 查看 API 端点。

代码干了啥?

  • 设置一个服务器,能处理问题(/query)、列出 MCP 工具(/tools)、调用特定工具(/tool)。
  • 实际环境中,它会连接 Claude 和 MCP 服务器,处理查询,用 OpenTable 或 Google Calendar 等工具。

步骤 3:用 Streamlit 打造前端

现在来做聊天前端,Streamlit 让这部分简单得像搭个网页,连 HTML 都不用学。
下面是聊天界面的代码:

import streamlit as st
import requests
import json

# FastAPI 服务器的 URL
api_url = "http://localhost:8000/query"

# 设置页面标题和图标
st.set_page_config(page_title="Ava: Your Smart Assistant", page_icon="🌟")

# 添加标题
st.title("Chat with Ava! ✨")
st.write("Ask me anything, and I’ll use my tools to help!")

# 初始化会话状态,存储聊天记录
if "messages" not in st.session_state:
    st.session_state.messages = []

# 显示聊天记录
for message in st.session_state.messages:
    with st.chat_message(message["role"]):
        st.write(message["content"])

# 创建聊天输入框
query = st.chat_input("What’s on your mind?")

if query:
    # 添加用户消息到聊天记录
    st.session_state.messages.append({"role": "user", "content": query})
    with st.chat_message("user"):
        st.write(query)
    
    # 发送问题到 FastAPI
    try:
        response = requests.post(api_url, json={"query": query}, timeout=60)
        response.raise_for_status()  # 检查错误
        messages = response.json().get("messages", [])
        
        # 添加助手的回复到聊天记录
        for msg in messages:
            if msg["role"] == "assistant":
                st.session_state.messages.append({"role": "assistant", "content": msg["content"]})
                with st.chat_message("assistant"):
                    st.write(msg["content"])
    except requests.RequestException as e:
        st.error(f"Oops, something went wrong: {e}")

运行方法:

  1. 把代码保存为 app.py。

  2. 确保 FastAPI 服务器在运行(uvicorn main:app --host 0.0.0.0 --port 8000)。

  3. 在新命令行窗口,进入 app.py 所在文件夹,运行:

    streamlit run app.py
    
  4. 浏览器会打开 http://localhost:8501,你会看到一个聊天界面。

代码干了啥?

  • 创建一个聊天窗口,你可以输入问题。
  • Streamlit 把问题发给 FastAPI,拿到回复后显示在聊天窗口。
  • 还保留了聊天记录,方便你回看 Ava 说了啥。

步骤 4:用 MCP 给 Ava 加超能力

要让 Ava 真正强大,得连上真实的 MCP 服务器。
下面是简化的 MCP 客户端代码,集成到 FastAPI 后端,连接 MCP 服务器并使用工具:

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Dict, Any
from contextlib import asynccontextmanager
from dotenv import load_dotenv
from anthropic import Anthropic
import os

# 加载环境变量
load_dotenv()

# 创建 FastAPI 应用
app = FastAPI(title="Ava’s Smart Assistant API")

# 定义查询请求的结构
class QueryRequest(BaseModel):
    query: str

# 定义工具调用的结构
class ToolCall(BaseModel):
    name: str
    args: Dict[str, Any]

# 简化的 MCP 客户端类
class MCPClient:
    def __init__(self):
        self.anthropic = Anthropic()
        self.tools = [
            {"name": "opentable", "description": "Book restaurant reservations"},
            {"name": "google_calendar", "description": "Check and manage your schedule"}
        ]
    
    async def connect_to_server(self, script_path: str):
        # 模拟连接到 MCP 服务器
        print(f"Connected to MCP server at {script_path}")
        return True
    
    async def get_mcp_tools(self):
        # 返回可用工具
        return self.tools
    
    async def process_query(self, query: str):
        # 模拟调用 Claude 和 MCP 工具
        messages = [{"role": "user", "content": query}]
        response = self.anthropic.messages.create(
            model="claude-3-5-sonnet-20241022",
            max_tokens=1000,
            messages=messages,
            tools=self.tools
        )
        
        # 处理回复
        final_messages = [{"role": "user", "content": query}]
        for content in response.content:
            if content.type == "text":
                final_messages.append({"role": "assistant", "content": content.text})
            elif content.type == "tool_use":
                final_messages.append({
                    "role": "assistant",
                    "content": f"[Using tool {content.name} with args {content.input}]"
                })
        
        return final_messages

# 存储 MCP 客户端
app.state.client = None

# 设置服务器连接
@asynccontextmanager
async def lifespan(app: FastAPI):
    client = MCPClient()
    connected = await client.connect_to_server("path/to/your/mcp_server_script.py")
    if connected:
        app.state.client = client
    yield

app = FastAPI(title="Ava’s Smart Assistant API", lifespan=lifespan)

# 处理用户查询的端点
@app.post("/query")
async def process_query(request: QueryRequest):
    try:
        messages = await app.state.client.process_query(request.query)
        return {"messages": messages}
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

# 列出可用工具的端点
@app.get("/tools")
async def get_available_tools():
    try:
        tools = await app.state.client.get_mcp_tools()
        return {"tools": tools}
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

工作原理:

  • 这段代码设置一个 FastAPI 服务器,连接到 MCP 服务器(这里是模拟的)。
  • MCPClient 类用 Anthropic API 调用 Claude 处理查询。
  • 模拟了 OpenTable 和 Google Calendar 工具,实际中会连接真实 MCP 服务器脚本。
  • /query 端点处理用户问题,/tools 列出可用工具。

如何用真实 MCP 服务器:

  1. 找或创建一个 MCP 服务器脚本(比如定义 OpenTable 或 Google Calendar 工具的 Python 文件),MCP GitHub 上有例子。
  2. 在 connect_to_server 方法中更新 script_path 为你的脚本路径。
  3. 确保 MCP 服务器在运行(比如 python your_script.py)。
  4. 客户端会自动连接服务器并列出工具。

步骤 5:测试你的助手

  1. 启动 FastAPI 服务器:

    uvicorn main:app --host 0.0.0.0 --port 8000
    
  2. 启动 Streamlit 应用:

    streamlit run app.py
    
  3. 打开浏览器,访问 http://localhost:8501,输入类似“在 Taj 订周五晚上8点的位子”,看 Ava 怎么回应。

如果用了真实 MCP 服务器,Ava 真的会去订餐厅或查日历!

排错:

  • 服务器没跑起来?确保 FastAPI(8000 端口)和 Streamlit(8501 端口)都在运行。
  • API 密钥有问题?检查 .env 文件和 Anthropic API 密钥。
  • MCP 服务器报错?确认脚本路径正确,服务器在运行。

Ava 还能干啥?(真实场景)

来看几个具体场景,展示 Ava 的 MCP 超能力。这些都是 MCP 能真实集成的工具。

场景 1:安排团队会议

你的请求:“下周二上午10点安排一个 Zoom 团队会议。”
Ava 干啥:

  • 用 Google Calendar 工具检查团队日程。
  • 找到空闲时段,订好会议。
  • 用 Zoom 工具创建会议链接,添加到日历邀请。
  • 回复:“搞定!周二上午10点的团队会议已安排,Zoom 邀请已发给所有人。”

再也不用来回发邮件或手动查日历,Ava 一手包办。

场景 2:即时写代码

你的请求:“在我的 GitHub 仓库为最新更改创建 pull request。”
Ava 干啥:

  • 用 GitHub 工具访问你的仓库。
  • 检查最新提交,创建 pull request,分配给队友。
  • 回复:“在‘my-cool-project’仓库创建了 pull request!已分配给 Sarah 审核。”

Ava 帮你省去翻 GitHub 界面的麻烦,加速代码工作流。

场景 3:智能家居氛围

你的请求:“把客厅灯光调暗到50%,播放我的‘Chill Vibes’ Spotify 歌单。”
Ava 干啥:

  • 用 Philips Hue 工具调整智能灯。
  • 用 Spotify 工具启动歌单。
  • 回复:“灯光调暗,‘Chill Vibes’正在播放,享受氛围吧!”

Ava 一句话把你的家变成智能乐园。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

pytorch实现手语识别 连续手语识别项目,中文数据集CSL 阅读详情

相关推荐

Vivado 2023.1及更早版本永久License全功能解锁:HLS、System Generator等IP核使用详解

本文深入解析Vivado 2023.1及更早版本的全功能许可证,详细指导如何解锁HLS、System Generator等高级IP核。通过许可证类型对比、功能验证方法和实战应用指南,帮助FPGA开发者充分利用Vivado工具套件,提升复杂系统设计和算法加速的效率。

weixin_31286719的博客 377

Microsoft MCP工程脚本:从构建到部署的完整自动化流程指南

Microsoft MCP(Model Context Protocol)工程提供了一套完整的自动化脚本系统,从代码构建、测试到打包部署的每个环节都实现了自动化,大大提升了开发效率和系统可靠性。本文将详细介绍MCP工程中的关键自动化脚本及其工作流程。 ## 自动化构建系统 MCP工程的构建系统采用模块化设计,通过多个PowerShell脚本协同工作。核心构建脚本位于`eng/scripts/`

gitblog_01158的博客 470

AI人工智能领域多模态大模型的数字孪生应用

本文旨在系统性地介绍多模态大模型在数字孪生领域的最新应用进展,探讨其技术原理、实现方法和应用价值。内容范围涵盖从基础概念到前沿技术,从理论分析到实践案例。文章首先介绍多模态大模型和数字孪生的基本概念,然后深入分析两者的结合点,接着通过具体案例展示应用实践,最后探讨未来发展趋势和挑战。多模态大模型:能够同时处理和融合多种数据模态(如文本、图像、视频、音频等)的大型人工智能模型数字孪生:物理实体或系统的虚拟副本,通过实时数据同步实现虚实交互跨模态融合:将不同数据模态的信息进行有效整合和关联的技术。

AI云原生与云计算技术学院 1324

本地模型接入本地MCP实践!保姆教程来了

可以看到模型调用了mcp的weather工具,并返回了工具调用的结果 {"temp":25,"condition":"晴"} 说明模型准确的识别到了工具,并进行了调用。mcp最近很火,但在实际的应用环境中,并没有详细的资料讲解如何使用如何部署,增加初学者的学习成本,本文希望直观的展示mcp工具的具体使用实践。在实际的应用场景中,我们肯定会开发各种不同的工具,那每次使用。MCP Server(服务器):独立运行的轻量程序,通过标准化的协议,为客户端提供上下文、工具和提示,是MCP服务的核心。

Datawhale 5016

C# 调用halcon中visualize_object_model_3d显示点云

3.1 判断线程是否为空,如果为空,则新创建,如果不为空,则中断线程,清空窗口后再次执行创建操作3.2 创建:调用show()方法实例化显示类的对象,传入显示参数,将线程testvisual 绑定 在 类对象的action方法上(此处action方法内部,只调用了visualize_object_model_3d算子)3.3 启动线程。

weixin_42362219的博客 1402

保姆级避坑指南:在openEuler 22.03 LTS上用kubeadm 1.32.2部署K8s集群(含阿里云镜像加速)

本文提供在openEuler 22.03 LTS上使用kubeadm 1.32.2部署Kubernetes集群的详细指南,涵盖系统准备、容器运行时适配、kubeadm配置及集群初始化等关键步骤。特别针对openEuler系统的特殊性,解决软件源配置、cri-dockerd编译安装、阿里云镜像加速等常见问题,帮助用户高效完成K8s集群部署。

weixin_28312391的博客 272

一文读懂 MCP!大模型如何用它连接世界,打造更智能的 AI Agent?

未来,随着大模型应用的深入,MCP Server 将变得更加丰富和强大,各类应用也将逐步适配 MCP,降低 AI 接入门槛。正如 OpenAI CEO Sam Altman 所说,2025 is。或许不久的将来,我们只需一句话,就能让 AI 远程操控电脑、管理手机,彻底改变人机交互方式。

2401_84204207的博客 2907

SigmaStudio进阶技巧:如何用ADAU1701实现60段EQ与防啸叫算法

本文深入探讨了如何在ADAU1701 DSP芯片上实现专业级音频处理系统。通过精密的资源规划与架构设计,详细讲解了构建高达60段参数均衡器(EQ)的有效方法,并集成了移频与自适应陷波双策略的智能防啸叫算法。内容涵盖从SigmaStudio工程优化、算法模块组合到系统联调实战的全流程,旨在帮助中高级开发者充分利用ADAU1701性能,打造稳定、高效的音频处理解决方案。

weixin_28256233的博客 384

MCP server支持在不同Python脚本中实现工具方法

本文介绍了如何在多个 Python 脚本中实现 MCP server 工具的开发。通过使用 FastMCP 对象和 add_tool 方法,可以在不同的类中注册工具,并在主脚本中启动服务。具体步骤包括:在主脚本中创建 FastMCP 对象并调用 run 方法启动服务;在其他脚本中定义工具类,并在初始化方法中使用 add_tool 注册工具。这种方式替代了 @mcp.tool 装饰器,适用于多脚本协作的开发场景。

adrninistrat0r的博客 1152

海康视觉算法平台VisionMaster 4.3.0 C# 二次开发01 加载方案并获取结果

第一次使用海康视觉算法平台VisionMaster 4.3.0,项目中要使用这个平台进行视觉处理并获取结果。

StevenChen的博客 7871

Python 爬虫实战:拼多多商品评论情感分析(含词云生成与差评预警)

在电商行业竞争日益激烈的当下,商家对商品评论的分析需求愈发迫切。通过 Python 爬虫收集拼多多商品评论,并结合情感分析、词云可视化及差评预警技术,商家可精准洞察消费者反馈,优化商品与服务。本文将深度剖析从爬虫搭建到数据挖掘的关键环节,助力读者构建全流程电商评论分析系统。

yansideyucsdn的博客 1450

搞定复杂AI集成!Spring AI + MCP模式最佳实践揭秘

它的核心目标是将AI模型与外部工具、数据源以统一协议连接,打破“数据孤岛”,让AI应用更智能、更灵活。通俗来说,MCP就像AI的“USB-C接口”,无论你想连接数据库、调用第三方API,还是操作本地文件,都能通过标准化的方式实现。今天,我将带你深入探索Spring AI与MCP(Model Context Protocol)的集成实践,揭秘如何用这套模式轻松搞定复杂AI集成,让你的技术项目更具竞争力!如果你正在构建需要灵活调用工具的AI项目,不妨尝试这套模式——它可能成为你技术工具箱中的“杀手锏”!

分享平时的学习心得和笔记 8753

全志V3S嵌入式驱动开发(解决kernel 5.2.y wifi驱动问题)

​【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 wifi模块,之前测试的时候,开发板上用的是esp8089,当时内核时4.14.y,测试也是通过的。链接地址在这里, https://blog.youkuaiyun.com/feixiaoxing/article/details/131178420?spm=1001.2014.3001.5501 那个时候测试的时候,我们就说过,wifi驱动可能是除了镜像制作之外,最复杂的一个

嵌入式-老费,一个分享专业嵌入式知识的blog 1158

java 使用 spring AI 实战MCP

全称 Model Context Protocol 是一种专为人工智能模型设计的通信协议,于2024年11月由Anthropic推出的开放标准。它旨在解决复杂AI系统中多个模型或组件之间的协同、状态管理和资源优化问题,以及AI应用与外部数据源和工具集成中的挑战。MCP 是一个开放协议,用于标准化应用程序向大语言模型提供上下文的方式。

YXWik的博客 5793

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MCP实战教程:搭建智能助手,附代码,小白也能看懂!

最近我们聊了不少关于 MCP 服务器的应用,今天我想带大家从零开始打造一个属于自己的智能聊天机器人,我给它取名叫 Ava,用的是几个常见的框架。这只是个初步想法,但随着时间推移,我们可以不断完善,打造一个生产级别的应用!

2401_84495872的博客 951

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Spring AI + MCP实战:5分钟搞定Java版天气预报AI助手(附完整代码)

本文详细介绍了如何利用Spring AI与MCP协议,快速构建一个Java版天气预报AI助手。通过实战演示,展示了MCP如何标准化工具调用与上下文管理,帮助开发者简化复杂业务逻辑集成,在5分钟内完成从环境搭建到智能对话的全过程,并附有完整代码。

t4y5u6i7o的博客 859

深度学习工具包 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")

Dify + MCP实战:用插件一分钟搞定MCP Server(含时间踩坑实践)

**摘要:**Dify平台通过MCP插件实现零代码AI服务部署,将复杂工作流快速转化为标准化MCP服务。文章详解从插件安装(需同时配置Server/Client插件)、服务发布(注意端口/IP配置)到外部调用的全流程,重点剖析四大实战坑点:版本兼容性、协议混淆、跨域问题及工具刷新机制,并给出具体解决方案。该方案使开发者无需编写代码即可构建可复用的AI服务生态,显著降低智能应用落地门槛。(150字)

分享平时的学习心得和笔记 1244

MCP:让你的 AI 模型协作更轻松

MCP(模型上下文协议)是AI模型协作的关键框架,它基于Function Call构建了一个高效的工具箱。通过将MCP比作办公室采购系统,文章生动解释了其工作原理:MCP Host接收请求,MCP Client连接Server完成具体操作。相比传统方式,MCP简化了API调用流程,提高了开发效率和系统扩展性。文中还提供了用Flask创建MCP Server的代码示例,展示了如何实现模型间的上下文交互。MCP并非替代Function Call,而是优化模型协作的解决方案,使复杂AI系统的构建更加便捷高效。

分享平时的学习心得和笔记 1627

java 使用 spring AI 实战MCP_springai mcp,零基础入门到精通,收藏这篇就够了

最近在腾讯云edgeone的直播中了解到了MCP,随着了解发现MCP确实是一个未来发展的趋势:全称 Model Context Protocol 是一种专为人工智能模型设计的通信协议,于2024年11月由Anthropic推出的开放标准。它旨在解决复杂AI系统中多个模型或组件之间的协同、状态管理和资源优化问题,以及AI应用与外部数据源和工具集成中的挑战。MCP 是一个开放协议,用于标准化应用程序向大语言模型提供上下文的方式。

leah126的博客 2046

爆火的MCP究竟有啥用、怎么用?小白也能秒懂的MCP技术指南!

MCP(Model Context Protocol)就像AI的“万能插座”,让AI模型能直接连接本地文件、数据库、工具(比如微信、Excel、AWS)等,,让AI模型(Host)能像“发快递”一样,把任务交给MCP Server(服务端),再由Server调用具体工具完成任务,最后把结果“快递”回来。:AI一个接口全搞定,数据不离开本地,安全又高效!“技术的终极目标,是让普通人也能享受AI的红利。:每一步都要手动操作,效率低还容易出错。—— 你的AI助手,正在等待你的指令!,直接让AI帮我们干活!

分享平时的学习心得和笔记 1940

让大模型轻松操作MySQL!MYSQL-MCP技术实战指南(附详细步骤+案例)

这时候,MYSQL-MCP就像一位“翻译官”,架起桥梁,让大模型能通过简单指令完成数据库的增删改查、建表、健康分析等操作。它的核心原理是基于模型上下文协议(MCP),这个协议由Anthropic开源,目标是让大模型与外部工具无缝协作。今天带你体验一项黑科技——MYSQL-MCP,它能让你用自然语言指挥大模型操作MySQL数据库,彻底告别复杂代码,让技术落地更高效!年初立Flag要让大模型“打工”,如今用MYSQL-MCP,它终于不只是聊天伙伴!四、技术思考:MYSQL-MCP背后的MCP协议有多强?

分享平时的学习心得和笔记 1881

精通 MCP:AI 智能体开发实战全攻略,打通从理论到落地的核心链路

作为AI研究人员,你是否因在不同AI模型与数据源间定制化搭建桥梁而感到烦琐?作为软件开发工程师,你是否因安全控制粒度不足而担心,生怕敏感数据泄露?作为技术管理者,你是否正为开发流程的低效和跨场景适配的困难而头疼?作为计算机相关专业的学生和AI技术爱好者,你是否想在这个技术不断发展的时代尽快找到方向,轻松开启AI智能体开发的大门,将理论迅速转化为实践?MCP就是答案!

全沾软贱开发攻城狮 2万+

Playwright MCP实战:5分钟搞定AI自动测试你的网页(附完整配置流程)

本文详细介绍了如何利用Playwright MCP在5分钟内快速搭建AI驱动的网页自动化测试环境。通过将自然语言指令实时转化为浏览器操作,开发者无需编写复杂脚本即可完成端到端测试、数据抓取等任务,极大提升了测试效率和开发体验。文章提供了从环境安装、客户端配置到实战演练的完整流程,是掌握AI自动化测试的高效指南。

metal的博客 727
上一篇: 爆改RAG!用“自动提问”让你的AI检索像开挂一样精准
下一篇: FastGPT工作流实战:我用“标签法“让多知识库问答准确率提升80%
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2826原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值