环境准备
- 操作系统:macOS 10.15+
- 终端工具:iTerm2或系统自带终端
- 内存要求:建议16GB以上
- 存储空间:至少10GB可用空间
Ollama安装
方法一:Homebrew安装(推荐)
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install ollama
方法二:手动安装
- 访问Ollama官网下载dmg安装包
- 双击打开Ollama.dmg文件
- 将Ollama图标拖拽到Applications文件夹
模型部署
bash
ollama pull deepseek-coder:6.7b
Python客户端实现
python
# test_ollama.py
import requests
import json
def generate(prompt: str, model: str = 'deepseek-coder:6.7b') -> str:
"""
Deepseek模型生成接口
参数:
prompt: 输入提示文本
model: 使用的模型名称(默认deepseek-coder:6.7b)
返回:
模型生成的文本结果
"""
try:
response = requests.post(
'http://localhost:11434/api/generate',
json={
'model': model,
'prompt': prompt,
'stream': True
},
headers={'Content-Type': 'application/json'},
stream=True
)
response.raise_for_status()
full_response = ''
for line in response.iter_lines():
if line:
chunk = json.loads(line)
print(chunk.get('response', ''), end='', flush=True)
full_response += chunk.get('response', '')
return full_response
except requests.exceptions.RequestException as e:
print(f"\nAPI请求错误: {e}")
return ''
except json.JSONDecodeError:
print("\n响应解析失败")
return ''
if __name__ == "__main__":
test_prompt = """
请用Python编写一个快速排序算法函数,要求:
1. 输入参数为一个整数列表
2. 返回排序后的升序列表
3. 添加详细的代码注释
"""
print("测试prompt:\n", test_prompt)
print("\n模型响应:")
result = generate(test_prompt)
# 验证代码可执行性
try:
exec(result)
print("\n\n代码验证通过")
except Exception as e:
print(f"\n\n代码执行错误: {e}")
执行验证
bash
python3 test_ollama.py
预期终端输出片段:
ini
模型响应:
def quick_sort(arr):
# 基线条件:空或单元素数组直接返回
if len(arr) <= 1:
return arr
# 选择基准元素
pivot = arr[len(arr)//2]
# 分割为三个子数组
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
# 递归排序并合并
return quick_sort(left) + middle + quick_sort(right)
代码验证通过
常见问题
Q1: 服务启动失败提示端口占用
bash
lsof -i :11434
kill -9 <PID>
Q2: 模型下载中断
bash
ollama pull deepseek-coder:6.7b
Q3: Python依赖缺失
bash
pip3 install requests
最佳实践
- 生产环境建议使用Docker容器化部署
- 复杂需求可配合LangChain框架使用
- 实时监控API调用:
bash
ollama serve