通过Ollama读取模型
通过Ollama读取模型
- 前言
- 一、查看本地Ollama上有哪些模型
- 二、调用bge-m3模型
- 1、调用模型
- 2、使用bge-m3进行相似度比较
- 三、调用大模型
前言
手动下载和加载大模型通常需要复杂的环境配置,而使用Ollama可以避免这一问题。本文将介绍如何调用Ollama上的模型。
一、查看本地Ollama上有哪些模型
ollama list
二、调用bge-m3模型
1、调用模型
import requests
def get_embedding(text, url="http://localhost:11434/api/embeddings", model="bge-m3"):"""获取指定文本的嵌入表示。参数:- text (str): 需要生成嵌入的文本。- url (str): 嵌入服务的API地址。- model (str): 使用的模型名称。返回:- dict: 包含嵌入结果的字典。"""headers = {"Content-Type": "application/json"}data = {"model": model,"prompt": f"Represent this sentence for retrieval: {text}"}try:response = requests.post(url, headers=headers, json=data)response.raise_for_status() # 检查HTTP错误return response.json()['embedding']except requests.exceptions.RequestException as e:print(f"请求错误: {e}")except ValueError as e:print(f"JSON解析错误: {e}")# 示例调用
if __name__ == "__main__":result = get_embedding("什么是人工智能?")if result:print("返回的嵌入结果:")print(result)
2、使用bge-m3进行相似度比较
from bge_m3 import get_embedding
def cosine_similarity(a, b):"""计算两个向量的余弦相似度"""dot_product = sum(ai * bi for ai, bi in zip(a, b))magnitude_a = sum(ai ** 2 for ai in a) ** 0.5magnitude_b = sum(bi ** 2 for bi in b) ** 0.5return dot_product / (magnitude_a * magnitude_b)query = '小明父亲是谁'
document = ['小明的爸爸是小刚','小刚有个儿子叫小明','小明的姐姐是小红','小青的姐姐是许仙']
for doc in document:a = get_embedding(query)b = get_embedding(doc)print(cosine_similarity(a, b))
三、调用大模型
import ollama
response = ollama.chat(model='deepseek-r1:1.5b', messages=[{'role': 'user', 'content': '你是谁'}
])
print(response['message']['content'])
您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。