手把手教你用Python调用本地Ollama API
作者:youqing · 2025-10-29 · 阅读时间:6分钟
收藏它,10 分钟完成环境搭建 → 三种调用方式 → 参数调优,立刻拥有本地大模型!
一、环境准备 🛠️

Image Source: pexels
1. 安装 Ollama ⚙️
2. 配置 Python 环境 🐍
- Python ≥ 3.8
- 安装依赖:
pip install requests ollama langchain-(可选)创建虚拟环境:
python -m venv venv source venv/bin/activate # macOS/Linux venv\Scripts\activate # Windows用 代码安全审计 扫描
requirements.txt,自动剔除已知漏洞版本!
二、使用 Python 调用本地 Ollama API 的三种方法 🛠️

Image Source: pexels
1. 使用 Ollama 库 🚀
① 安装与初始化
pip install ollama
from ollama import Client
client = Client(host="http://localhost:11434")
② 调用示例
resp = client.generate(prompt="你好,Ollama!")
print(resp["response"])
③ 性能指标
| 字段 | 含义 |
|---|---|
| total_duration | 总响应时间 |
| eval_count | Token 评估次数 |
| eval_duration | 评估耗时 |
用 代码优化助手 把
eval_count / eval_duration自动换算为「Tokens/秒」并打印!
2. 使用 LangChain 库 🦜
① 安装与配置
pip install langchain
from langchain.llms import Ollama
llm = Ollama(model="llama2")
② 调用示例
result = llm("你好,Ollama!")
print(result)
③ 性能指标
| 指标 | 含义 |
|---|---|
| 响应时间 | 请求→返回总耗时 |
| 吞吐量 | 单位时间请求数 |
| 错误率 | 失败请求占比 |
用 智能代码审查助手 检查
langchain.llms.Ollama初始化参数,防止因base_url缺失导致 404!
3. 使用 Requests 库 🌐
① 构造 HTTP 请求
import requests
url = "http://localhost:11434/api/generate"
data = {"prompt": "你好,Ollama!", "stream": False}
resp = requests.post(url, json=data, stream=False)
print(resp.json()["response"])
② 解析 JSON 结果
result = resp.json()
print(result["response"])
用 JavaScript代码反混淆专家 解开前端
stream=True的 EventSource 混淆逻辑,确保流式输出不乱码!
三、Ollama API 关键参数详解 🔍
1. temperature 🌡️
- 作用:控制随机性(0.2 确定性强,1.0 创意性强)
- 调优:技术问答设为 0.2,创意写作可尝试 1.2
2. stream 🌊
- 作用:启用流式输出,适合聊天机器人
- 示例:
for chunk in client.generate(prompt="你好", stream=True): print(chunk["response"], end="")
3. 其他常用参数 ⚙️
| 参数 | 默认值 | 说明 |
|---|---|---|
| max_tokens | 100 | 最大生成长度 |
| top_p | 0.9 | 累积概率阈值 |
| frequency_penalty | 1.0 | 降低重复词概率 |
用 代码片段解析助手 秒懂「top_p vs temperature」同时调用的最佳实践!
四、常见问题及解决方法 🐛
1. Ollama 无法启动 ❌
- 检查安装:
ollama --version - 验证服务:
curl http://localhost:11434 - 查看日志:
journalctl -u ollama
2. API 调用失败 🚫
- 网络:
ping localhost:11434 - 权限:确认无防火墙拦截
- 重试机制:
import requests, time for i in range(3): try: r = requests.post(url, json=data) if r.status_code == 200: break except Exception as e: print(f"retry {i+1}", e) time.sleep(2)用 代码优化专家助手 把重试逻辑封装为装饰器,一行代码搞定!
3. 安全性问题 🔒
- API Key:本地部署无需 Key,但可配置
OLLAMA_ORIGINS限制来源 - HTTPS:反向代理 + Nginx 证书
- 访问控制:防火墙仅开放内网 IP
五、总结与建议 🏁
- Ollama 库:简单快速,适合原型
- LangChain:生态丰富,适合复杂业务
- Requests:零依赖,适合嵌入式场景
深入学习 Ollama 官方文档,尝试调整
temperature/top_p组合,结合 Redis 缓存,打造属于你的高性能本地 AI 服务!
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 交叉熵的Numpy实现:从理论到实践
- Google DeepMind发布 Genie 3与Shopify:2小时上线电商3D样板间实战
- Gemini Deep Research 技术实战:利用 Gemini Advanced API 构建自动化的深度研究 Agent
- FLUX.1 Kontext API 使用完全指南:解锁文本驱动的智能图像编辑
- 如何防范User-Agent信息伪装引发的API访问风险
- 苹果支付流程:从零开始的接入指南
- 全面掌握 OpenAPI 规范:定义、生成与集成指南
- 深入解析granularity是什么?颗粒度中文详解
- 开发者如何利用缓存技术提升API性能
- Orbitz API 全攻略:旅行社高效整合酒店、航班与租车服务的必读指南
- REST API命名规范的终极指南:清晰度和一致性的最佳实践
- Go:基于 MongoDB 构建 REST API — Fiber 版