Windows上的本地化部署通义千问qwen,含API调用流式和非流式调用demo

devtools/2025/2/3 17:07:05/

Ollama是一个强大的工具,可以帮助你在本地轻松部署和管理大语言模型,如qwen。以下是在Windows系统上使用Ollama安装和部署qwen的详细步骤。

一、安装Ollama

(一)下载Ollama(或者用我的网盘链接下载)

通过网盘分享的文件:OllamaSetup0.5.7.exe

链接: https://pan.baidu.com/s/1fE1dad4UBCQsUDZ7c_abVw 提取码: 15gg

  1. 打开浏览器,访问 Ollama官网。

  2. 在下载页面中,选择“Windows”选项卡,点击“Download for Windows ”按钮,开始下载Ollama的安装包。

(二)安装Ollama

  1. 下载完成后,双击下载的.exe安装包文件,启动安装程序。

  1. 按照安装向导的提示完成安装过程。Ollama默认安装路径为C:\Users\<username>\AppData\Local\Programs\Ollama

  2. 安装完成后,

提升完成安装后,有了默认的安装命令,

但我们要安装qwen,其实方法通用,只有ollama上有的都可以安装。

(三)验证Ollama安装

  1. 打开命令提示符或PowerShell,输入以下命令:ollama -h

  2. 如果看到Ollama的版本信息和帮助文档,说明安装成功。

常用命令

ollama serve       启动ollama
ollama create      从模型文件创建模型
ollama show        显示模型信息
ollama run         运行模型
ollama pull        从注册表中拉取模型
ollama push        将模型推送到注册表
ollama list        列出模型
ollama cp          复制模型
ollama rm          删除模型
ollama help        获取有关任何命令的帮助信息

二、配置Ollama(可选)

更改模型存储路径

  1. 如果需要更改Ollama存储下载模型的位置,可以在用户账户中设置环境变量OLLAMA_MODELS

  2. 启动设置(Windows 11)或控制面板(Windows 10),搜索“环境变量”。

  3. 点击“编辑账户环境变量”,编辑或创建一个新的用户账户或者系统变量OLLAMA_MODELS,设置为你希望存储模型的路径。

三、安装大模型

执行命令

ollama run qwen2.5:1.5b

可以根据自己的需求来下载不同参数的模型

发送消息

四、API调用

1、编写 Python 代码(非流式)

以下是一个简单的 Python 脚本示例,用于调用 Ollama 运行的 qwen2.5:1.5b 模型:

import requests
import json# Ollama API 的地址
url = "http://localhost:11434/api/generate"# 定义请求的数据
data = {"model": "qwen2.5:1.5b",  # 模型名称"prompt": "请编写一个关于少年努力的对联",  # 输入的提示信息"stream": False  # 是否使用流式响应
}# 将数据转换为 JSON 格式
data_json = json.dumps(data)# 设置请求头
headers = {"Content-Type": "application/json"
}# 发送 POST 请求
try:response = requests.post(url, headers=headers, data=data_json)response.raise_for_status()  # 检查响应状态码result = response.json()print(result["response"])  # 打印模型的回复
except requests.exceptions.RequestException as e:print(f"请求出错: {e}")
except (KeyError, json.JSONDecodeError):print("解析响应数据出错")

 

D:\AiPro\wechat\pythonProject\.venv\Scripts\python.exe D:\AiPro\wechat\pythonProject\zimeiti\t2.py 
好的,以下是一副关于少年努力的对联:上联:
日月光华耀九州,少年志气冲霄汉。下联:
风霜雨雪砺筋骨,青春汗水润乾坤。横批:
壮志凌云这个对联寓意着年轻人要有远大的理想和雄心壮志,即使是在逆境中也要努力奋斗。"日月光华耀九州"代表了国家的繁荣和民族的梦想;"少年志气冲霄汉"体现了年轻人的理想与抱负;"风霜雨雪砺筋骨"强调了在艰难困苦中锤炼意志的重要性;最后"青春汗水润乾坤"表达了通过不懈努力实现梦想的过程。Process finished with exit code 0

