详解Ollama api (Windows环境)

Ollama可以像一个本地软件一样在Windows中运行。通常通过以下两种方法来使用Windows中的Ollama。

  • cmdpowershell中输入命令
  • 基于本地主机http://localhost:11434的Ollama API

关于Ollama的安装和命令行的使用方法可以参考我的另一篇博文。这篇博文主要介绍api的使用方法。

powershell中获取Ollama API

下面是从powershell中获取Ollama API的一个简单示例(在cmd中同样如此):

(Invoke-WebRequest -method POST -Body '{"model":"llama3.2", "prompt":"Why is the sky blue?", "stream": false}' -uri http://localhost:11434/api
<think>好的,我现在需要帮助用户了解如何在Windows使用Python调用Ollama。首先,我需要确认用户对Ollama的了解程度。Ollama是一个本地运行大型语言模型的工具,支持多种模型如Llama 2、Mistral等。用户可能已经安装了Ollama,但不确定如何通过Python进行调用。 接下来,我应该分步骤说明整个过程。首先,确保Ollama已经在Windows上正确安装并运行。用户可能需要下载exe文件并执行安装,或者通过命令行启动服务。需要提醒用户检查服务是否运行在正确的端口,默认是11434。 然后,安装Python的HTTP请求库,比如requests。用户可能不熟悉发送HTTP请求,需要给出示例代码,比如如何调用generate API,以及如何处理流式响应。同时,要提到不同的API端点,如生成、聊天、嵌入等,可能需要不同的参数设置。 另外,用户可能需要处理流式响应,这里需要展示如何逐块读取并拼接结果。还要注意错误处理,比如检查响应状态码,确保连接正常。 最后,推荐使用社区封装的Python库,比如ollama-python或ollama,可以简化调用过程。需要给出安装命令和示例代码,说明如何安装和使用这些库,以及它们的优缺点。 需要确保步骤清晰,代码示例正确,并且提醒用户可能的常见问题,比如服务未启动、端口占用等。同时,使用中文,避免专业术语过多,保持口语化,但又要准确。检查是否有遗漏的步骤,比如安装Python库、启动Ollama服务等,确保用户能一步步跟随操作。</think>在 Windows 系统使用 Python 调用 Ollama 的完整步骤如下(建议按顺序操作): 一、前期准备 1. 安装 Ollama - 访问官网 https://ollama.ai/download 下载 Windows 版安装包 - 双击安装后会自动创建系统服务(可在任务管理器→服务中查看"Ollama"服务状态) - 验证安装:打开 PowerShell 输入 `ollama --version` 2. 下载模型(以 Llama2 为例) ```powershell ollama pull llama2 ``` 3. Python 环境准备 ```powershell pip install requests # 基础HTTP请求库 pip install ollama # 可选官方Python库(2023年12月新增) ``` 二、两种调用方式详解 方式一:直接通过 REST API 调用(推荐学习原理) ```python import requests # 基础配置 OLLAMA_HOST = 'http://localhost:11434' # 生成文本(带流式响应) def generate_stream(prompt, model="llama2"): url = f"{OLLAMA_HOST}/api/generate" payload = { "model": model, "prompt": prompt, "stream": True # 启用流式输出 } response = requests.post(url, json=payload, stream=True) response.raise_for_status() # 自动检测HTTP错误 full_response = "" for chunk in response.iter_lines(): if chunk: decoded = chunk.decode('utf-8') data = json.loads(decoded) if not data.get("done"): word = data.get("response", "") print(word, end='', flush=True) # 实时输出 full_response += word return full_response # 使用示例 result = generate_stream("为什么天空是蓝色的?") print("\n完整回答:", result) ``` 方式二:使用官方 Python 库(推荐生产环境) ```python import ollama # 同步生成 response = ollama.generate(model='llama2', prompt='解释量子计算') print(response['response']) # 流式生成(适合长响应) stream = ollama.generate( model='llama2', prompt='用五岁小孩能听懂的话解释黑洞', stream=True ) for chunk in stream: print(chunk['response'], end='', flush=True) ``` 三、进阶功能示例 1. 对话模式(保持上下文) ```python from ollama import Client client = Client(host='http://localhost:11434') # 初始化对话 messages = [ {'role': 'user', 'content': '哈利波特的主要角色有哪些?'} ] # 获取首轮响应 response = client.chat(model='llama2', messages=messages) print(response['message']['content']) # 追加对话 messages.append({'role': 'assistant', 'content': response['message']['content']}) messages.append({'role': 'user', 'content': '请详细介绍赫敏这个角色'}) # 继续对话 response = client.chat(model='llama2', messages=messages) ``` 四、常见问题排查 1. 服务未启动 ```python import requests try: response = requests.get('http://localhost:11434') print("Ollama 服务状态:", response.status_code) except ConnectionError: print("错误:请先启动Ollama服务!检查步骤:") print("1. Win+S搜索『服务』,找到Ollama确认状态为『正在运行』") print("2. 或在PowerShell执行:ollama serve") ``` 2. 端口占用冲突 ```powershell # 查看11434端口占用 netstat -ano | findstr :11434 # 如果被其他进程占用,可修改Ollama端口 setx OLLAMA_HOST "0.0.0.0:11435" ``` 3. 模型不存在错误 ```python # 获取可用模型列表 response = requests.get(f"{OLLAMA_HOST}/api/tags") print("已安装模型:", response.json()['models']) ``` 五、性能优化建议 1. 调整运行参数 ```python # 通过options参数控制生成质量 response = ollama.generate( model='llama2', prompt='写一篇关于AI伦理的短文', options={ 'temperature': 0.7, # 创造性(0-1) 'num_predict': 500, # 最大生成长度 'top_p': 0.9, # 核心采样率 'repeat_penalty': 1.2 # 重复惩罚 } ) ``` 2. GPU加速配置(需NVIDIA显卡) ```powershell # 安装CUDA工具包后设置环境变量 setx OLLAMA_DEBUG="1" ollama serve # 观察日志确认是否显示"CUDA capability detected" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值