Ollama实现deepseek本地部署

Ollama实现deepseek本地部署

  • 1.Ollama下载与安装
  • 2.ollama获取模型并部署
    • 2.1 使用ollama pull
    • 2.2 通过ollama create 创建自定义模型
    • 2.3 本地运行
  • 3.使用streamlit实现网页版RAG部署
    • 3.1 加载相关包
    • 3.2 文档上传、加载与切块
    • 3.3 初始化向量存储
    • 3.4 初始化向量存储
    • 3.5 加载模型,构建chain
    • 3.6 对话框中输入文本,实现网页问答。
  • 参考文献

1.Ollama下载与安装

可通过Ollama官方网站 下载Ollama

退出Ollama,参考Ollama-Windows安装Ollama 进行配置。

主要为自定义models默认文件夹:

打开「系统环境变量」,新建一个系统变量OLLAMA_MODELS ,然后设置ollama模型的存储路径。
在这里插入图片描述
cmd中输入ollama,验证是否安装成功。
在这里插入图片描述

2.ollama获取模型并部署

deepseek-r1:1.5b为例。

获取模型可以通过2.1或者2.2实现。

2.1 使用ollama pull

ollama pull deepseek-r1:1.5b

2.2 通过ollama create 创建自定义模型

以从魔塔社区下载DeepSeek-R1-Distill-Qwen-1.5B-Q8_0.gguf为例。

参考【Ollama入门指南】在本地运行大模型,我们应该怎么做 以及 如何用Ollama直接加载官网没有的本地大模型:

创建一个配置文件Modelfile

FROM E:\LLM\ollama\models\DeepSeek-R1-Distill-Qwen-1.5B-Q8_0.ggufTEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>{{ end }}<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""
PARAMETER stop "<|im_start|>"
PARAMETER stop "<|im_end|>"

使用命令创建一个自定义的模型(注意ModelFile的相对路径和绝对路径):

ollama create DeepSeek-R1-Distill-Qwen-1.5B-Q8_0 -f Modelfile

使用ollama list查看模型。

在这里插入图片描述

2.3 本地运行

ollama run deepseek-r1:1.5b 

3.使用streamlit实现网页版RAG部署

参考 手把手带你用DeepSeek-R1和Ollama搭建本地应用,一文搞定! 以及 Build a RAG System with DeepSeek R1 & Ollama,实现streamlit网页版RAG部署。

3.1 加载相关包

import streamlit as st
from langchain_community.document_loaders import PDFPlumberLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_chroma import Chroma
from langchain_ollama import OllamaEmbeddingsfrom langchain_ollama import ChatOllama
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplatefrom langchain_core.runnables import RunnablePassthroughimport chromadb.api
chromadb.api.client.SharedSystemClient.clear_system_cache()

3.2 文档上传、加载与切块

# Streamlit file uploader
docs = None
uploaded_file = st.file_uploader("Upload a PDF file", type="pdf")
if uploaded_file:# Save PDF temporarilywith open("temp.pdf", "wb") as f:f.write(uploaded_file.getvalue())# Load PDF textloader = PDFPlumberLoader("temp.pdf")docs = loader.load()
if docs:text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=0)all_splits = text_splitter.split_documents(docs)

3.3 初始化向量存储

    local_embeddings = OllamaEmbeddings(model="nomic-embed-text")vectorstore = Chroma.from_documents(documents=all_splits, embedding=local_embeddings)

3.4 初始化向量存储

    local_embeddings = OllamaEmbeddings(model="nomic-embed-text")vectorstore = Chroma.from_documents(documents=all_splits, embedding=local_embeddings)

3.5 加载模型,构建chain

    model = ChatOllama(model="deepseek-r1:1.5b",)# 将传入的文档转换成字符串的形式def format_docs(docs):return "\n\n".join(doc.page_content for doc in docs)#%% retriever # Craft the prompt templateRAG_TEMPLATE = """You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question. If you don't know the answer, just say that you don't know. Use three sentences maximum and keep the answer concise.<context>{context}</context>Answer the following question:{question}"""rag_prompt = ChatPromptTemplate.from_template(RAG_TEMPLATE)retriever = vectorstore.as_retriever()qa_chain = ({"context": retriever | format_docs, "question": RunnablePassthrough()}| rag_prompt| model| StrOutputParser())

