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

赣州北京网站建设/排名第一的助勃药

赣州北京网站建设,排名第一的助勃药,公务员 做网站 违法,中国建设局网站招聘文章目录 基于Ollama平台部署的Qwen大模型实现聊天机器人1 概述2 技术栈2.1 开发技术2.2 环境 3 技术架构4 实现步骤4.1 环境搭建4.1.1 WSL配置及Ubuntu安装4.1.2 Ollama安装及模型部署 4.2 模块安装4.2.1 安装Streamlit 1.42.24.2.2 安装requests 2.32.34.2.3 安装ollama 0.4.…

文章目录

  • 基于Ollama平台部署的Qwen大模型实现聊天机器人
  • 1 概述
  • 2 技术栈
    • 2.1 开发技术
    • 2.2 环境
  • 3 技术架构
  • 4 实现步骤
    • 4.1 环境搭建
      • 4.1.1 WSL配置及Ubuntu安装
      • 4.1.2 Ollama安装及模型部署
    • 4.2 模块安装
      • 4.2.1 安装Streamlit 1.42.2
      • 4.2.2 安装requests 2.32.3
      • 4.2.3 安装ollama 0.4.7
    • 4.3 后端实现
    • 4.4 前端访问
    • 4.5 实现效果
  • 5 通过curl命令行工具进行访问
    • 5.1 /api/chat 聊天对话接口案例

基于Ollama平台部署的Qwen大模型实现聊天机器人

1 概述

本案例旨在构建一个基于Python的交互式系统,前端通过Streamlit框架实现简洁易用的用户界面,后端基于Ollama平台部署Qwen模型,提供自然语言处理(NLP)能力。用户可以通过前端界面与Qwen模型进行交互,获取模型的响应结果。

2 技术栈

2.1 开发技术

  • 前端:Streamlit 1.42.2(轻量级Web应用框架)
  • 后端:Ollama 0.5.12(模型部署平台)
  • 模型:Qwen2:0.5b(自然语言处理模型)
  • 编程语言:Python 3.12.8
  • 模块:requests 2.32.3、ollama 0.4.7
  • 开发工具:PyCharm

说明:
安装requests 2.32.3、ollama 0.4.7,只是为了演示两种访问方式,开发场景中,只要实现其中之一。

2.2 环境

  • 系统:Ubuntu 24.04.2 LTS
  • 系统服务:WSL 2.4.11.0

说明:
Windows Subsystem for Linux(简称WSL)是一个在Windows 10\11上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,不用进行任何修改,也无需承担传统虚拟机或双启动设置的费用。

3 技术架构

4 实现步骤

4.1 环境搭建

4.1.1 WSL配置及Ubuntu安装

WSL配置以及Ubuntu系统安装,可参考文章WSL安装及问题https://blog.csdn.net/mh942408056/article/details/145053974

注意:
如果不准备在Liunx中安装Ollama,可省略此步骤,Ollama同时支持Windows安装。

4.1.2 Ollama安装及模型部署

Ollama安装以及模型的部署,可参考文章Ollama安装与使用https://blog.csdn.net/mh942408056/article/details/146038905

注意:
如果Windows中安装Ollama,请去Ollama官网下载Windows版本。

4.2 模块安装

4.2.1 安装Streamlit 1.42.2

pip install streamlit

说明:
Steamlit帮助文档地址为:https://docs.streamlit.io/

4.2.2 安装requests 2.32.3

pip install requests

说明:
通过requests模块实现远程调用接口访问Ollama中的大模型。

4.2.3 安装ollama 0.4.7

pip install ollama

说明:
通过ollama模块实现本地调用接口访问Ollama中的大模型。

4.3 后端实现