2、编写 Python 代码( 流式 输出

如果你希望使用流式响应,可以将 stream 参数设置为 True,并对响应进行逐行处理:

import requests
import jsonurl = "http://localhost:11434/api/generate"
data = {"model": "qwen2.5:1.5b","prompt": "请编写一个关于少年努力的对联","stream": True
}
data_json = json.dumps(data)
headers = {"Content-Type": "application/json"
}try:response = requests.post(url, headers=headers, data=data_json, stream=True)response.raise_for_status()for line in response.iter_lines():if line:result = json.loads(line)if 'response' in result:print(result["response"], end='', flush=True)
except requests.exceptions.RequestException as e:print(f"请求出错: {e}")
except (KeyError, json.JSONDecodeError):print("解析响应数据出错")

五、代码解释

  • 请求地址:http://localhost:11434/api/generate 是 Ollama 默认的生成 API 地址,你可以根据实际情况进行调整。

  • 请求数据:

    • model:指定要使用的模型名称,这里是 qwen2.5:1.5b

    • prompt:输入给模型的提示信息,即你想要询问的问题。

    • stream:设置是否使用流式响应。如果设置为 True,模型会逐步返回结果;如果设置为 False,则会等待模型生成完整的结果后一次性返回。

  • 请求头:设置 Content-Typeapplication/json,表示请求数据是 JSON 格式。

  • 发送请求:使用 requests.post 方法发送 POST 请求,并将响应结果解析为 JSON 格式。

  • 处理响应:打印模型的回复,如果请求或解析过程中出现错误,会捕获相应的异常并输出错误信息。


http://www.ppmy.cn/devtools/155774.html

相关文章

蓝桥杯例题六

奋斗是一种态度&#xff0c;也是一种生活方式。无论我们面对什么样的困难和挑战&#xff0c;只要心怀梦想&#xff0c;坚持不懈地努力&#xff0c;就一定能够迈向成功的道路。每一次失败都是一次宝贵的经验&#xff0c;每一次挫折都是一次锻炼的机会。在困难面前&#xff0c;我…

C#接口(Interface)

C#中的接口 接口是C#中一种重要的概念&#xff0c;它定义了一组函数成员&#xff0c;但不实现它们。接口提供了一种标准结构&#xff0c;使得实现接口的类或结构在形式上保持一致。接口定义了属性、方法和事件&#xff0c;这些都是接口的成员&#xff0c;但接口只包含成员的声…

Van-Nav:新年,将自己学习的项目地址统一整理搭建自己的私人导航站,供自己后续查阅使用,做技术的同学应该都有一个自己网站的梦想

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 Van-Nav是一个基于Vue.js开发的导航组件库&#xff0c;它提供了多种预设的样式和灵活的配置选项&#xff0c;使得开发者可以轻松地定制出符合项目需求…

两种交换排序算法--冒泡,快速

目录 1.冒泡排序原理 2.快速排序原理 3.冒泡代码实现 4.快速排序代码实现 1.冒泡排序原理 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;基本思想是通过反复交换相邻的元素&#xff0c;直到整个序列有序。它的名字来源于较大的元素像气泡…

K8s介绍代理外部服务的svc几种方式

在 Kubernetes 中&#xff0c;若需让集群内应用访问外部服务&#xff0c;可通过以下 **Service 配置方式**实现代理&#xff1a; --- ### 1. **ClusterIP Service 手动维护 Endpoints** - **原理**&#xff1a;创建 ClusterIP 类型的 Service 并手动指定 Endpoints&#xff…

java异常处理——try catch finally

单个异常处理 1.当try里的代码发生了catch里指定类型的异常之后&#xff0c;才会执行catch里的代码&#xff0c;程序正常执行到结尾 2.如果try里的代码发生了非catch指定类型的异常&#xff0c;则会强制停止程序&#xff0c;报错 3.finally修饰的代码一定会执行&#xff0c;除…

【懒删除堆】力扣3092. 最高频率的 ID

你需要在一个集合里动态记录 ID 的出现频率。给你两个长度都为 n 的整数数组 nums 和 freq &#xff0c;nums 中每一个元素表示一个 ID &#xff0c;对应的 freq 中的元素表示这个 ID 在集合中此次操作后需要增加或者减少的数目。 增加 ID 的数目&#xff1a;如果 freq[i] 是正…

计算机网络 笔记 网络层 3

IPv6 IPv6 是互联网协议第 6 版&#xff08;Internet Protocol Version 6&#xff09;的缩写&#xff0c;它是下一代互联网协议&#xff0c;旨在解决 IPv4 面临的一些问题&#xff0c;以下是关于 IPv6 的详细介绍&#xff1a; 产生背景&#xff1a; 随着互联网的迅速发展&…