ollama部署本地大模型,Linux以及python调用
导读
环境:oricle Linux 9.4、Windows 11、WSL 2、python 3.12.3、qwen2.5、ollama
背景:工作需要,测试本地部署与线上调用接口使用差别
时间:20241221
说明:本地测试apikey的接口,通过后,再调用部署本地接口
一、本地调用接口
官方文档:阿里云百炼 - 示例代码 - 地址
import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus", # 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}],
)
# print(completion.model_dump_json())
# 此处改为返回ai的响应内容
print(completion.choices[-1].message.content)
响应如下:
(venv) [jack@Laptop-L14-gen4 test_img]$ /home/jack/test_img/venv/bin/python /home/jack/test_img/ollm_test.py
我是阿里云开发的一款超大规模语言模型,我叫通义千问。
二、本地部署大模型
1、Windows 安装 Linux子系统
Windows 安装Linux子系统 配置python3
2、安装ollama
sudo curl -fsSL https://ollama.com/install.sh | sh
开始执行如下图(等待即可):
完成如下图:。。。暂略
3、启动ollama
ollama serve
[jack@Laptop-L14-gen4 ~]$ ollama serve
2024/12/21 18:10:12 routes.go:1259: INFO server config env="map[CUDA_VISIBLE_DEVICES: GPU_DEVICE_ORDINAL: HIP_VISIBLE_DEVICES: HSA_OVERRIDE_GFX_VERSION: HTTPS_PROXY: HTTP_PROXY: NO_PROXY: OLLAMA_DEBUG:false OLLAMA_FLASH_ATTENTION:false OLLAMA_GPU_OVERHEAD:0 OLLAMA_HOST:http://127.0.0.1:11434 OLLAMA_INTEL_GPU:false OLLAMA_KEEP_ALIVE:5m0s OLLAMA_KV_CACHE_TYPE: OLLAMA_LLM_LIBRARY: OLLAMA_LOAD_TIMEOUT:5m0s OLLAMA_MAX_LOADED_MODELS:0 OLLAMA_MAX_QUEUE:512 OLLAMA_MODELS:/home/jack/.ollama/models OLLAMA_MULTIUSER_CACHE:false OLLAMA_NOHISTORY:false OLLAMA_NOPRUNE:false OLLAMA_NUM_PARALLEL:0 OLLAMA_ORIGINS:[http://localhost https://localhost http://localhost:* https://localhost:* http://127.0.0.1 https://127.0.0.1 http://127.0.0.1:* https://127.0.0.1:* http://0.0.0.0 https://0.0.0.0 http://0.0.0.0:* https://0.0.0.0:* app://* file://* tauri://* vscode-webview://*] OLLAMA_SCHED_SPREAD:false ROCR_VISIBLE_DEVICES: http_proxy: https_proxy: no_proxy:]"
time=2024-12-21T18:10:12.248+08:00 level=INFO source=images.go:757 msg="total blobs: 5"
4、运行指定模型
(首次运行,自动下载模型)
命令来源:ollama 官网 命令
[jack@Laptop-L14-gen4 ~]$ ollama run qwen2.5:0.5b
>>> 你是谁?
我是阿里云自主研发的超大规模语言模型,我叫通义千问。我已经知能突破1000亿,可以回答、创作和撰写文字内容,还能提供一些
专业知识解答、音乐、游戏等内容,以及像对话框这样的功能。如果您有任何问题或需要帮助,请随时告诉我!
>>> Send a message (/? for help)
三、python调用本地部署的大模型
运行代码:
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key="ollama",
base_url="http://localhost:11434/v1/",
)
completion = client.chat.completions.create(
model="qwen2.5:0.5b", # 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}],
)
print(completion.choices[-1].message.content)
响应结果
(venv) [jack@Laptop-L14-gen4 test_img]$ /home/jack/test_img/venv/bin/python /home/jack/test_img/ollm_test.py
我是来自阿里云的大规模语言模型,我被称为通义千问。我会根据你的问题生成回答。有什么我能为你服务的吗?
(venv) [jack@Laptop-L14-gen4 test_img]$ /home/jack/test_img/venv/bin/python /home/jack/test_img/ollm_test.py
我是来自阿里云的超大规模语言模型,我叫通义千问。如果您有任何问题或需要任何帮助,请随时告诉我,我将尽力为您提供满意的回答和解决方案。
四、总结
调用apikey和本地部署的区别仅在api_key、base_url、model三个参数有区别