注意

  • 使用Ollama加载Qwen模型(如 ollama run qwen2:0.5b)。
  • 确保API服务可用(默认地址为 http://localhost:11434/api/chat)。
import ollama
import requests
import jsondef get_response(prompt):"""调用ollama聊天接口,并返回结果(方式一:本地访问):param prompt: 历史对话、提示词:return:执行结果"""# 获取最后50个会话信息传送给模型,模型会根据上下文回答最后一个问题response = ollama.chat(model='qwen2:0.5b', messages=prompt[-50:], stream=False)return response['message']['content']def get_response_requests(url, prompt):"""调用ollama聊天接口,并返回结果(方式二:远程访问):param url: 访问的接口:param prompt: 历史对话、提示词:return: 执行结果"""# 1 定义请求头headers = {"Content-Type": "application/json"}# 2 请求并返回结果response = requests.post(url, headers=headers, data=json.dumps(prompt))# 3 判断返回结果状态if response.status_code == 200:# 3.1 将文本转换成字典msg = json.loads(response.text)# 3.2 返回消息return msg["message"]["content"]else:return response.status_code, response.textif __name__ == '__main__':# 提示词prompt = '学习streamlit的注意事项'# 组装接口消息内容prompt_list = [{'role': 'user', 'content': prompt}]# # 通过ollama模块访问Ollama平台中的大模型# response = get_response(prompt_list)# 通过requests模块访问Ollama平台中的大模型response = get_response_requests('http://localhost:11434/api/chat', {'model': 'qwen2:0.5b', 'messages': prompt_list,'stream':False})print(response)

4.4 前端访问

import streamlit as st
import chat_utils# 1 页面配置
st.set_page_config(page_title='智聊机器人',  # 页面标题page_icon=':pirate_flag:',  # 页面图标initial_sidebar_state='expanded',  # 初始状态侧边栏menu_items={'Get Help': 'https://www.csdn.net/','Report a Bug': None,'About': "# 智聊机器人",}
)# 2 主界面主标题
st.title('智聊机器人')# 3 判断聊天记录是否存在会话状态中
if 'messages' not in st.session_state: # 3.1 增加欢迎语st.session_state['messages'] = [{'role': 'assistant', 'content': '你好,我是智聊机器人,有什么可以帮助您的吗? 	:santa:'}]# 4 循环遍历会话状态中的消息
for message in st.session_state.messages:# 4.1 按角色将消息输出到页面with st.chat_message(message['role']):# 4.1.1 输出消息st.markdown(message['content'])# 5.创建一个会话框
prompt = st.chat_input('请输入您要咨询的问题:')
# 6.判断是否有新的消息
if prompt:# 6.1 将消息追加到会话状态中st.session_state['messages'].append({'role': 'user', 'content': prompt})# 6.2 输出会话消息st.chat_message('user').markdown(prompt)# 7 增加旋转等待组件with st.spinner(':hourglass: AI小助手正在思考中...'):# 7.1 调用Ollama聊天接口,并接收返回结果content = chat_utils.get_response(st.session_state['messages'])# 8 记录assistant返回的消息st.session_state['messages'].append({'role': 'assistant', 'content': content})# 9 将返回消息输出到页面st.chat_message('assistant').markdown(content)

4.5 实现效果

在这里插入图片描述

5 通过curl命令行工具进行访问

如果只是简单访问,而不用开发代码,可通过ollama run 模型名称:标签curl实现快速访问。

  • ollama访问方式参考文章Ollama安装与使用https://blog.csdn.net/mh942408056/article/details/146038905。
  • curl访问方式可参考官网APIhttps://github.com/ollama/ollama/blob/main/docs/api.md

5.1 /api/chat 聊天对话接口案例

curl http://localhost:11434/api/chat -d "{\"model\": \"qwen2:0.5b\",\"messages\": [ {\"role\": \"user\",\"content\": \"天空为何这么蓝?\"}]}"

注意:
\用于转义引号,如果不带,将无法访问。

相关文章:

基于Ollama平台部署的Qwen大模型实现聊天机器人

文章目录 基于Ollama平台部署的Qwen大模型实现聊天机器人1 概述2 技术栈2.1 开发技术2.2 环境 3 技术架构4 实现步骤4.1 环境搭建4.1.1 WSL配置及Ubuntu安装4.1.2 Ollama安装及模型部署 4.2 模块安装4.2.1 安装Streamlit 1.42.24.2.2 安装requests 2.32.34.2.3 安装ollama 0.4.…...

在 JDK 1.8 的 ConcurrentHashMap 中,为什么存在两种插入方式?

在 JDK 1.8 的 ConcurrentHashMap 中,之所以对“容器为空”和“计算位置为空”采取不同的处理方式,主要是因为 并发场景下的性能优化和并发安全保证。我们可以分开来看这两种情况: 1. 容器为空时,使用 volatile CAS 初始化 原因…...

如何让powershell的界面变成全屏显示?

刚打开powershell,原来的样子: 全屏:可以按一下键盘上的alt enter 键,效果:...

语音识别踩坑记录

本来想在原来的语音识别的基础上增加本地扩展本地词典, 采用的语音识别是Vosk识别器,模型是 vosk-model-small-cn-0.22 // 初始化Vosk识别器 if (recognizer null) {using (Model model new Model(modelPath)){string grammar "{""…...

图片查看器:用PyQt5实现本地图片预览工具

通过python代码,基于PyQt5实现本地图片预览查看工具。 我们对窗口进行了圆角设计,图片的翻页按钮半透明处理,当鼠标移动至按钮上的动画效果,当选择某一张图片,进行左右翻页则轮播同目录所有支持的图片格式。 import …...

Deepin通过二进制方式升级部署高版本 Docker

一、背景: 在Deepin系统中通过二进制方式升级部署高版本 Docker,下面将详细介绍二进制方式升级部署高版本 Docker 的具体步骤。 二、操作步骤 1.根据需求下载二进制文件,下载地址如下: https://mirrors.tuna.tsinghua.e…...

车架号VIN查询 API 接口用JAVA如何调用?

以下是车架号VIN查询 API 接口用JAVA如何调用的示例代码: package com.shuxun.data.impl.demo;import com.shuxun.common.core.util.HttpUtil; import org.apache.commons.codec.digest.DigestUtils;import java.util.HashMap; import java.util.Map;public class …...

Vulnhub 靶机 VulnOSv2 write up opendocman cms 32075 sql注入 账号密码 ssh连接 37292.c 脏牛提权

Vulnhub 靶机 VulnOSv2 write up opendocman cms 32075 sql注入 账号密码 ssh连接 37292.c 脏牛提权 一、信息收集 1、首先拿到靶场先扫一下ip arp-scan -l 3、 2、指纹扫描 nmap -sS -sV 192.168.66.178nmap -p- -sV -A 192.168.66.253 PORT STATE SERVICE VERSION 22…...

爬虫的精准识别:基于 User-Agent 的正则实现

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...

Python数据分析之数据可视化

Python 数据分析重点知识点 本系列不同其他的知识点讲解,力求通过例子让新同学学习用法,帮助老同学快速回忆知识点 可视化系列: Python基础数据分析工具数据处理与分析数据可视化机器学习基础 四、数据可视化 图表类型与选择 根据数据特…...

【免费】2004-2020年各省货运量数据

2004-2020年各省货运量数据 1、时间:2004-2020年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区、年份、货运量(万吨) 4、范围:31省 5、指标解释:货运量指在一定时期内,各种运输工具实际运…...

【CXX】6.6 UniquePtr<T> — std::unique_ptr<T>

std::unique_ptr 的 Rust 绑定称为 UniquePtr。有关 Rust API 的文档&#xff0c;请参见链接。 限制&#xff1a; 目前仅支持 std::unique_ptr<T, std::default_delete>。未来可能会支持自定义删除器。 UniquePtr 不支持 T 为不透明的 Rust 类型。对于在语言边界传递不…...

Java 集合框架大师课:集合框架源码解剖室(五)

&#x1f525;Java 集合框架大师课&#xff1a;集合框架源码解剖室&#xff08;五&#xff09; &#x1f4a3; 警告&#xff1a;本章包含大量 裸码级硬核分析&#xff0c;建议搭配咖啡因饮料阅读&#xff01;☕️ 第一章 ArrayList 的扩容玄学 1.1 动态扩容核心代码大卸八块 …...

llamafactory 微调教程

文章目录 llamlafactory微调deepseekr1-0.5b1.1 说明1.2 搭建环境创建GPU实例连接实例部署llama_factory创建隧道&#xff0c;配置端口转发访问llama_factory 1.3 微调大模型从huggingface上下载基座模型查看模型是否下载成功准备数据集微调评估微调效果导出合并后的模型 释放实…...

代码随想录|二叉树|04二叉树的统一迭代法

一刷我这里放了。。。 代码随想录...

【教学类-43-25】20240311 数独3宫格的所有可能(图片版 12套样式,空1格-空8格,每套510张,共6120小图)

背景需求&#xff1a; 有一位客户买3宫格所有可能&#xff08;WORD表格版&#xff09; 【教学类-43-25】20241203 数独3宫格的所有可能-使用模版替换-用时少报错少&#xff08;12套样式&#xff0c;空1格-空8格&#xff0c;每套510张&#xff0c;共6120小图&#xff09;_数独三…...

Manus AI:多语言手写识别的技术革命与未来图景

摘要&#xff1a;在全球化浪潮下&#xff0c;跨语言沟通的需求日益迫切&#xff0c;但手写文字的多样性却成为技术突破的难点。Manus AI凭借其多语言手写识别技术&#xff0c;将潦草笔迹转化为精准数字文本&#xff0c;覆盖全球超百种语言。本文从技术原理、应用场景、行业价值…...

领域驱动设计(DDD)是什么?

领域驱动设计&#xff08;DDD&#xff09;是什么&#xff1f; 在软件开发的世界里&#xff0c;我们总在寻找那把打开业务之门的钥匙。有人迷恋MVC的简洁&#xff0c;有人追逐微服务的潮流&#xff0c;而DDD&#xff08;领域驱动设计&#xff09;则像一位沉默的智者&#xff0c;…...

JavaScript 模块 vs C# 类:封装逻辑的两种哲学

引言 在现代软件开发中&#xff0c;模块化和面向对象设计是代码组织的核心课题。本文通过对比 JavaScript 模块&#xff08;ES6 Module&#xff09;与 C# 类&#xff08;Class&#xff09;的实现方式&#xff0c;探讨两种语言在封装逻辑时的不同哲学&#xff0c;并给出实际应用…...

2.2 企业级ESLint/Prettier规则定制

文章目录 1. 为什么需要企业级代码规范2. 工具选型对比3. 完整配置流程3.1 项目初始化3.2 ESLint深度配置3.3 Prettier精细配置3.4 解决规则冲突4. 高级定制方案4.1 自定义ESLint规则4.2 扩展Prettier插件5. 团队协作策略5.1 配置共享方案5.2 版本控制策略6. CI/CD集成7. 常见问…...

Linux学习(十五)(故障排除(ICMP,Ping,Traceroute,网络统计,数据包分析))

故障排除是任何 Linux 用户或管理员的基本技能。这涉及识别和解决 Linux 系统中的问题。这些问题的范围包括常见的系统错误、硬件或软件问题、网络连接问题以及系统资源的管理。Linux 中的故障排除过程通常涉及使用命令行工具、检查系统和应用程序日志文件、了解系统进程&#…...

DeepIn Wps 字体缺失问题

系统缺失字体 Symbol 、Wingdings 、Wingdings2、Wingdings3、MT—extra 字体问题 问了下DeepSeek 在应用商店安装或者在windows 里面找 装了一个GB-18030 还是不行 在windows里面复制了缺失的字体 将字体复制到DeepIn 的字体目录&#xff08;Ubuntu 应该也是这个目录&am…...

(二分 数学推导 统计公平数对的数目)leetcode 2563

数学推导&#xff1a; lower < nums[i] nums[j] < upper且0 < i < j < n 则lower-nums[j]<nums[i]<upper-nums[j] 找到这个范围的nums[i]的个数就是我们要的值 所以枚举j 在0--&#xff08;j-1&#xff09;的范围内 找到第一个大于等于lower-nums[j]…...

临界比例法PID调整-附带pidtune工具和GA算法

代码已上传&#xff1a;计算机控制系统PID参数整定法资源-CSDN文库 1背景 为了模拟PID参数整定&#xff0c;把教材上的案例进行分析。 1题目 单位闭环传递函数&#xff0c;开环传函G(s)1/((s1)(s2)), Ts0.1s, PID调整器输出后&#xff0c;接零阶保持器ZOH。 2 代码 PID含积…...

LabVIEW基于双通道FFT共轭相乘的噪声抑制

对于双通道采集的含噪信号&#xff0c;通过FFT获取复数频谱后&#xff0c;对第二通道频谱取共轭并与第一通道频谱相乘&#xff0c;理论上可增强相关信号成分并抑制非相关噪声。此方法适用于通道间信号高度相关、噪声独立的场景&#xff08;如共模干扰抑制&#xff09;。以下为L…...

小程序SSL证书过期怎么办?

SSL证书就像小程序的“安全锁”&#xff0c;一旦过期&#xff0c;用户访问时会被提示“不安全”&#xff0c;轻则流失客户&#xff0c;重则数据泄露&#xff01;作为企业负责人&#xff0c;如何快速解决证书过期问题&#xff1f;又该如何避免再次踩坑&#xff1f;这篇指南给你答…...

ELK日志分析实战

ELK日志分析实战&#xff1a;从异常流量定位提权攻击 摘要&#xff1a;本文通过模拟真实攻防场景&#xff0c;结合ELK技术栈&#xff08;ElasticsearchLogstashKibana&#xff09;&#xff0c;演示如何从海量服务器日志中快速定位异常流量并追踪提权攻击行为。包含完整的日志收…...

阿里云操作系统控制台实战评测:提升云资源管理与监控效率

文章目录 前言产品介绍操作系统控制台体验阿里云操作系统开通 帮助与总结建议 前言 随着云计算和虚拟化技术的发展&#xff0c;操作系统控制台作为运维管理的核心工具之一&#xff0c;在现代IT环境中发挥着越来越重要的作用。它提供了一种更加直观、高效的方式来管理操作系统&…...

Docker构建启动jar包

Docker构建启动jar包 1、首先是把java服务打包成jar包 mvn clean install -Dmaven.skip.testtrue package -Pprod这个命令的意思是&#xff0c;跳过测试&#xff0c;打包prod环境。 2、编写Dockerfile文件 # 拉取jdk8作为基础镜像 FROM registry.supos.ai/library/openjdk:…...

微信小程序使用的SSL证书在哪里申请?

在数字化时代&#xff0c;微信小程序已成为众多企业和个人开发者触达用户的重要平台。然而&#xff0c;随着网络安全威胁的日益严峻&#xff0c;确保小程序数据传输的安全性显得尤为重要。SSL证书&#xff0c;作为加密通信的基石&#xff0c;是保障小程序安全不可或缺的一环。 …...