LLM综合实战——基于 MCP 和 OpenAI Function Calling 构建本地知识库智能问答助手

在构建企业级智能问答系统时,我们通常面临两个挑战:

  • 如何将大语言模型(LLM)的强大理解能力与企业内部知识库结合?
  • 如何让模型自动调用工具函数来查询最新、结构化的知识数据?

本篇文章将介绍一个完整的实践方案,结合:

  • ✅ MCP(Message Control Protocol):作为函数(工具)服务标准通信协议
  • ✅ OpenAI Function Calling:模型自动选择和调用工具的能力
  • ✅ 本地知识库 kb.json:结构化问答数据

构建一个支持函数调用、具备上下文理解能力的智能问答助手(完整代码附在文章末尾,大家自取hh)。


一、项目结构总览

project/
├── data/
│   └── kb.json              # 本地知识库问答数据
├── server.py               # MCP 服务端:注册知识库工具
├── client.py               # MCP 客户端 + OpenAI Function Calling
├── .env                    # 包含 OpenAI API 密钥等配置

1、知识库内容(kb.json)

[
  {
    "question": "What is our company's vacation policy?",
    "answer": "Full-time employees are entitled to 20 paid vacation days per year..."
  },
  ...
]

该文件是一个结构化的问答列表,包含公司政策、流程指南、制度文档等内容。

2、MCP 工具服务端(server.py)

使用 MCP 框架注册一个函数 get_knowledge_base,用于返回整个知识库内容。

@mcp.tool()
def get_knowledge_base() -> str:
    """Retrieve the entire knowledge base as a formatted string."""
    ...
  • MCP 会将该函数注册为标准工具,带有 namedescriptioninputSchema 元信息
  • 工具会读取 data/kb.json 文件并返回结构化的 Q&A 内容

服务端通过如下方式启动:

mcp = FastMCP("Knowledge Base")
mcp.run(transport="stdio")  # 使用 stdio 通信(支持流式调用)

3、客户端集成 OpenAI + MCP 工具(client.py)

关键模块介绍:
1. MCPOpenAIClient 类
  • 管理与 MCP 工具服务的连接
  • 获取可调用工具并封装为 OpenAI 所需格式
  • 自动处理 OpenAI 的工具调用响应
2. 函数调用流程:
response = await openai.chat.completions.create(
    model=self.model,
    messages=[{"role": "user", "content": query}],
    tools=tools,
    tool_choice="auto",  # 让模型自行决定是否调用工具
)
  • 如果模型返回了 tool_calls,说明它想调用函数
  • 客户端解析这些函数调用请求,并通过 self.session.call_tool(...) 执行真正的MCP服务端函数
  • 再将函数返回的内容交回模型生成最终自然语言回答

4、运行效果示例

运行 client.py 时,你会看到如下输出:

> python .\client.py

Connected to server with tools:
  - get_knowledge_base: Retrieve the entire knowledge base as a formatted string.

    Returns:
        A formatted string containing all Q&A pairs from the knowledge base.
    

Query: What is our company's vacation policy?

Response: Here is the summary of the company's vacation policy:

- **Eligibility**: Full-time employees are entitled to 20 paid vacation days per year.
- **Waiting Period**: Vacation days can be taken after completing 6 months of employment.
- **Carryover**: Unused vacation days can be carried over to the next year, up to a maximum of 5 days.
- **Request Process**: Vacation requests should be submitted at least 2 weeks in advance through the HR portal.

Let me know if you need further clarification!

实现了:

  • LLM 自动识别用户问题
  • 自动调用知识库查询函数
  • 返回精确、格式良好的答案

二、背后的通信机制(MCP Stdio)

  • 在 MCP 的 stdio 模式中,服务端被客户端作为子进程启动,使用标准输入/输出(stdin/stdout)作为通信接口。
  • 客户端通过 stdio_client 建立异步读写流(read_stream / write_stream),与服务端进行双向 JSON-RPC 消息交互,实现工具调用与响应处理。
  • 工具函数执行后以 JSON-RPC 响应结构返回
  • OpenAI 模型根据响应继续生成自然语言回答

为什么用 MCP 而不是传统 API?

能力MCP 工具调用REST API
自动生成 schema
结构化参数支持✅ JSON Schema手动定义
流式通信✅ 可选(stdio/SSE)
LLM Function Calling 对接✅ 标准结构兼容❌ 不自动对接
多工具注册✅ 一次注册,多次使用❌ 手动维护路由和参数

三、总结

通过结合 OpenAI Function Calling + MCP 工具调用协议,我们可以让大语言模型具备“自动调用业务函数、查询结构化知识、并自然语言答复”的能力。这是从“通用语言模型”迈向“企业级智能体”的关键一步。

项目实现的功能

能力实现方式
✅ 支持结构化知识查询本地 kb.json + MCP 工具
✅ 支持 OpenAI Function Callingtool_choice="auto"
✅ 自动函数调用 + 响应注入tool_calls + call_tool + tool message
✅ 支持多轮上下文与自然语言生成openai.chat.completions.create(...)
✅ 本地通信 & 可扩展部署MCP stdio 模式支持子进程管理

后续可扩展的方向