3.6 对话框中输入文本,实现网页问答。

    #%%  Launch the Web Interface# Streamlit UIuser_input = st.text_input("Ask your PDF a question:")if user_input:with st.spinner("Thinking..."):response = qa_chain.invoke(user_input)  # qa(user_input)["result"]st.write(response)

效果如下:
在这里插入图片描述

参考文献

[1] Ollama-Windows安装Ollama
[2] 【Ollama入门指南】在本地运行大模型,我们应该怎么做?
[3] 如何用Ollama直接加载官网没有的本地大模型
[4] 魔塔社区
[5] 手把手带你用DeepSeek-R1和Ollama搭建本地应用,一文搞定!
[6] Build a RAG System with DeepSeek R1 & Ollama
[7] handy-ollama/notebook/C7/DeepSeek_R1_RAG/使用 DeepSeek R1 和 Ollama 实现本地 RAG 应用.ipynb

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15007.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django开发入门 – 0.Django基本介绍

Django开发入门 – 0.Django基本介绍 A Brief Introduction to django By JacksonML 1. Django简介 1) 什么是Django? 依据其官网的一段解释&#xff1a; Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. …

苍穹外卖-新增菜品(阿里云OSS文件上传mybatis主键返回批量保存口味表数据)

新增菜品 2.1 需求分析与设计 2.1.1 产品原型 后台系统中可以管理菜品信息&#xff0c;通过 新增功能来添加一个新的菜品&#xff0c;在添加菜品时需要选择当前菜品所属的菜品分类&#xff0c;并且需要上传菜品图片。 新增菜品原型&#xff1a; 当填写完表单信息, 点击&quo…

只需两步,使用ollama即可在本地部署DeepSeek等常见的AI大模型

只需两步&#xff0c;使用ollama即可在本地部署DeepSeek等常见的AI大模型 1.下载ollama,进入ollama官网即可将ollama下载到本地&#xff0c;之后按照提示安装ollama。 https://ollama.com/download/windows 2.安装大模型 进入ollama官网模型页面&#xff0c;找到所需的模型及版…

java基础语法中阶

一、面向对象 补充快捷键&#xff1a;alt鼠标左键&#xff0c;实现同时多行选中相同位置的内容。 1.类与对象 2.封装 3.构造方法 altinsert添加构造方法 4.内存分布 对象 类型 this关键字的使用 成员变量与局部变量 %s是占位符 ,ctrlaltv-补全对象 for循环的快速生成方…

DeepSeek 评价开源框架存在幻觉么?

DeepSeek 横空出世 2025 年&#xff0c;DeepSeek 以「价格屠夫」姿态将 API 成本降至新低&#xff08;输入 0.1 元/百万 tokens&#xff0c;输出 2 元/百万 tokens9&#xff09;霸榜了 AI 热搜。 AI 生成内容中最让人关注的就是回答内容是否存在 “幻觉”&#xff0c;我们不希望…

【大模型】硅基流动对接DeepSeek使用详解

目录 一、前言 二、硅基流动介绍 2.1 硅基流动平台介绍 2.1.1 平台是做什么的 2.2 主要特点与功能 2.2.1 适用场景 三、硅基流动快速使用 3.1 账户注册 3.2 token获取 3.2.1 获取token技巧 四、Cherry-Studio对接DeepSeek 4.1 获取 Cherry-Studio 4.2 Cherry-Stud…

DeepSeek之Win10系统部署教程

一、下载并安装Ollama 1、为什么要安装Ollama的呢&#xff1f; Ollama 是一个用于本地部署和管理大型语言模型&#xff08;LLM&#xff09;的工具&#xff0c;支持多种模型格式和框架。 它可以帮助用户轻松下载、配置和运行模型&#xff0c;同时提供统一的接口和依赖管理。 …

DeepSeek-r1和O1、O3mini谁更强?

DeepSeek-r1和O1、O3mini谁更强&#xff1f; 题目&#xff1a;编写一个 js 程序&#xff0c;显示一个球在旋转的六边形内弹跳。球应该受到重力和摩擦力的影响&#xff0c;并且必须逼真地从旋转的墙壁上弹起 DeepSeek-r1 <!DOCTYPE html> <html> <body> &l…

我用AI做数据分析之数据清洗

我用AI做数据分析之数据清洗 AI与数据分析的融合效果怎样&#xff1f; 这里描述自己在使用AI进行数据分析&#xff08;数据清洗&#xff09;过程中的几个小故事&#xff1a; 1. 变量名的翻译 有一个项目是某医生自己收集的数据&#xff0c;变量名使用的是中文&#xff0c;分…

