Ollama在Windows安装,使用,简单调用API
一、安装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()
输出的结果如下图(应该是模型或者什么原因,反复提问的话,回复会有差别,我选取其中一个)