调用ollama 模型
时间: 2025-04-24 19:06:29 浏览: 24
<think>好的,我现在需要帮助用户了解如何调用Ollama模型的API,并提供示例代码和文档。首先,我要回顾用户提供的引用内容,确保信息准确。
根据引用[1],用户提到Ollama支持通过Python调用API,特别是使用deepseek-r1:8b模型生成文本。需要确认API的基本调用方式,比如使用requests库发送POST请求到本地端口。引用[3]中提到了环境准备,包括Python版本和CUDA要求,这可能影响代码的兼容性。此外,引用[2]提到嵌入模型的使用,这可能和生成文本的API不同,但用户现在主要关注生成部分。
用户需要示例代码,所以我要提供一个简单的Python示例,展示如何发送请求和处理响应。可能需要包括安装ollama的步骤,比如先运行ollama serve启动服务。同时,要确保代码中的端口和模型名称正确,例如deepseek-r1:8b是否正确可用。
另外,用户可能对参数如temperature和stream感兴趣,这些控制生成文本的随机性和是否流式传输。需要解释这些参数的作用,但用户的问题主要在于示例代码,所以代码中应包含常用参数。
还要注意文档的引用,在回答中正确标注引用来源,比如环境准备来自引用[3],API调用方法来自引用[1]。可能需要提醒用户注意模型名称的正确性,以及服务是否已启动。
最后,生成相关问题,比如性能优化、流式处理或自定义模型,这些能帮助用户进一步探索。确保问题与用户的需求相关,并基于提供的引用内容。</think>### 如何调用 Ollama 模型 API
#### 步骤说明
1. **安装与启动 Ollama**
根据引用[3],需先安装 Ollama 并启动服务:
```bash
# 安装 Ollama(以 Linux 为例)
curl -fsSL https://ollama.com/install.sh | sh
# 启动服务(默认端口 11434)
ollama serve
```
2. **拉取模型**
例如拉取 `deepseek-r1:8b` 模型:
```bash
ollama pull deepseek-r1:8b
```
3. **Python 调用 API 示例**
根据引用[1],使用 `requests` 库调用 API:
```python
import requests
def generate_text(prompt, model="deepseek-r1:8b"):
url = "http://localhost:11434/api/generate"
payload = {
"model": model,
"prompt": prompt,
"stream": False, # 是否流式返回(逐句输出)
"temperature": 0.7 # 控制生成随机性(0-1)
}
response = requests.post(url, json=payload)
return response.json()["response"]
# 示例调用
result = generate_text("请解释量子力学的基本原理")
print(result)
```
4. **流式输出处理**
若需实时逐句输出结果:
```python
def generate_stream(prompt, model="deepseek-r1:8b"):
url = "http://localhost:11434/api/generate"
payload = {"model": model, "prompt": prompt, "stream": True}
with requests.post(url, json=payload, stream=True) as response:
for line in response.iter_lines():
if line:
chunk = json.loads(line.decode("utf-8"))
print(chunk.get("response", ""), end="", flush=True)
```
#### 文档关键点
- **API 地址**:默认 `http://localhost:11434/api/generate`[^1]
- **必需参数**:`model`(模型名称)、`prompt`(输入文本)
- **常用参数**:
- `temperature`:数值越高,生成越随机(默认 0.8)
- `max_tokens`:限制生成文本的最大长度
- `top_p`:核心采样概率(控制多样性)[^3]
---
阅读全文
相关推荐


















