Ollama在Windows安装,使用,简单调用API

devtools/2024/9/25 10:59:03/

一、安装ollama

1、安装

在Windows本地安装ollama,官方网页:https://ollama.com/download/windows

下载完安装包,安装就好,默认应该是C盘。应该是没办法改,如果有小伙伴能改,也请告知一下。

2、验证安装

出现如下所示,安装成功

3、设置模型拉取地址

模型一般很大,避免都存在C盘,进行更改地址,下述我多有引用。

新建一个环境变量:

变量名:OLLAMA_MODELS

变量值:D:\Ollama  //这里写你打算放大模型的位置

配置好环境变量,重启电脑!!!

或者

setx OLLAMA_MODELS "D:\ollama_model"

根据自己需要,也可以多看几篇文章

二、使用ollama

1、拉取模型

拉取模型,可以参考官网GitCode - 全球开发者的开源社区,开源代码托管平台

我拉取的是最基础的,如下图

上述就是拉取成功了,成功后在命令行中就可以简单使用。

 

2、在python上调用

我这里很简单。

我是自己建立了一个python=3.10的虚拟环境

接着要安装相应的库,必须的库是

pip install ollama

接着创建自己的文件,其中

model='llama3.1'

改为自己的模型 

import ollama# 生成回答并逐字符打印
stream = ollama.chat(model='llama3.1',messages=[{'role': 'user', 'content': '天为什么是绿的'}],stream=True,
)for chunk in stream:print(chunk['message']['content'], end='', flush=True)def test_ollama_chat():# Test case 1: Test with a simple questionmessages1 = [{'role': 'user', 'content': '天为什么是绿的'}]stream1 = ollama.chat(model='llama3.1', messages=messages1, stream=True)response_content = ""for chunk in stream1:response_content += chunk['message']['content']# 检查回答是否合理assert "绿色" in response_content or "为什么" in response_contentprint("All test cases pass")test_ollama_chat()

输出在终端,结果为

 大家可以自行更改 引号中的问题,来尝试

'content': '天为什么是绿的'

这个只是初试,大家可以自行优化代码 .

再给一个测试案例,大家再自己优化

import ollama
def generate_response(model_name, prompt):# 生成回答并逐字符打印stream = ollama.chat(model=model_name,messages=[{'role': 'user', 'content': prompt}],  # 提供具体的问题或提示stream=True,)response = ""for chunk in stream:response += chunk['message']['content']print(chunk['message']['content'], end='', flush=True)return response
def test_ollama_chat():# Test case 1: Test with a simple Chinese questionmodel_name = 'llama3.1'prompt = '为什么天空是蓝色的?'expected_keywords = ['绿色', '散射']response = generate_response(model_name, prompt)# 检查回答是否包含预期的关键词if all(keyword in response for keyword in expected_keywords):print("\nTest case 1 passed.")else:print(f"\nTest case 1 failed. Response was: {response}")# Test case 2: Test with an English questionprompt = 'Why is the sky blue?'expected_keywords = ['blue', 'scatter']response = generate_response(model_name, prompt)# 检查回答是否包含预期的关键词if all(keyword in response.lower() for keyword in expected_keywords):print("\nTest case 2 passed.")else:print(f"\nTest case 2 failed. Response was: {response}")# 运行测试
test_ollama_chat()

输出的结果如下图(应该是模型或者什么原因,反复提问的话,回复会有差别,我选取其中一个)

 

 

 

 


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

相关文章

OpenCV特征检测(6)对初步检测到的角点位置进行亚像素级别的精炼函数cornerSubPix()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 细化角点的位置。 该函数迭代以找到角点或径向鞍点的亚像素级准确位置,如 93中所述,并如下图所示。 亚像素级准确的角点…

Spring Cloud :Hystrix实现优雅的服务容错

目录 Hystrix概述:第一个Hystrix程序步骤1:创建父工程hystrix-1步骤2:改造服务提供者步骤3:改造服务消费者为Hystrix客户端(1)添加Hystrix依赖(2)添加EnableHystrix注解(…

C# CS1612 尝试修改集合中值类型的情况

在C#中,发现尝试直接修改集合中值类型的中的值发生报错 提示“它不是变量”,通过官方索引的链接可知,尝试修改某一值类型,但是该值类型作为中间表达式的结果生成但不存储在变量中,会发生报错。 正确做法是将其赋值给局…

银从初级个人理财_05_第二章第二节

一、单选题 个人独资企业解散时,投资人自行清算的,应当在清算前()日内书面通知债权人。 10 15 20 30 二、多选题 夫妻在婚姻关系存续期间所得的财产中,归夫妻共同所有的是()。 一方因身体受到伤害获得的医疗费、残疾人生活补助费等费…

vulnhub-prime1

目录 靶场环境解题过程 靶场环境 项目ip靶机(prime)未知攻击机(kali)10.128.129.128 解题过程 打开靶机,我们只能看见一个登录界面,上面只有半截提示 我们首先要做的是主机发现,因为是网络适…

C#和数据库高级:密封类和方法覆盖

文章目录 一、密封类关键字:sealed方法覆盖 面向对象三大特性总结 一、密封类 关键字:sealed 方法覆盖 面向对象三大特性总结

前端面试题(三)

11. Web API 面试题 如何使用 fetch 发起网络请求? fetch 是现代浏览器中用于发起网络请求的原生 API。它返回一个 Promise,默认情况下使用 GET 请求:fetch(https://api.example.com/data).then(response > response.json()).then(data &g…

Python基础知识——字典排序(不断补充)

目录 专栏导读代码1:value是多个字符拼接(含拼接符号)(升序)代码2:value是单个值(升序)代码3:按值排序(升序)代码4:按值排序(降序)总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放…