如何使用Ollama在本地运行Qwen3并支持MCP和工具使用

图片

Qwen3是阿里巴巴Qwen团队最新发布的开源大语言模型,提供具有竞争力的性能,高度模块化和工具使用能力。

在本指南中,我将向您展示如何通过Ollama在本地运行Qwen3,并启用MCP(模型上下文协议)工具功能,如代码解释器网络获取时间查询

到最后,您可以构建由Qwen3驱动的智能助手,完全在您的机器上运行——无需云API密钥!

为什么选择Qwen3 + Ollama + MCP?

为了实现这些高级功能,阿里巴巴引入了模型上下文协议(MCP)

MCP允许模型通过调度命令行服务与外部工具交互,使大语言模型能够以结构化和安全的方式访问时间、从网站获取数据或调用其他本地工具。

在Qwen-Agent生态系统中,像mcp-server-timemcp-server-fetch这样的MCP工具作为终端点,可以在需要时被模型本身触发。

这些工具通过一个字典配置,告诉代理为每个功能运行哪些命令。

  • Qwen3:为开源部署优化的先进大语言模型。

  • Ollama:通过一个命令简化本地LLM部署(如Qwen3)。

  • MCP:允许外部工具通过结构化消息进行通信(如网页浏览或时间查询)。

  • 工具使用:扩展Qwen3的能力超越静态文本——让它执行代码、调用API等!

在本地设置Ollama和Qwen3

步骤1:安装Ollama并运行Qwen3

在您的本地终端(Linux/macOS)上运行这些命令:

# 安装Ollama
curl -fsSL https://ollama.com/install.sh | sh


# 启动Ollama服务器
ollama serve

然后拉取Qwen3模型,Ollama 默认会拉取 Qwen3 系列中的基础版本:

ollama pull qwen3

这将获取Qwen3权重并准备通过Ollama API端点http://localhost:11434/v1进行本地使用。

图片

步骤2:安装Qwen-Agent

接下来,克隆官方Qwen-Agent仓库并安装它,包括GUI、检索增强生成(RAG)、代码解释和MCP支持所需的额外功能。运行以下命令:

# 克隆仓库
git clone https://github.com/QwenLM/Qwen-Agent.git


# 安装所有额外功能
pip install -e ./Qwen-Agent"[gui, rag, code_interpreter, mcp]"

-e标志确保包以可编辑模式安装,如果需要,可以更轻松地试验其内部功能。安装后,您可以编写Python脚本将助手连接到Ollama并启用工具使用。

步骤3:准备您的Python脚本

以下是运行具有MCP + Ollama的工具使用助手的完整代码:

from qwen_agent.agents import Assistant


# 步骤1:配置本地Qwen3模型(通过Ollama提供服务)
llm_cfg = {
    'model': 'qwen3',
    'model_server': 'http://localhost:11434/v1',  # Ollama API
    'api_key': 'EMPTY',
}


# 步骤2:定义您的工具(MCP + 代码解释器)
tools = [
    {'mcpServers': {
        'time': {
            'command': 'uvx',
            'args': ['mcp-server-time', '--local-timezone=Asia/Shanghai']
        },
        'fetch': {
            'command': 'uvx',
            'args': ['mcp-server-fetch']
        }
    }},
    'code_interpreter',
]


# 步骤3:初始化Qwen-Agent助手
bot = Assistant(llm=llm_cfg, function_list=tools)


# 步骤4:发送带有URL的用户消息
messages = [{'role': 'user', 'content': 'https://qwenlm.github.io/blog/ 介绍Qwen的最新发展'}]


# 步骤5:运行助手并打印结果
for responses in bot.run(messages=messages):
    pass
print(responses)

这个脚本使用Ollama后端初始化Qwen3模型,并注册两个MCP工具(timefetch)以及内置的code_interpreter。根据需要评估工具或代码后,助手处理用户消息并返回响应。

结语

将Qwen3与Qwen-Agent、MCP和Ollama结合使用,可以得到一个不依赖任何外部云服务的本地AI助手。

您可以运行多轮对话,启用实时信息检索,并执行Python代码——全部在本地基础设施内完成。

这使其成为开发人员、研究人员和产品团队的理想设置,特别是那些关注隐私、灵活性和可扩展性的人。

随着Qwen3的不断发展,我们可以期待其对复杂任务的更强大支持和与自定义工具的无缝集成,为真正自主的本地AI代理铺平道路。

 

 如何学习AI大模型?

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

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

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。


👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。


1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

### 如何使用OllamaLangChain调用Qwen模型 #### 集成准备 为了能够顺利地在LangChain中集成调用Qwen模型,需先确认已安装必要的库文件以及配置好相应的开发环境。这通常涉及到Python环境的搭建、依赖包的安装等基础工作[^3]。 #### 创建API接口 对于希望采用类似于`apikey`方式远程调用来访问Qwen模型的情况,可以通过构建RESTful API实现这一目标。此过程涉及设置服务器端逻辑以接收客户端请求,将这些请求转发给实际运行的大规模预训练语言模型(LLM)。例如,在本地部署或云平台上启动的服务可以接受来自用户的查询通过HTTP POST请求传递给Qwen模型处理[^1]。 #### 实现自定义链路 当考虑将Qwen模型与LangChain框架相结合时,重点在于创建一个继承自`LLMChain`类的新对象,该对象负责封装特定于Qwen的行为模式。具体来说,重写 `_call()` 方法以便它可以适配Qwen特有的输入输出格式。下面是一个简化版的例子: ```python from langchain.chains import LLMChain import requests class CustomQwenChain(LLMChain): api_key: str def __init__(self, llm_instance, prompt_template, api_key): super().__init__(llm_instance, prompt_template) self.api_key = api_key def _call(self, inputs: dict, run_manager=None) -> dict: headers = {"Authorization": f"Bearer {self.api_key}"} payload = { "input_text": inputs["text"] } response = requests.post( url="https://api.example.com/qwen", json=payload, headers=headers ) result = response.json() outputs = {"output_text": result.get('generated_text', '')} return outputs ``` 上述代码片段展示了如何基于`requests`库发送带有认证信息的数据到指定URL地址上的Qwen API服务;同时实现了对返回结果的基本解析操作[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值