如何搭建DeepSeek R1的训推环境?

本篇文章主要介绍基于Linux系统的Tesla A30 GPU的硬件环境搭建深度学习环境&#xff0c;为训练和推理DeepSeek R1 提供必要的环境&#xff0c;篇幅最后也会介绍到MIG的一些常见报错解决方案。 Anaconda安装 进入 https://www.anaconda.com/download/success 选择Linux安装包。…

模型压缩 --学习记录2

模型压缩 --学习记录2 如何找到更好的权衡方式(模型量化)方法一:寻找更好的 range方法二:寻找更好的 X-fp32(浮点数)方法三:寻找更好的 scale 和 zp方法四:寻找更好的 roundPTQ 后训练量化(离线量化)QAT 量化感知训练(在线量化)量化为什么会带来加速?三、模型稀疏技…

Unity3D仿星露谷物语开发28之切换场景

1、目标 Player可以在Scene1_Farm和Scene2_Field之间自动切换。通过Trigger实现该功能。同时创建一个预设体绑定该功能&#xff0c;这样可以把预设体放到任何场景中&#xff0c;通过配置即可实现Player在Scene之间的自由切换。 2、创建场景切换的工具对象 在Hierarchy中&…

Maven插件—flatten-maven-plugin:工程模块统一版本依赖

文章目录 前言一、认识flatten-maven-plugin插件二、如何使用flatten-maven-plugin插件&#xff1f;未使用flatten-maven-plugin插件之前的情况描述配置flatten-maven-plugin插件步骤1&#xff1a;最外层父模块安装插件&配置版本变量步骤2&#xff1a;各个自模块使用版本使…

并查集题目

并查集题目 聚合一块&#xff08;蓝桥&#xff09;合根植物&#xff08;蓝桥&#xff09;等式方程的可满足性省份数量 并查集&#xff08;Union-Find&#xff09;算法是一个专门针对「动态连通性」的算法。双方向的连通。 模板&#xff1a; class UF {// 连通分量个数private …

【玩转 Postman 接口测试与开发2_019】第15章:利用 Postman 初探 API 性能测试(含实战截图)

《API Testing and Development with Postman》最新第二版封面 文章目录 第十五章 API 接口性能测试1 性能负载的类型2 Postman 负载配置3 Postman 性能测试实战3.1 Fixed 型负载下的性能测试3.2 基于数据驱动的 Postman 接口性能测试 4 性能测试的注意事项 写在前面 终于来到了…

Linux(20)——调度作业

目录 一、调度延迟的用户作业&#xff1a; 1、延迟的用户作业&#xff1a; 2、查看延迟的用户作业&#xff1a; 3、从计划中删除作业&#xff1a; 二、调度周期性用户作业&#xff1a; 1、周期性用户作业&#xff1a; 2、调度周期性用户作业&#xff1a; 3、用户作业格…

在 Visual Studio Code 与微信开发者工具中调试使用 emscripten 基于 C 生成的 WASM 代码

最近在尝试将一些 C/C、Lua 项目挪到 Web 上跑, 接触到了 emscripten. 这里会介绍下在 Visual Studio Code 与微信开发者工具中调试使用 emscripten 基于 C 生成的 WASM 代码 (WebAssembly) 的一些方法. Emscripten 与 WebAssebmly WebAssembly 是一种新的编码方式, 可以在现代…

deepseek API开发简介

1、申请deepseek api key&#xff1a; https://platform.deepseek.com/api_keys创建API Key&#xff0c;并复制Key 2、安装python、pip&#xff0c;然后安装requests pip install requests3、.示例代码 import requests import json# DeepSeek API 地址 API_URL "ht…

uniapp开发微信小程序请求超时设置【亲测有效】

在Hbuilderx中 使用uniapp开发微信小程序时 封装请求方法 请求代码如下 function requestFun(app) {// get请求app.config.globalProperties._get function(path, data, success, fail, complete) {data data || {};data.token uni.getStorageSync(token) || ;uni.request…

【03】 区块链分布式网络

3-1 P2P网络 传统中心化网络由中央服务器保存全量数据。客户端之间无法直接连接&#xff0c;必须通过中央服务器作为桥梁。客户端必须和中央服务器建立连接后访问资源。客户端之间并无连通。 在P2P网络中通过将数据资源分散在网络各个节点中存储以及节点间交互连接&#xff0…