链载Ai

标题: 从理论到应用:AI搜索MCP的最佳实践案例解析 [打印本页]

作者: 链载Ai    时间: 昨天 21:24
标题: 从理论到应用:AI搜索MCP的最佳实践案例解析
背景

那些LLM不知道的事

开篇先尝试直接问LLM一个问题,“今天天气如何”。

然而,并未能从LLM获得期望回答。原因也很简单,今天是哪天?天气是哪里的天气?这些问题对于LLM来说统统不得而知。

因此,我们很自然地想到,是不是能让LLM自己学会用工具,哪里不会点哪里呢?

当LLM学会用工具

上面这句话中,出现了三个角色,“用户”、“工具”、“LLM”,以及隐藏的第四个角色——将这一切粘合起来的“主控程序”。

关于四者的交互流程,我从百炼找了张图,供以参考:

MCP干嘛来了

按着Agent+FunctionCall的模式,我设计了工具schema,走通了LLM的服务调用,终于让LLM学会了用工具。但随着工具越来越多、工具调用与LLM耦合得越来越深,不管是维护还是迭代,都会消耗大量的精力。

那么,问题来了:

- 有了MCP,我会怎么做

现在有了MCP,一切都好起来了:

近距离看看MCP

MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.

MCP架构中的角色主要有以下几种:

ps:写了个mcp demo,就想让LLM告诉我,今天天气到底如何?

mcp = FastMCP("Demo")
@mcp.tool( name="get_current_time", description="获取当前时间",)defget_current_time(): """ 获取当前时间并进行格式化展示 :return: """ now = datetime.datetime.now() formatted_time = now.strftime("%Y-%m-%d %H:%M:%S") returnformatted_time

@mcp.tool( name="get_location", description="获取当前地点",)defget_location(): """ 获取当前地点 :return: """ try: response = requests.get("http://ip-api.com/json/") data = response.json()
ifdata["status"] =="success": location_info = { "country": data.get("country",""), "region": data.get("regionName",""), "city": data.get("city","") } returnjson.dumps(location_info, ensure_ascii=False) else: returnjson.dumps({"error":"无法获取地理位置"}, ensure_ascii=False) exceptExceptionase: returnjson.dumps({"error":str(e)}, ensure_ascii=False)

AI搜索怎么玩MCP

场景一:文件解析与总结

1. 前置准备
1.1 注册AI搜索平台[1],获取api-key[2]
1.2 vscode + cline

1.3 cline配置llm接口

API Provider选择 OpenAI Compatible

Base URL设为:

https://dashscope.aliyuncs.com/compatible-mode/v1

1.4 安装uv,管理python环境

curl -LsSfhttps://astral.sh/uv/install.sh| sh或者pip install uv

2. cline配置mcp server
2.1 下载alibabacloud-opensearch-mcp-server[3]
2.2 配置mcp server
{"mcpServers":{"aisearch-mcp-server":{"command":"uv","args":["--directory","/path/to/aisearch-mcp-server","run","aisearch-mcp-server"],"env":{"AISEARCH_API_KEY":"<AISEARCH_API_KEY>","AISEARCH_ENDPOINT":"<AISEARCH_ENDPOINT>"}}}}
3. 任务演示

此处为语雀视频卡片,点击链接查看:aisearch_mcp_demo.mp4

4. 业务价值

场景二:向量检索及排序

1. 前置准备

(新增)开通opensearch向量检索版[4],构建一张向量表

(其他)同场景一

2. cline配置mcp server
2.1 下载alibabacloud-opensearch-mcp-server
2.2 配置mcp server
{"mcpServers":{"aisearch-mcp-server":{"command":"uv","args":["--directory","/path/to/aisearch-mcp-server","run","aisearch-mcp-server"],"env":{"AISEARCH_API_KEY":"<AISEARCH_API_KEY>","AISEARCH_ENDPOINT":"<AISEARCH_ENDPOINT>"}},"opensearch-vector-mcp-server":{"command":"uv","args":["--directory","/path/to/opensearch-vector-mcp-server","run","opensearch-vector-mcp-server"],"env":{"OPENSEARCH_VECTOR_ENDPOINT":"http://ha-cn-***.public.ha.aliyuncs.com","OPENSEARCH_VECTOR_USERNAME":"<username>","OPENSEARCH_VECTOR_PASSWORD":"<password>","OPENSEARCH_VECTOR_INSTANCE_ID":"ha-cn-***","OPENSEARCH_VECTOR_INDEX_NAME":"<Optional:indexinvectortable>","AISEARCH_API_KEY":"<Optional:AISEARCH_API_KEYforembedding>","AISEARCH_ENDPOINT":"<Optional:AISEARCH_ENDPOINTforembedding>"}}}}
3. 任务演示

4. 业务价值

场景三:Elasticsearch智能检索

1. 前置准备

(新增)开通Elasticsearch[5],创建一份索引并写入测试数据

(其他)同场景一

2. cline配置mcp server
2.1 参考elasticsearch-mcp-server[6]
2.2 配置mcp server
{"mcpServers":{"elasticsearch-mcp-server":{"command":"npx","args":["-y","@elastic/mcp-server-elasticsearch"],"env":{"ES_URL":"http://es-cn-***.public.elasticsearch.aliyuncs.com:9200","ES_USERNAME":"<USERNAME>","ES_PASSWORD":"<ASSWORD>"}}}}
3
4. 业务价值







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5