读者朋友们可以在此基础上继续扩展,如:

  • 增加按关键词模糊查询工具(如 search_knowledge(question)
  • 使用 LangGraph 控制多轮调用流程
  • 改为 SSE 或 Streamable HTTP 模式部署为远程知识服务
  • 引入嵌入搜索 + 向量检索增强答案准确性

附:项目完整代码

server.py文件内容:

# server.py
import os
import json
from mcp.server.fastmcp import FastMCP

# Create an MCP server
mcp = FastMCP(
    name="Knowledge Base",
    # host="0.0.0.0",
    # port=8050
)


@mcp.tool()
def get_knowledge_base() -> str:
    """Retrieve the entire knowledge base as a formatted string.

    Returns:
        A formatted string containing all Q&A pairs from the knowledge base.
    """
    try:
        kb_path = os.path.join(os.path.dirname(__file__), "data", "kb.json")
        with open(kb_path, "r") as f:
            kb_data = json.load(f)

        kb_text = "Here is the retrieved knowledge base:\n\n"

        if isinstance(kb_data, list):
            for i, item in enumerate(kb_data, 1):
                if isinstance(item, dict):
                    question = item.get("question", "Unkonwn question")
                    answer = item.get("answer", "Unkonwn answer")
                else:
                    question = f"Item {i}"
                    answer = str(item)

                kb_text += f"Q{i}: {question}\n"
                kb_text += f"A{i}: {answer}\n\n"
        else:
            kb_text += f"Knowledge base content: {json.dumps(kb_data, indent=2)}"
        return kb_text
    except FileNotFoundError:
        return "Error: Knowledge base file not found."
    except json.JSONDecodeError:
        return "Error: Invalid JSON format in the knowledge base file."
    except Exception as e:
        return f"Error: {str(e)}"


# Run the server
if __name__ == "__main__":
    mcp.run(transport="stdio")

client.py文件内容:

# client.py
import asyncio
import json
from contextlib import AsyncExitStack
from typing import Any, Dict, List, Optional

from dotenv import load_dotenv
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from openai import AsyncOpenAI

# Load environment variables
load_dotenv("../.env")


class MCPOpenAIClient:
    """Client for interacting with OpenAI models using MCP tools."""

    def __init__(self, model: str = "qwen-plus"):
        """Initialize the OpenAI MCP client.

        Args:
            model: The OpenAI model to use.
        """
        # Initialize session and client objects
        self.session: Optional[ClientSession] = None
        self.exit_stack = AsyncExitStack()
        self.openai_client = AsyncOpenAI()
        self.model = model
        self.stdio: Optional[Any] = None
        self.write: Optional[Any] = None

    async def connect_to_server(self, server_script_path: str = "server.py"):
        """Connect to an MCP server.

        Args:
            server_script_path: Path to the server script.
        """
        # Server configuration
        server_params = StdioServerParameters(
            command="python",
            args=[server_script_path],
        )

        # Connect to the server
        stdio_transport = await self.exit_stack.enter_async_context(
            stdio_client(server_params)
        )
        self.stdio, self.write = stdio_transport
        self.session = await self.exit_stack.enter_async_context(
            ClientSession(self.stdio, self.write)
        )

        # Initialize the connection
        await self.session.initialize()

        # List available tools
        tools_result = await self.session.list_tools()
        print("\nConnected to server with tools:")
        for tool in tools_result.tools:
            print(f"  - {tool.name}: {tool.description}")

    async def get_mcp_tools(self) -> List[Dict[str, Any]]:
        """Get available tools from the MCP server in OpenAI format.

        Returns:
            A list of tools in OpenAI format.
        """
        tools_result = await self.session.list_tools()

        return [
            {
                "type": "function",
                "function": {
                    "name": tool.name,
                    "description": tool.description,
                    "parameters": tool.inputSchema,
                },
            }
            for tool in tools_result.tools
        ]

    async def process_query(self, query: str) -> str:
        """Process a query using OpenAI and available MCP tools.

        Args:
            query: The user query.

        Returns:
            The response from OpenAI.
        """
        # Get available tools
        tools = await self.get_mcp_tools()

        # Initial OpenAI API call
        response = await self.openai_client.chat.completions.create(
            model=self.model,
            messages=[{"role": "user", "content": query}],
            tools=tools,
            tool_choice="auto",
        )

        # Get assistant's response
        assistant_message = response.choices[0].message

        # Initialize conversation with user query and assistant response
        messages = [
            {"role": "user", "content": query},
            assistant_message,
        ]

        # Handle tool calls if present
        if assistant_message.tool_calls:
            # Process each tool call
            for tool_call in assistant_message.tool_calls:
                # Execute tool call
                result = await self.session.call_tool(
                    tool_call.function.name,
                    arguments=json.loads(tool_call.function.arguments),
                )

                # Add tool response to conversation
                messages.append(
                    {
                        "role": "tool",
                        "tool_call_id": tool_call.id,
                        "content": result.content[0].text,
                    }
                )

            # Get final response from OpenAI with tool results
            final_response = await self.openai_client.chat.completions.create(
                model=self.model,
                messages=messages,
                tools=tools,
                tool_choice="none",  # Don't allow more tool calls
            )

            return final_response.choices[0].message.content

        # No tool calls, just return the direct response
        return assistant_message.content

    async def cleanup(self):
        """Clean up resources."""
        await self.exit_stack.aclose()


async def main():
    """Main entry point for the client."""
    client = MCPOpenAIClient()
    await client.connect_to_server("server.py")

    # Example: Ask about company vacation policy
    query = "What is our company's vacation policy?"
    print(f"\nQuery: {query}")

    response = await client.process_query(query)
    print(f"\nResponse: {response}")

    await client.cleanup()


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

kb.json文件内容:

[
  {
    "question": "What is our company's vacation policy?",
    "answer": "Full-time employees are entitled to 20 paid vacation days per year. Vacation days can be taken after completing 6 months of employment. Unused vacation days can be carried over to the next year up to a maximum of 5 days. Vacation requests should be submitted at least 2 weeks in advance through the HR portal."
  },
  {
    "question": "How do I request a new software license?",
    "answer": "To request a new software license, please submit a ticket through the IT Service Desk portal. Include the software name, version, and business justification. Standard software licenses are typically approved within 2 business days. For specialized software, approval may take up to 5 business days and may require department head approval."
  },
  {
    "question": "What is our remote work policy?",
    "answer": "Our company follows a hybrid work model. Employees can work remotely up to 3 days per week. Remote work days must be coordinated with your team and approved by your direct manager. All remote work requires a stable internet connection and a dedicated workspace. Core collaboration hours are 10:00 AM to 3:00 PM EST."
  },
  {
    "question": "How do I submit an expense report?",
    "answer": "Expense reports should be submitted through the company's expense management system. Include all receipts, categorize expenses appropriately, and add a brief description for each entry. Reports must be submitted within 30 days of the expense. For expenses over $100, additional documentation may be required. All reports require manager approval."
  },
  {
    "question": "What is our process for reporting a security incident?",
    "answer": "If you discover a security incident, immediately contact the Security Team at security@company.com or call the 24/7 security hotline. Do not attempt to investigate or resolve the incident yourself. Document what you observed, including timestamps and affected systems. The Security Team will guide you through the incident response process and may need your assistance for investigation."
  }
]

.env文件内容:

OPENAI_API_KEY=your-secret-key
OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
一、购课送配套清华大学出版社教材【纸质正版《GPT多模态大模型与AI Agent智能体》】购买此课程的用户赠送陈敬雷老师清华大学出版社正版纸质书籍《GPT多模态大模型与AI Agent智能体》!购买后加陈敬雷老师微信chenjinglei66领取。二、课程优势本课程有陈敬雷老师的清华大学出版社配套新书教材《GPT多模态大模型与AI Agent智能体》(跟我一起学人工智能)。新书配合此实战课程结合学习,一静一动,互补高效学习!本课程由互联网一线知名大牛陈敬雷老师全程亲自授课,技术前沿热门,是真正的互联网工业级实战项目。三、课程简介AI Agent智能体、DeepSeek、Dify、扣子Coze、RAG、MCP、 GPT-5、Sora 等前沿技术、多模态大模型持续引爆 AI 领域,你是否渴望看透技术本质、掌控发展脉络?这门聚焦大模型技术原理的课程,将为你搭建从基础到前沿的完整知识框架,助你在 AI 浪潮中站稳脚跟。课程核心亮点:从根源到前沿,锻造硬核 AI 技能课程模块详解:体系化学习,收获明确第一章:AI Agent智能体、MCP代码开发、Dify/Coze平台等操作实践1.Dify/Coze平台基础环境搭建-DockerWSL安装操作实践本课程聚焦Dify/Coze平台基础环境搭建,深入讲解 Docker 与 WSL 安装实操。从 Windows 系统下以管理员身份运行命令行安装 WSL,开启 Hyper-V 功能,到官网下载安装 Docker Desktop,并巧妙配置镜像源提升下载速度,每一步都有详细演示与指导。同时,课程会给出下载 Dify 并启动的具体步骤,帮助你快速搭建起 Dify 运行所需的基础环境,为后续深入探索 Dify 平台强大功能筑牢根基,无论是编程新手还是 AI 爱好者,都能轻松上手 。2.最新Dify源码平台安装实操核心架构全流程拆解 围绕最新 Dify 源码平台展开,为你呈上全面的安装实操与核心架构拆解。从前期环境准备,像不同系统下 Docker、Docker Compose 及 Git 的安装配置,到 Dify 代码,启动中间件服务,再到细致地配置并运行后端 API 服务与前端 Web 服务,每一个安装环节都有详细步骤演示与深度讲解,助你顺利搭建 Dify 平台。在核心架构拆解部分,课程深入剖析 Dify 的六大功能层。从负责任务调度与逻辑处理的核心业务层,到提供交互界面的交互与展示层;从承担数据存储与缓存功能的数据存储与缓存层,到赋予平台 AI 能力的 AI 能力层;还有保障网络安全与请求转发的网络与安全层,以及用于隔离测试的隔离与测试层,帮你透彻理解各层容器的作用及协同工作机制。无论你是想基于 Dify 开发 AI 应用的开发者,还是对其架构原理感兴趣的技术爱好者,本课程都能让你收获满满,为后续深入应用 Dify 平台奠定坚实基础 。3.Dify集成DeepSeek阿里通义千问等大模型底座插件安装想拓展 Dify 平台的大模型能力吗?本课程聚焦 Dify 集成 DeepSeek、阿里通义千问等大模型底座插件的安装实操。从前期准备,如获取对应模型 API Key、检查 Dify 市场插件可用性,到安装环节,细致演示在 Dify 市场中精准定位并下载 DeepSeek、通义千问插件(规避版本报错问题),再到关键的配置阶段,指导你在 Dify 系统内正确填入 API Key,开启所需模型开关。同时,深入剖析不同插件与 Dify 现有架构的融合逻辑,助你理解安装后如何让新模型在 Dify 平台上稳定运行、高效协作,轻松为 Dify 增添多元大模型支持,拓展应用开发边界 。4.Dify平台 - 配置Agent策略及MCP插件在Dify平台强大的生态体系中,合理配置Agent策略与安装MCP插件,能极大拓展其功能边界,为AI应用开发带来更多可能。本课程将深入聚焦这两大关键板块,助力开发者全面掌握相关实操技能。5.MCP Server开发实践 - 服务器发送事件(SSE)代码开发实践服务器发送事件(SSE)是MCP(Model Context Protocol)协议实现实时数据交互的核心技术,也是打通Dify平台与外部数据源的关键桥梁。本课程聚焦MCP Server中SSE的开发实践,从基础原理到代码落地,带开发者掌握实时数据推送的核心技能。6.MCP Server开发实践 - 可流式传输的HTTP(StreamableHttp)代码开发实践 课程简介可流式传输的HTTP(StreamableHttp)是MCP协议中实现高效数据交互的核心技术,为Dify平台与外部服务的动态通信提供了灵活支撑。本课程聚焦StreamableHttp在MCP Server中的开发实践,帮助开发者掌握流式数据传输的实现逻辑与落地技能。7.MCP Client代码开发实践Cherry Studio、Dify平台集成MCP 课程简介MCP(Model Context Protocol)客户端是连接AI应用平台与MCP服务器的关键接口,本课程聚焦MCP Client的开发实践及其在Cherry Studio、Dify两大平台的集成落地,帮助开发者打通“客户端-服务器-应用平台”的全链路数据交互。第二章:AI智能体开发实操落地全流程8.Dify平台整体功能操作实践  全面解锁Dify平台功能!从平台基础操作界面认知,到项目创建、智能体配置、工作流编排,再到功能联调与部署,完整演示Dify平台各模块实操流程。帮你快速上手这款工具,利用平台能力高效搭建AI应用,降低开发门槛。   9.Dify平台知识库管理模块操作实践  专注Dify平台知识库管理!详解知识库创建、文档上传、知识分类、检索优化等操作。教你如何构建高质量知识库,让AI智能体精准调用知识,解决业务问答、内容推荐等场景需求,掌握知识驱动AI应用的核心技能。  10.智能客服知识问答助手AI智能体开发操作实践  围绕智能客服场景,专攻知识问答助手AI智能体开发。从需求梳理、知识体系构建,到智能体对话逻辑设计、多轮问答优化,结合实际客服案例实操。教你打造能精准答疑、高效服务的智能客服助手,提升业务接待效率与用户体验。   第三章:大模型预测AI智能体企业应用落地工作流开发11.大模型预测AI智能体应用落地工作流开发操作实践  聚焦大模型预测场景,拆解AI智能体应用落地工作流开发全流程。从需求分析到功能实现,手把手教你借助大模型能力,搭建高效预测工作流,掌握智能体在实际业务中落地的关键操作,让模型预测从理论走向可执行的应用方案。   12.从0到1实操:AI智能体工作流开发操作实践  专为0基础或想系统搭建AI智能体工作流的学习者设计。从基础概念破冰,逐步讲解工作流设计逻辑、开发步骤、调试优化,全程实操演示,带你走完“从无到有”开发AI智能体工作流的完整路径,快速具备独立开发简单工作流的能力。  13.预测类AI算法模型训练预测API代码开发实践  深入预测类AI算法核心,涵盖模型训练全流程(数据预处理、算法选型、训练调优 ),并重点讲解预测API代码开发。通过真实案例实操,教你用代码实现算法模型落地,让训练好的模型能通过API对外提供预测服务,打通算法到应用的关键环节。  第四章:多模态大模型AI智能体开发实践 14.多模态大模型AI智能体工作流开发实践  拥抱多模态趋势,聚焦多模态大模型驱动的AI智能体工作流开发。涵盖图像、文本、语音等多模态数据处理,讲解工作流中多模态任务串联、交互逻辑设计,通过案例实操,让你掌握开发能处理复杂多模态场景的智能体工作流技能 。 第五章:DeepSeek大模型企业应用落地实践15. Ollama 框架详解:本地部署 DeepSeek 大模型实战指南核心内容:深度剖析 Ollama 框架,从安装到配置,一步步教你在本地部署 DeepSeek 大模型,涵盖模型下载、运行及管理等实操环节。学习受益:掌握 Ollama 框架运用,能独立在本地部署 DeepSeek 大模型,降低模型使用成本,保障数据隐私,提升自然语言处理效率。16. Ollama 安装与 DeepSeek 大模型部署全流程操作实践核心内容:全面覆盖 Ollama 在不同系统的安装方法,以及 DeepSeek 大模型从选型到部署的完整流程,包含硬件适配、版本选择及部署后测试。学习受益:通过实践掌握 Ollama 与 DeepSeek 大模型部署技能,可依自身需求灵活搭建模型环境,为 AI 相关工作、学习筑牢基础。17. Open WebUI 全方位解析:自托管 AI 平台功能与应用核心内容:详细解读 Open WebUI 自托管 AI 平台,介绍其安装方式、多模型兼容特性、权限管理及丰富的功能模块,如 RAG 集成等。学习受益:学会运用 Open WebUI 搭建个性化 AI 平台,利用其丰富功能提升大模型交互体验,满足企业级或个人多样化 AI 应用需求 。18. 基于Unsloth的DeepSeek训练微调核心工具核心内容:基于 Unsloth 对 DeepSeek 模型,优化训练效率与内存占用,适配多场景部署,支持灵活导出与定制。    学员收益:掌握高效微调 DeepSeek 的方法,降低硬件门槛,提升模型落地能力,助力科研与企业应用。19. DeepSeek-R1训练微调代码实践核心内容:DeepSeek-R1高效训练微调,结合医学 COT思维链 数据集,实操 LoRA、量化压缩,实现专业领域推理大模型问答全流程。学员收益:快速掌握数据处理到部署全流程,攻克大模型微调痛点,获得医学垂类模型训练实战能力。然后举一反三,相同代码可以应用到其他行业。20. 吃透 DeepSeek-R1:模型文件全解析与实战指南    核心内容:解析架构与训练机制,详解 163 个分片文件及配置、分词器,含多领域实战案例。    学员收益:掌握模型原理与优化,提升实战能力,拓宽职业路,培养逻辑与创新思维。21. 本地部署运行DeepSeek-R1满血版大模型    核心内容:涵盖硬件配置(多高端 GPU 等)、环境部署、模型下载与调优,及推理测试全流程。    学员收益:掌握本地部署技能,实现隐私数据处理,降低依赖,提升大模型实战与优化能力。第六章:大模型核心技术原理22. 大模型技术的起源、思想及代码实践核心内容:介绍大模型技术的发展历程、核心思想,搭配相关代码实操演练    学员收益:理清大模型技术的来龙去脉,通过代码实践将抽象思想转化为具体认知23. 基于 Transformer 的预训练语言模型核心内容:详解 Transformer 架构的构成、工作原理及在预训练语言模型中的应用学员收益:掌握 Transformer 架构的核心知识,理解预训练语言模型的构建基础24. Prompt 提示词学习工程理论与实践    核心内容:阐述 Prompt 提示词工程的理论知识,结合实际案例进行实践操作学员收益:学会设计高质量 Prompt,有效提升大模型的响应效果任务完成度第七章:大模型训练微调、基于RLHF人类反馈强化学习对齐、PPO强化学习算法 理论与实践25. 大模型训练微调理论与实践核心内容:讲解指令微调的基本原理、实施步骤相关技巧,进行实践训练    学员收益:掌握指令微调方法,使大模型能更好地适配特定场景任务26. RLHF人类反馈强化学习    核心内容:介绍人类反馈强化学习的概念,解析马尔科夫决策过程的原理及应用学员收益:学员将掌握人类反馈强化学习核心概念,理解马尔科夫决策过程原理与应用,提升对智能系统通过人类反馈优化决策的认知,为相关技术实践奠定基础。27. PPO 强化学习算法    核心内容:深入讲解 PPO 算法的原理、数学推导实现过程学员收益:熟练掌握 PPO 算法,为开展强化学习相关工作奠定坚实基础28、 大模型人类反馈强化学习对齐    核心内容:探讨大模型与人类反馈强化学习对齐的原则、方法挑战    学员收益:学会使大模型的行为符合人类价值观需求,提升模型的可靠性29. 人类反馈强化学习 RLHF+PPO 代码实践核心内容:结合具体案例,进行 RLHF 与 PPO 结合的代码编写实操练习学员收益:通过实战掌握 RLHF+PPO 的应用,提升用代码优化大模型的能力第八章: 大模型思维链COT推理及上下文指令理解30. 大模型思维链COT核心内容:讲解思维链的概念、作用机制大模型中的应用方式学员收益:掌握利用思维链提升大模型推理能力的方法31. 大模型上下文学习能力核心内容:分析大模型上下文学习能力的原理、影响因素提升技巧    学员收益:理解大模型上下文学习的本质,学会充分利用该能力提升模型表现32. 大模型指令理解核心内容:探讨大模型指令理解的机制、常见问题及优化方法学员收益:提升大模型对复杂指令的理解准确度,增强模型的实用性第九章: 通用人工智能AGI33. GPT 智能涌现原理与 AGI 通用人工智能通讲核心内容:解析 GPT 智能涌现的原理,全面讲解 AGI 通用人工智能的相关知识学员收益:理解 GPT 智能涌现的本质,对 AGI 有系统且深入的认识34. 智能涌现原理核心内容:阐释智能涌现的定义、特征、产生条件表现形式学员收益:明确智能涌现的概念,理解大模型能力突然提升的关键所在35. 通用人工智能AGI核心内容:介绍通用人工智能的概念、发展现状、关键技术未来趋势学员收益:全面了解通用人工智能,把握其发展方向,为相关研究应用做准备第十章: 基于大模型的对话式推荐系统36. 基于大模型的对话式推荐系统技术架构设计核心内容:详解基于大模型的对话式推荐系统技术架构(大数据平台层、大模型底座层、大模型管理层、推荐引擎层、对话管理层、用户交互层),介绍各层包含的技术组件及作用,结合微软 RecAI 项目说明具体实现。详见附件资料。学员收益:掌握对话式推荐系统的整体架构设计,理解各组件的协同机制,具备搭建优化系统架构的基础能力。37. 推荐 AI Agent 智能体核心内容:介绍 InteRecAgent 框架,包括大模型意图识别调度、记忆、任务规划、工具学习等核心技术,详解 5 个必要组件及部署方法。学员收益:理解推荐 AI 智能体的工作机制,掌握构建部署交互式推荐智能体的方法,提升对话式推荐系统的实践能力。38. 面向推荐的语言表达模型核心内容:讲解 RecLM-Emb(基于嵌入,专注项目检索,含 10 个匹配任务) RecLM-Gen(生成性策略,直接生成自然语言推荐)的设计、功能及应用。详见  基于大模型的对话式推荐系统.pdf 学员收益:掌握两种面向推荐的语言表达模型的原理与应用,提升推荐系统的语义理解推荐生成能力,可用于优化推荐效果。39.知识插件核心内容:阐述知识插件的核心思想(动态整合领域知识到提示中),介绍其实现步骤(领域知识提取、选择与适应、自然语言表达)及应用示例。详见  基于大模型的对话式推荐系统.pdf 学员收益:学会利用知识插件增强大模型的领域适配性,提升推荐的准确性可解释性,无需微调大模型即可扩展其能力。40. 基于大模型的推荐解释核心内容:介绍 RecExplainer 框架(含目标推荐模型大模型代理),详解三种对齐方法(行为、意图、混合对齐)及评估方式(对齐效果、解释生成能力)。详见  基于大模型的对话式推荐系统.pdf 学员收益:掌握用大模型解释推荐决策的方法,提升推荐系统的透明度,增强用户信任,为优化推荐策略提供依据。41. 对话式推荐系统的新型评测方法核心内容:讲解 RecAI 评测器(从生成性推荐等五方面评测,用 NDCG 等指标) iEvaLM 方法(大模型模拟用户交互评测)的策略与应用。详见  基于大模型的对话式推荐系统.pdf 学员收益:掌握全面评测对话式推荐系统的方法,能够科学评估系统性能,为系统优化迭代提供方向。第十一章: 多模态搜索42. 多模态搜索技术架构设计核心内容:详解四层架构(数据层、模态表征层、匹配层、应用层),介绍各层包含的信息、技术方法及作用。详见  多模态搜索.pdf  附件文档学员收益:掌握多模态搜索的技术架构,理解各层技术的协同作用,具备设计搭建多模态搜索系统的基础能力。43. 多模态搜索关键技术核心内容:阐述多模态表征(图像、内容帧的表征学习)、融合与相似度计算、匹配技术、语义理解与跨模态学习等关键技术的原理应用。详见  多模态搜索.pdf  附件文档学员收益:掌握多模态搜索的核心技术,提升处理多模态数据的能力,可用于优化多模态检索的效果效率。44. 多模态实时搜索与个性化推荐核心内容:讲解多模态实时搜索(实时数据处理、索引与检索)个性化推荐(用户建模、融合与相似度计算、候选项选择与反馈)的技术流程。详见  多模态搜索.pdf  附件文档学员收益:掌握多模态技术在实时搜索个性化推荐中的应用,提升系统的响应速度用户体验,能够构建智能的检索推荐系统。第十二章: 多模态数字人技术原理项目实践45. 多模态数字人概述核心内容:介绍多模态数字人的定义(整合文本、图像等多数据形态的高度仿真虚拟人)、与传统单一模态数字人的区别(更丰富的表现力交互能力)、依赖的技术体系(深度学习、自然语言处理等)、多模态大模型的作用及应用场景(智能客服、虚拟主持人等)。详见  多模态数字人技术原理项目实践.pdf  附件文档学员收益:理解多模态数字人的核心概念与技术价值,掌握其与传统数字人的差异及技术基础,明确其应用方向,为深入学习技术原理奠定认知基础。46. 多模态数字人技术原理核心内容:讲解多模态数字人技术体系,包括基础三维技术(三维建模与重建、三维图形学与渲染)、数字人核心组件(面部与身体建模、动作与表情驱动)、多模态交互与智能(数字人形象设计、多模态融合、深度学习应用)、平台与工具集成(引擎框架、多端部署优化)及应用案例与趋势。详见  多模态数字人技术原理项目实践.pdf  附件文档学员收益:系统掌握多模态数字人技术的核心模块及各模块间的关联,理解技术实现的底层逻辑,具备分析数字人技术架构的能力,为技术落地应用提供理论支撑。47. 三维建模与三维重建核心内容:阐述三维建模的原理流程(数据采集、模型构建、细节优化等)及关键技术(三维扫描、动作捕捉等);三维重建的原理流程(数据采集、特征提取、点云生成等)、主要方法(传统方法、深度学习方法)及关键技术(立体视觉、激光扫描等);以及两者的区别与联系。详见  多模态数字人技术原理项目实践.pdf  附件文档学员收益:掌握三维建模与三维重建的技术细节及实施流程,能区分两者的应用场景,具备运用相关技术创建数字人三维模型的基础能力,提升数字人视觉建模的实操认知。48. 数字人形象设计核心内容:讲解数字人形象设计的技术原理(数据采集、特征提取、模型训练、语音合成等)及关键技术(深度学习、TTS技术等);数字人形象设计的技术原理(数据采集、特征分析、模型创建、表情与动作模拟等)及技术要点(深度学习优化、物理渲染等)。详见  多模态数字人技术原理项目实践.pdf  附件文档学员收益:理解数字人形象设计的完整技术流程,掌握关键技术的应用逻辑,能够运用相关技术生成与真人相似的数字人声音外观,提升数字人个性化仿真的实现能力。49. 唇形同步算法核心内容:介绍数字人唇形同步的常见算法(基于规则的方法、基于机器学习的方法、混合方法)及主流技术(Wav2Lip、MuseTalk、TwinSync等)的原理、特点及应用场景。详见  多模态数字人技术原理项目实践.pdf  附件文档学员收益:掌握唇形同步的核心算法与技术选型逻辑,能根据需求选择合适的技术方案,提升数字人语音交互的自然度与逼真度,增强数字人用户体验设计能力。50. NeRF、ER-NeRF与RAD-NeRF模型核心内容:阐述NeRF模型的原理(神经辐射场的体积表示与渲染);ER-NeRF的改进(区域感知注意力、姿态编码等提升动态头部重建效率);RAD-NeRF的特点(音频-空间分解、低维特征网格提升实时性)及三者的应用场景。详见  多模态数字人技术原理项目实践.pdf  附件文档学员收益:理解三种模型的技术创新点及适用场景,掌握基于神经辐射场的数字人生成技术,具备选择高效模型提升数字人渲染质量与实时性的能力。51. 数字人项目实践核心内容:介绍主流开源数字人项目(快手LivePortrait、百度Hallo、腾讯Muse系列、SadTalker等)的技术原理、安装部署流程、功能特点及创新之处,涵盖动画生成、唇形同步、多模态交互等应用场景。详见  多模态数字人技术原理项目实践.pdf  附件文档学员收益:掌握开源数字人项目的实操方法,能够部署调试相关工具构建数字人应用,提升将理论技术转化为实际项目的能力,积累数字人开发的实践经验。 为什么选择这门课程?四大核心优势权威性与实用性兼具:作者陈敬雷深耕 AI 领域多年,课程内容基于《GPT 多模态大模型与 AI Agent 智能体》一书,结合京东图书配套视频,理论与实践深度结合。理论与实战紧密融合:每个知识点都配套代码实践,从原理理解到动手操作无缝衔接,避免 “纸上谈兵”,学完就能上手应用。内容全面且聚焦核心:覆盖大模型技术全链条关键内容,不冗余、不零散,直击技术核心,让学习更高效。紧跟技术发展步伐:聚焦Dify、扣子Coze、RAG、MCP、AI Agent智能体 GPT、AGI 等前沿热点,解析最新技术现象与原理,确保所学内容不过时,贴合行业发展需求。适合人群:人工智能开发者、学习者,想系统掌握大模型技术原理与实践技能;企业技术人员,需规划大模型应用与开发方向,推动业务落地;高校师生、科研人员,从事大模型相关研究,寻求理论与实践结合的学习资源;对 AI 技术充满热情,希望紧跟前沿,提升自身竞争力的职场人士。四、老师介绍陈敬雷  充电了么创始人,CEO兼CTO陈敬雷,北京充电了么科技有限公司创始人,CEO兼CTO,十几年互联网从业经验,曾就职于用友网络、中软集团、凡客诚品、唯品会、猎聘、人民日报(灵思云途)、北京万朝科技,曾任架构师、首席技术官、首席科学家等职务,对业务领域B端、C端、电商、职场社交招聘、内容文娱、营销行业都有着丰富的经验,在技术领域,尤其在大数据人工智能方向有丰富的算法工程落地实战经验,其中在猎聘任职期间主导的推荐算法系统项目获得公司优秀项目奖,推荐效果得到5倍的提升。此外,陈敬雷著有清华大学出版社四本人工智能书籍,分别是《分布式机器学习实战》《自然语言处理原理与实战》《GPT多模态大模型与AI Agent智能体》《DeepSeek大模型与具身智能实践》,颇受好评。同时陈敬雷还是知名大数据人工智能讲师,研发了上百门课程,总计有30万学员。五、《GPT多模态大模型与AI Agent智能体》书籍配套视频课程介绍:陈敬雷老师的京东自营书名标题: GPT多模态大模型与AI Agent智能体(跟我一起学人工智能)《GPT多模态大模型与AI Agent智能体》(跟我一起学人工智能)是一本2025年清华大学出版社出版的图书,作者是陈敬雷,本书深入探讨了GPT多模态大模型与AI Agent智能体的技术原理及其在企业中的应用落地。全书共8章,从大模型技术原理切入,逐步深入大模型训练及微调,还介绍了众多国内外主流大模型。LangChain技术、RAG检索增强生成、多模态大模型等均有深入讲解。对AI Agent智能体,从定义、原理到主流框架也都进行了深入讲解。在企业应用落地方面,本书提供了丰富的案例分析,如基于大模型的对话式推荐系统、多模态搜索、NL2SQL数据即席查询、智能客服对话机器人、多模态数字人,以及多模态具身智能等。这些案例不仅展示了大模型技术的实际应用,也为读者提供了宝贵的实践经验。本书适合对大模型、多模态技术及AI Agent感兴趣的读者阅读,也特别适合作为高等院校本科生研究生的教材或参考书。书中内容丰富、系统,既有理论知识的深入讲解,也有大量的实践案例代码示例,能够帮助学生在掌握理论知识的同时,培养实际操作能力解决问题的能力。通过阅读本书,读者将能够更好地理解大模型技术的前沿发展,并将其应用于实际工作中,推动人工智能技术的进步创新。六、配套书籍目录:第1章 大模型技术原理1.1 大模型技术的起源、思想1.2 基于Transformer的预训练语言模型1.2.1 编码预训练语言模型1.2.2 解码预训练语言模型1.2.3 基于编解码架构的预训练语言模型1.3 提示学习与指令微调1.3.1 提示学习1.3.2 指令微调1.4 人类反馈强化学习1.4.1 强化学习1.4.2 PPO算法1.4.3 大模型人类反馈强化学习对齐1.5 GPT智能涌现原理与AGI通用人工智能1.5.1 什么是智能涌现1.5.2 思维链1.5.3 上下文学习能力1.5.4 指令理解1.5.5 通用人工智能第2章 大模型训练及微调2.1 大模型训练概述2.2 分布式训练的并行策略2.2.1 数据并行2.2.2 模型并行2.2.3 混合并行2.2.4 并行计算框架2.3 预训练模型的压缩2.3.1 模型压缩方案概述2.3.2 结构化模型压缩策略2.3.3 非结构化模型压缩策略2.3.4 8位/4位量化压缩实战2.4 大模型微调方法2.4.1 Prefix Tuning微调2.4.2 P-Tuning V1微调2.4.3 P-Tuning V2微调2.4.4 LoRA微调2.4.5 QLoRA微调2.5 基于旋转位置编码RoPE的长文本理解2.5.1 RoPE技术原理2.5.2 RoPE关键特性第3章 主流大模型3.1 国内大模型3.1.1 智谱清言ChatGLM3.1.2 百川智能3.1.3 百度文心一言3.1.4 阿里巴巴通义千问3.1.5 腾讯混元3.1.6 华为盘古3.1.7 360智脑3.1.8 科大讯飞星火3.1.9 智源悟道大模型3.1.10 月之暗面Kimi3.1.11 复旦大学MOSS3.1.12 零一万物3.1.13 字节跳动豆包大模型3.2 国外大模型3.2.1 OpenAI GPT-4o3.2.2 Meta LLaMA3.2.3 Anthropic Claude3.2.4 谷歌Gemini开源Gemma3.2.5 Mistral Large3.2.6 xAI Grok3.3 垂直类大模型3.3.1 HuatuoGPT3.3.2 BianQue3.3.3 BenTsao3.3.4 XrayGLM3.3.5 DoctorGLM3.3.6 ChatMed3.3.7 度小满轩辕3.3.8 BloombergGPT3.3.9 LawGPT3.3.10 LexiLaw3.3.11 Lawyer LLaMA3.3.12 ChatLaw3.3.13 ChatGLM-Math第4章 LangChain技术原理与实践4.1 LangChain技术原理4.2 LangChain六大核心模块4.2.1 模型I/O4.2.2 数据增强模块4.2.3 链模块4.2.4 记忆模块4.2.5 Agent模块4.2.6 回调处理器第5章 RAG检索增强生成5.1 RAG技术原理5.1.1 RAG的概念与应用5.1.2 RAG技术架构5.1.3 分块向量化5.1.4 搜索索引5.1.5 重新排序过滤5.1.6 查询转换与路由5.1.7 RAG中的Agent智能体5.1.8 响应合成器5.1.9 大模型微调RAG优劣势对比5.2 文本向量模型5.2.1 Embedding模型、Reranker模型及ColBERT模型5.2.2 阿里巴巴GTE向量模型5.2.3 中文acge_text_embedding模型5.2.4 智源中英文语义向量模型BGE5.2.5 Moka开源文本嵌入模型M3E5.2.6 OpenAI的text-embedding模型5.3 向量数据库5.3.1 Faiss5.3.2 Milvus5.3.3 Pinecone5.3.4 Chroma5.4 RAG应用实践5.4.1 基于大模型构建企业私有数据的知识问答5.4.2 应对大模型落地挑战的优化策略第6章 多模态大模型6.1 多模态基础模型6.1.1 多模态对齐、融合表示6.1.2 CLIP6.1.3 BLIP6.1.4 BLIP-26.1.5 InstructBLIPX-InstructBLIP6.1.6 SAM6.1.7 OpenFlamingo6.1.8 VideoChat6.1.9 PaLM-E6.2 OpenAI多模态大模型DALL·E 3、GPT-4V、GPT-4o、Sora6.2.1 文生图多模态大模型DALL·E 36.2.2 GPT-4V6.2.3 端到端训练多模态大模型GPT-4o技术原理6.2.4 文生视频多模态大模型Sora6.3 通义千问多模态大模型6.3.1 开源Qwen-VLQwen-VL-Chat6.3.2 Qwen-VL-PlusQwen-VL-Max6.4 开源端到端训练多模态大模型LLaVA6.4.1 LLaVA6.4.2 LLaVA-1.56.4.3 LLaVA-1.66.4.4 MoE-LLaVA6.4.5 LLaVA-Plus6.4.6 Video-LLaVALLaVA-NeXT-Video6.5 零一万物多模态大模型Yi-VL系列6.5.1 Yi-VL系列模型架构6.5.2 Yi-VL系列模型训练微调及推理6.6 清华系多模态大模型6.6.1 VisualGLM-6B6.6.2 CogVLM26.6.3 CogAgent6.6.4 CogView、CogVideoCogVideoX6.6.5 CogCoM6.6.6 GLM-4V-9B第7章 AI Agent智能体7.1 AI Agent智能体介绍原理7.1.1 AI Agent的定义与角色7.1.2 AI Agent技术原理7.2 主流大模型Agent框架7.2.1 AutoGPT7.2.2 MetaGPT7.2.3 ChatDev7.2.4 AutoGen7.2.5 FastGPT7.2.6 XAgent7.2.7 GPT-Engineer7.2.8 BabyAGI7.2.9 SuperAGI第8章 大模型在企业应用中落地8.1 基于大模型的对话式推荐系统8.1.1 基于大模型的对话式推荐系统技术架构设计8.1.2 推荐AI Agent智能体8.1.3 面向推荐的语言表达模型8.1.4 知识插件8.1.5 基于大模型的推荐解释8.1.6 对话式推荐系统的新型评测方法8.2 多模态搜索8.2.1 多模态搜索技术架构设计8.2.2 多模态搜索关键技术8.2.3 多模态实时搜索与个性化推荐8.3 基于自然语言交互的NL2SQL数据即席查询8.3.1 NL2SQL数据即席查询技术原理8.3.2 NL2SQL应用实践8.4 基于大模型智能客服对话机器人8.4.1 大模型智能客服对话机器人技术原理8.4.2 AI大模型赋能提升智能客服解决率新策略8.4.3 基于大模型智能客服对话机器人系统搭建8.5 多模态数字人8.5.1 多模态数字人技术原理8.5.2 三维建模与三维重建8.5.3 数字人形象设计8.5.4 唇形同步算法8.5.5 NeRF、ER-NeRF与RAD-NeRF模型8.5.6 数字人项目实践8.6 多模态具身智能8.6.1 多模态具身智能概念及技术路线8.6.2 多模态感知与场景理解8.6.3 视觉导航8.6.4 世界模型8.6.5 具身智能模拟器8.6.6 多模态多感官交互具身智能大模型8.6.7 端到端强化学习人形机器人8.6.8 多模态通才具身智能体   
<think>嗯,用户想了解AI Agent的基本概念、实现原理,还有各个模块之间的关系,以及如何实际操作搭建一个简单的系统。首先,我需要明确AI Agent的定义,可能要从智能代理的基本结构讲起,比如感知、决策、执行这些模块。然后要提到与LLM的交互,这里可能需要结合用户提到的Function CallMCP协议。 用户的问题还涉及记忆能力的实现方法,这部分可能需要解释短期记忆长期记忆,比如使用向量数据库或者缓存机制。Function Call的作用应该是在LLM外部工具之间做桥接,让模型能调用外部API,比如查询天气或数据库。MCP协议可能是指模块之间的通信协议,需要说明它的工作流程,比如请求分发结果返回。 关于RAG向量化处理,用户希望在本地完成,所以得提到文本预处理、嵌入模型的选择,还有如何将向量存储到数据库中,最后接入LLM生成回答。健康体检问答系统作为例子,可能需要结合医疗知识库RAG来实现。 引用部分提到了Qwen-Agent函数调用的应用,需要确保在回答中正确引用这些资料。用户可能希望步骤清晰,有代码示例,比如用Python演示Function Calling或者RAG的实现。还要注意模块间的协作关系,可能需要用图表或流程图来说明。 最后,用户可能需要实操指导,所以提供具体的步骤代码片段会很有帮助,比如使用Hugging Face的模型做嵌入,或者用LangChain框架简化流程。需要检查代码是否正确,比如导入的库是否合适,函数调用是否符合逻辑。同时,要确保各部分解释清楚,让读者能一步步跟着搭建系统。</think>### AI Agent概念与实现原理分析(分步骤说明) #### 一、AI Agent核心架构 AI Agent系统主要由以下模块构成: 1. **感知模块**:负责接收用户输入(文本/语音/图像),使用$BERT_{base}$等模型进行多模态处理 2. **认知模块**:LLM核心实现逻辑推理,基于transformer架构处理上下文 3. **记忆系统**: - 短期记忆:对话上下文缓存(滑动窗口机制) - 长期记忆:向量数据库实现知识存储 $$ \text{Memory Recall} = \text{Similarity}(q, K) \cdot V $$ 4. **执行模块**:通过Function Calling与外部API交互 #### 二、关键技术实现 1. **记忆能力实现**: - 使用FAISS/Pinecone进行向量相似度检索 - 对话历史采用Redis缓存管理 - 知识图谱用于结构化记忆存储[^2] 2. **Function Calling机制**: ```python def function_router(prompt: str) -> dict: # 解析LLM输出的JSON指令 intent = classify_intent(prompt) if intent == "weather_query": return call_weather_api(location=extract_entity(prompt)) ``` 该机制使LLM能调用外部API,完成数据查询、设备控制等操作[^1] 3. **MCP协议工作流程**: ``` 用户请求 -> 协议封装 -> 任务分发中心 -> 模块协同 -> 结果聚合 ``` 采用gRPC框架实现低延迟通信,支持模块热插拔 #### 三、本地RAG实施步骤 1. 文本预处理: ```python from langchain.text_splitter import RecursiveCharacterTextSplitter splitter = RecursiveCharacterTextSplitter(chunk_size=512) ``` 2. 向量化处理: ```python from sentence_transformers import SentenceTransformer encoder = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2') vectors = encoder.encode(documents) ``` 3. 数据库构建: ```python import chromadb client = chromadb.PersistentClient(path="medical_rag") collection = client.create_collection("health_check") ``` #### 四、健康问答系统搭建 完整架构示例: ```mermaid graph TD A[用户提问] --> B(意图识别) B --> C{是否需要RAG} C -->|是| D[向量数据库检索] C -->|否| E[LLM直接回答] D --> F[知识增强prompt] F --> G[生成最终回答] ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

青衫客36

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

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

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

打赏作者

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

抵扣说明:

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

余额充值