Ollama大模型开发实战:从基础到高级功能的全面指南
本文全面介绍了Ollama大模型平台的核心功能与开发技巧包括流式处理三种模式、CLI命令使用、Pydantic定义JSON结构、向量嵌入应用、Agent多轮工具调用以及Web Search API集成。通过丰富代码示例和最佳实践指导帮助开发者掌握从基础到高级的Ollama应用开发技能适合希望构建强大AI应用的程序员学习参考。一、流式处理核心概念1.1 三种流式模式模式字段用途聊天模式content流式输出助手消息实时渲染思考模式thinking显示模型推理过程工具调用tool_calls执行外部工具并返回结果1.2 流式处理示例from ollama import chat stream chat( modelqwen3:1.7b, messages[{role: user, content: What is 17 × 23?}], streamTrue, thinkFalse ) # 初始化状态变量和累积字符串 in_thinking False # 标记是否正在接收思考过程 content # 存储最终回答内容 thinking # 存储思考过程内容 # 遍历流式响应中的每个数据块 (chunk) for chunk in stream: # 如果当前块包含思考过程 (thinking) 内容 if chunk.message.thinking: # 如果是第一次接收到思考内容则打印标题 if not in_thinking: in_thinking True print(Thinking:\n, end, flushFalse) # 打印当前部分的思考内容不换行 print(chunk.message.thinking, end, flushFalse) # 将当前思考内容追加到总的思考字符串中 thinking chunk.message.thinking # 如果当前块包含实际回答 (content) 内容 elif chunk.message.content: # 如果之前在显示思考过程则切换状态并打印答案标题 if in_thinking: in_thinking False print(\n\nAnswer:\n, end, flushTrue) # 打印当前部分的回答内容不换行 print(chunk.message.content, end, flushTrue) # 将当前回答内容追加到总的回答字符串中 content chunk.message.content new_messages [{role: assistant, thinking: thinking, content: content}] print(\n\nNew messages:\n, new_messages)二、CLI 命令速查2.1 思考模式控制# 启用思考模式 ollama run deepseek-r1 --think Where should I visit in Lisbon? # 禁用思考模式 ollama run deepseek-r1 --thinkfalse Summarize this article # 隐藏思考过程(但仍使用思考模型) ollama run deepseek-r1 --hidethinking Is 9.9 bigger or 9.11?2.2 交互式会话控制# 启用思考 /set think # 禁用思考 /set nothink2.3 GPT-OSS# 支持三个级别: low, medium, high ollama run gpt-oss --thinklow Draft a headline ollama run gpt-oss --thinkmedium Draft a headline ollama run gpt-oss --thinkhigh Draft a headline三、结构化 JSON 输出3.1 使用 Pydantic 定义 Schemafrom ollama import chat from pydantic import BaseModel from typing import Literal, Optional # class BlurLocation(BaseModel): # province: str # city: str # district: str # # response chat( # modelqwen3:1.7b, # messages[{role: user, content: 曹县在具体在哪个位置}], # thinkFalse, # formatBlurLocation.model_json_schema() # ) # # loc BlurLocation.model_validate_json(response.message.content) # print(loc) class Object(BaseModel): name: str confidence: float attributes: str class ImageDes(BaseModel): summary: str objects: list[Object] scene: str colors: list[str] time_of_day: Literal[Morning, Afternoon, Evening, Night] setting: Literal[Outdoor, Indoor, Unknown] text_content: Optional[str]None response chat( modelqwen3-vl:2b, messages[{ role: user, content: Use Chinese to describe this photo and list the objects you detect., images: [/Users/okonma/Desktop/pics/misato.jpg] }], formatImageDes.model_json_schema(), options{ temperature: 0 } ) print(response.message.content)3.2 最佳实践✅推荐做法:使用 Pydantic (Python) 或 Zod (JavaScript) 定义 schema设置temperature0获得确定性输出在提示词中包含 JSON schema 说明通过 OpenAI 兼容 API 使用response_format参数四、向量嵌入4.1 推荐模型模型链接embeddinggemmaollama.com/library/embeddinggemmaqwen3-embeddingollama.com/library/qwen3-embeddingall-minilmollama.com/library/all-minilm4.2 使用建议使用余弦相似度进行语义搜索索引和查询使用同一个嵌入模型五、Agent 循环 (多轮工具调用)5.1 概念Agent 循环允许模型:自主决定何时调用工具将工具结果整合到回复中进行多轮工具调用5.2 实现要点提示:在提示词中告知模型它处于循环中可以进行多次工具调用5.3 完整示例搜索 Agentfrom ollama import chat, web_fetch, web_search # 准备工具字典 available_tools {web_search: web_search, web_fetch: web_fetch} messages [{role: user, content: what is ollamas new engine}] while True: response chat( modelqwen3:4b, messagesmessages, tools[web_search, web_fetch], thinkTrue ) # 显示思考过程 if response.message.thinking: print(Thinking: , response.message.thinking) # 显示回答内容 if response.message.content: print(Content: , response.message.content) messages.append(response.message) # 处理工具调用 if response.message.tool_calls: print(Tool calls: , response.message.tool_calls) for tool_call in response.message.tool_calls: function_to_call available_tools.get(tool_call.function.name) if function_to_call: args tool_call.function.arguments result function_to_call(**args) print(Result: , str(result)[:200]...) # 限制上下文长度截断结果 messages.append({ role: tool, content: str(result)[:2000 * 4], tool_name: tool_call.function.name }) else: messages.append({ role: tool, content: fTool {tool_call.function.name} not found, tool_name: tool_call.function.name }) else: break # 没有工具调用退出循环⚠️重要提示:建议将模型上下文长度增加到至少 32000 tokensOllama 云模型运行在完整上下文长度六、Web Search Fetch API6.1 初始化客户端import ollama # 配置 API Key client ollama.Client( headers{ Authorization: Bearer API_KEY } )6.2 Web Search API请求端点:POST https://ollama.com/api/web_search参数:query(string, 必填): 搜索查询字符串max_results(integer, 可选): 最多返回结果数 (默认 5, 最大 10)响应格式:{ results: [ { title: 网页标题, url: 网页 URL, content: 相关内容片段 } ] }使用示例:import ollama response ollama.web_search(What is Ollama?) print(response)6.3 Web Fetch API请求端点:POST https://ollama.com/api/web_fetch参数:url(string, 必填): 要获取的 URL响应格式:WebFetchResponse( title网页标题, content网页主要内容, links[链接1, 链接2, ...] )使用示例:from ollama import web_fetch result web_fetch(https://ollama.com) print(result)七、MCP Server 集成Ollama 支持通过 Python MCP server 在任何 MCP 客户端中启用 Web Search。7.1 Cline 集成在 Cline 中配置Manage MCP ServersConfigure MCP Servers{ mcpServers: { web_search_and_fetch: { type: stdio, command: uv, args: [run, path/to/web-search-mcp.py], env: { OLLAMA_API_KEY: your_api_key_here } } } }7.2 Codex 集成配置文件位置~/.codex/config.toml[mcp_servers.web_search] command uv args [run, path/to/web-search-mcp.py] env { OLLAMA_API_KEY your_api_key_here }7.3 Goose 集成Ollama 可通过 MCP 功能与 Goose 集成。AI大模型从0到精通全套学习大礼包我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。只要你是真心想学AI大模型我这份资料就可以无偿共享给你学习。大模型行业确实也需要更多的有志之士加入进来我也真心希望帮助大家学好这门技术如果日后有什么学习上的问题欢迎找我交流有技术上面的问题我是很愿意去帮助大家的如果你也想通过学大模型技术去帮助就业和转行可以扫描下方链接大模型重磅福利入门进阶全套104G学习资源包免费分享01.从入门到精通的全套视频教程包含提示词工程、RAG、Agent等技术点​02.AI大模型学习路线图还有视频解说全过程AI大模型学习路线​03.学习电子书籍和技术文档市面上的大模型书籍确实太多了这些是我精选出来的04.大模型面试题目详解05.这些资料真的有用吗?这份资料由我和鲁为民博士共同整理鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。所有的视频由智泊AI老师录制且资料与智泊AI共享相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念‌通过动态追踪大模型开发、数据标注伦理等前沿技术趋势‌构建起前沿课程智能实训精准就业的高效培养体系。课堂上不光教理论还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作把课本知识变成真本事‌如果说你是以下人群中的其中一类都可以来智泊AI学习人工智能找到高薪工作一次小小的“投资”换来的是终身受益应届毕业生‌无工作经验但想要系统学习AI大模型技术期待通过实战项目掌握核心技术。零基础转型‌非技术背景但关注AI应用场景计划通过低代码工具实现“AI行业”跨界‌。业务赋能 ‌突破瓶颈传统开发者Java/前端等学习Transformer架构与LangChain框架向AI全栈工程师转型‌。获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】

