深度学习项目实践——qq聊天机器人(transformer)(二)配置环境与部署

本文主要是介绍深度学习项目实践——qq聊天机器人(transformer)(二)配置环境与部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

深度学习项目实践——qq聊天机器人(transformer)(二)配置环境与部署

上一节我们讲解了qq聊天的原理和qq机器人的框架以及运行流程,这一节我们来讲怎么配置环境,部署qq机器人。

第一步——配置环境

有关代替qq客户端实现反向websocket连接这一部分内容由于一些原因,我无法在这里具体讲解,我把这部分内容放到了github中我的项目内,请自行查看。

机器人主体——nonebot2

nonebot是一个基于Python的机器人框架,它提供了丰富的插件系统,可以轻松地扩展机器人的功能。nonebot支持多种协议,包括QQ、Telegram、Discord等,因此你可以根据自己的需求选择合适的协议。

部署nonebot2

由于nonebot2对python环境有要求,所以建议使用虚拟环境或者anaconda来部署nonebot2,具体步骤如下:

推荐方法:使用anaconda配置环境

具体anaconda的安装方法可以参考我之前发过的在ubuntu上配置pytorch环境的文章
从官网下载(参考: http://t.csdnimg.cn/5CWjX )

下载地址传送门:

官网首页:https://www.anaconda.com/
官网下载页:https://www.anaconda.com/products/individual#Downloads

直接选择相应的installer即可
下载页面

安装python3.10

在 Ubuntu 中,可以通过 Anaconda 创建一个 Python 3.10 的 Conda 虚拟环境。以下是详细步骤:

  1. 打开终端

    打开你的终端(Terminal)。

  2. 进入conda(如果终端中用户左边没有出现(base))

    使用以下命令进入conda环境

    cd ~
    source anaconda3/bin/activate
    
  3. 创建 Conda 虚拟环境

    使用以下命令创建一个新的虚拟环境,并指定 Python 版本为 3.10:

    conda create -n qqbot python=3.10
    

    其中,qqbot 是你为虚拟环境指定的名字,请记住它,以便以后激活该环境。

  4. 激活虚拟环境

    创建完成后,激活你的虚拟环境:

    conda activate qqbot
    
  5. 安装所需的包(nonebot2)

    我们现在安装nonebot2,使用nonebot脚手架,可以参考nonebot2的官方文档进行安装

    pip install nb-cli
    
  6. 查看虚拟环境列表(可选)

    查看所有的 Conda 虚拟环境可以运行:

    conda env list
    
  7. 退出虚拟环境(可选)

    当完成工作后,可以退出虚拟环境:

    conda deactivate
    

第二步:部署简单的qq机器人

创建nonebot2项目

参考nonebot2的官方文档,使用nonebot脚手架创建一个简单的nonebot2项目

在打开虚拟环境的终端中输入以下命令:

nb create

这一指令将会执行创建项目的流程,你将会看到一些询问:

  • 项目模板
    [?] 选择一个要使用的模板: bootstrap (初学者或用户)

这里我们选择 bootstrap 模板,它是一个简单的项目模板,能够安装商店插件。如果你需要自行编写插件,这里请选择 simple 模板。

  • 项目名称
[?] 项目名称: qqbat

这里我们以 qqbot 为例,作为项目名称。你可以根据自己的需要来命名。

  • 其他选项 请注意,多选项使用空格选中或取消,回车确认。
[?] 要使用哪些驱动器? FastAPI (FastAPI 驱动器)
[?] 要使用哪些适配器? Console (基于终端的交互式适配器)
[?] 立即安装依赖? (Y/n) Yes
[?] 创建虚拟环境? (Y/n) Yes

这里我们选择了创建虚拟环境,nb-cli 在之后的操作中将会自动使用这个虚拟环境。如果你不需要自动创建虚拟环境或者已经创建了其他虚拟环境,nb-cli 将会安装依赖至当前激活的 Python 虚拟环境。

  • 选择内置插件
[?] 要使用哪些内置插件? echo

这里我们选择 echo 插件作为示例。这是一个简单的复读回显插件,可以用于测试你的机器人是否正常运行。

启动nonebot2项目

在命令行中进入项目文件夹,然后输入以下命令启动nonebot2项目:

cd qqbot # 项目名称,进入项目文件夹
nb run

现在应该已经运行起来了你的第一个 NoneBot 项目了!请注意,生成的项目中使用了 FastAPI 驱动器和 Console 适配器,你之后可以自行修改配置或安装其他适配器。但此时的qq机器人并没有登陆qq,也无法与qq进行交互,接下来我们需要在qq配置反向websocket客户端

配置反向websocket客户端

此部分内容由于一些原因无法在此处展示,请查阅github中该项目中这一节的内容(class2.md)

尝试使用

在项目运行起来后,Console 适配器会在你的终端启动交互模式,你可以直接在输入框中输入 /echo hello world 来测试你的机器人是否正常运行。

在这里插入图片描述

这篇关于深度学习项目实践——qq聊天机器人(transformer)(二)配置环境与部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125613

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res