深度学习项目实践——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

相关文章

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

springboot中配置logback-spring.xml的方法

《springboot中配置logback-spring.xml的方法》文章介绍了如何在SpringBoot项目中配置logback-spring.xml文件来进行日志管理,包括如何定义日志输出方式、... 目录一、在src/main/resources目录下,也就是在classpath路径下创建logba

解决idea启动项目报错java: OutOfMemoryError: insufficient memory

《解决idea启动项目报错java:OutOfMemoryError:insufficientmemory》:本文主要介绍解决idea启动项目报错java:OutOfMemoryError... 目录原因:解决:总结 原因:在Java中遇到OutOfMemoryError: insufficient me

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