相关新闻

MCP:大模型界的Type-C标准,让你的工具一次编写到处运行(深度好文,值得收藏)

MCP:大模型界的Type-C标准,让你的工具一次编写到处运行(深度好文,值得收藏)

文章介绍了MCP(模型上下文协议)作为大模型界的"Type-C"标准,解决了不同模型间工具不通用的问题。通过MCP,开发者可以创建统一格式的工具接口,使大模型能够执行绘画、搜索、文件操作等传统代码能力&#xff0…

2026/7/6 9:55:33 阅读更多 →
大模型术语全解析:从LLM到Agent,小白必学指南

大模型术语全解析:从LLM到Agent,小白必学指南

文章系统介绍了大模型领域的核心术语,包括LLM(参数规模≥1B的语言模型)、MCP(连接外部数据的标准化协议)、Agent(结合LLM和工具实现任务的智能体)、RAG(减少模型幻觉的检索增强生成)、LangChain(开发框架)、vLLM(通过KV Cache和连续批处理提高效率)等关键技术概念&a…

2026/7/3 18:45:58 阅读更多 →
Java毕设项目:基于springboot的机器人健康预警系统(源码+文档,讲解、调试运行,定制等)

Java毕设项目:基于springboot的机器人健康预警系统(源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/3 3:24:00 阅读更多 →

最新新闻

AI 平台工具集成:让 IDE 直连线上推理环境做调试

AI 平台工具集成:让 IDE 直连线上推理环境做调试

AI 平台工具集成:让 IDE 直连线上推理环境做调试 一、本地调试和线上推理之间为什么总隔着一堵墙 模型开发者在本地 IDE 中调试推理逻辑,但模型最终部署在远端 GPU 节点。本地没有 GPU,推理框架版本与线上不一致,模型权重大到本地…

2026/7/7 9:50:35 阅读更多 →
5分钟掌握macOS番茄工作法:TomatoBar菜单栏效率神器完全指南

5分钟掌握macOS番茄工作法:TomatoBar菜单栏效率神器完全指南

5分钟掌握macOS番茄工作法:TomatoBar菜单栏效率神器完全指南 【免费下载链接】TomatoBar 🍅 Worlds neatest Pomodoro timer for macOS menu bar 项目地址: https://gitcode.com/gh_mirrors/to/TomatoBar 在信息爆炸的数字时代,专注力…

2026/7/7 9:48:35 阅读更多 →
番茄小说下载器完整指南:5种格式+Web界面打造永久数字图书馆

番茄小说下载器完整指南:5种格式+Web界面打造永久数字图书馆

番茄小说下载器完整指南:5种格式Web界面打造永久数字图书馆 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 你是否曾因网络中断而无法继续阅读精彩小说?是否担心收藏…

2026/7/7 9:46:34 阅读更多 →
如何高效获取Bilibili完整评论数据?专业爬虫工具实战指南

如何高效获取Bilibili完整评论数据?专业爬虫工具实战指南

如何高效获取Bilibili完整评论数据?专业爬虫工具实战指南 【免费下载链接】BilibiliCommentScraper B站视频评论爬虫 Bilibili完整爬取评论数据,包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数 项目地址: https://gitcode.com/gh_mirrors/bi…

2026/7/7 9:42:33 阅读更多 →
AI内衣换装系统私有化部署:从技术架构到工程实践

AI内衣换装系统私有化部署:从技术架构到工程实践

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 在服装电商、虚拟试衣和个性化定制领域,AI驱动的内衣换装技术正从云端服务走向本地私有化部署。企业选择私有化部署的核心…

2026/7/7 9:40:33 阅读更多 →
好用的平衡机源头厂家

好用的平衡机源头厂家

前阵子跟浙江宁波做风机生产的王总喝茶,他说起去年买平衡机的遭遇还肉疼:当时图便宜找了个小厂家,花12万买的圈带传动平衡机,用了不到3个月就出问题,测出来的平衡数据误差最高到3.2g,发出去的风机因为震动大…

2026/7/7 9:40:33 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