当前位置: 首页 > article >正文

Ollama python交互:chat+embedding实践

 Ollama简介

Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。

Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等多种自然语言处理任务。

Ollama 的特点在于它不仅仅提供了现成的模型和工具集,还提供了方便的界面和 API,使得从文本生成、对话系统到语义分析等任务都能快速实现。

与其他 NLP 框架不同,Ollama 旨在简化用户的工作流程,使得机器学习不再是只有深度技术背景的开发者才能触及的领域。

Ollama 支持多种硬件加速选项,包括纯 CPU 推理和各类底层计算架构(如 Apple Silicon),能够更好地利用不同类型的硬件资源。

Ollama支持快速部署,见这篇博文:解锁智能未来:用Ollama开启你的本地AI之旅_ollma-CSDN博客

其次Ollama还支持python交互,可以编程实现更复杂的功能。

以下内容就是针对Ollama python库的学习和实践。

安装Ollama python库

直接使用pip安装即可:

pip install ollama

 安装完成:

Installing collected packages: ollama
Successfully installed ollama-0.4.7

下载deepseek-r1:1.5b模型

命令行下载

如果已经安装了Ollama二进制执行文件,比如使用apt 安装了ollama,或者windows下安装了ollama.exe,那么可以使用Ollama 可执行文件在命令行下载模型:

ollama pull deepseek-r1:1.5b
# 或者
ollama run deepseek-r1:1.5b

python交互下载

安装了Ollama python包,则可以在python交互界面下载模型

import ollama
ollama.pull('deepseek-r1:1.5b')

在python中交互执行Ollama deepseek-r1:1.5b chat模型

from ollama import chat
from ollama import ChatResponse

response: ChatResponse = chat(model='deepseek-r1:1.5b', messages=[
  {
    'role': 'user',
    'content': '你是谁?',
  },
])
# 打印响应内容
print(response['message']['content'])

# 或者直接访问响应对象的字段
print(response.message.content)

输出:

<think>

</think>

您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。

选用7b模型

response: ChatResponse = chat(model='deepseek-r1:7b', messages=[
  {
    'role': 'user',
    'content': '你是谁?',
  },
])

当然7b模型需要先下载,比如执行

ollama pull deepseek-r1:7b
# 或者
ollama run deepseek-r1:7b

或者在python交互界面执行

import ollama
ollama.pull('deepseek-r1:7b')

embedding模型nomic-embed-text实践

下载nomic-embed-text模型

命令行下载 

ollama pull nomic-embed-text

python交互下载

import ollama
ollama.pull('nomic-embed-text')

运行python交互

import ollama

ollama.embed(model='nomic-embed-text', input='十万个冷笑话')

生成了一大堆的embedding数据

ollama.embed(model='nomic-embed-text', input='十万个冷笑话')
EmbedResponse(model='nomic-embed-text', created_at=None, done=None, done_reason=None, total_duration=865235300, load_duration=662310000, prompt_eval_count=6, prompt_eval_duration=None, eval_count=None, eval_duration=None, embeddings=[[0.0032348887, 0.041912135, -0.16705535, -0.026766753, -0.012629486, 0.0064461557, 0.018424895, -0.01439241, -0.0031062262, -0.024956603, -0.046768334, 0.05268035, -0.0029782322, -0.042236425, 0.017630735, -0.076924205, 0.030286735, -0.050218526, -0.0016884268, 0.07788876, 0.01743242, 0.035234887, -0.075580835, -0.018911943, 0.10255985, 0.031716064, 0.017934492, 0.024279783, 0.014747469, 0.02837642, 0.029457958, -0.008466907, -0.041746665, 0.02766424, -0.073201664, -0.018298512, 0.021074101, ......

到此实践完成!


http://www.kler.cn/a/536543.html

相关文章:

  • 自动化测试工具selenium的安装踩坑
  • pandas 读取excel数据,以字典形式输出
  • 电脑运行黑屏是什么原因?原因及解决方法
  • C++ 课程学习笔记:从对象生命周期看资源管理之道
  • 链式结构二叉树(递归暴力美学)
  • 禅道社区版项目管理软件部署(记录篇)
  • JMeter通过BeanShell创建CSV文件
  • 【Block总结】PSA,金字塔挤压注意力,解决传统注意力机制在捕获多尺度特征时的局限性
  • Linux 系统无法启动的排查与修复方法
  • Kotlin 循环与函数详解:高效编程指南
  • 亚博microros小车-原生ubuntu支持系列:23 人脸识别追踪
  • [论文笔记] GRPO DPO
  • Kubernetes是什么?为什么它是云原生的基石
  • Amazon Aurora Serverless
  • react面试题三
  • Dockerfile中Alpine镜像设置东八时区
  • ES6 Map 数据结构是用总结
  • 讯飞智作 AI 配音技术浅析(三):自然语言处理
  • Kubernetes与Deepseek
  • 二十四、映射类
  • 如何在Linux上安装Ollama
  • 利用ETL工具进行数据挖掘
  • websocket使用
  • JAVA高级工程师-面试经历(含面试问题及解答)
  • k8s节点维护注意事项
  • CVE-2024-13025-Codezips 大学管理系统 faculty.php sql 注入分析及拓展