首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

给你的 Discord 接入一个既能联网又能画画的 ChatGPT

如果有这样一款 Discord 机器人,它既能访问互联网,又能绘画,还能给 YouTube 视频提供摘要。最重要的是,它是完全免费的,不需要提供 OpenAI 的 API Key,我就问你香不香?...Discord AI Chatbot 上链接:https://github.com/mishalhossin/Discord-AI-Chatbot 这个机器人是基于 Python 的 discord.py...就是把一群机器的 CPU 和内存看成一个整体,然后给用户提供一个交互界面,用户可以通过这个交互界面来操作所有的资源。 懂 K8s 的玩家可能要说了:这个我懂,K8s 就可以!...因为原仓库没有构建 Docker 镜像,所以我 Fork 该仓库自己构建了镜像,你可以直接用我的镜像,也可以自己构建。 CPU 和内存需要根据应用的实际情况来填写。...自定义机器人语言 将 LANGUAGE 参数设置为 cn,就会使用简体中文。

64610

我的python学习--第十二天(二)

如果第一个except中定义的异常与引发的异常匹配,则执行该except中的语句。 如果引发的异常不匹配第一个except,则会搜索第二个except,允许编写的except数量没有限制。... Exception,e:    # Exception是所有异常类的基类,所有类型的错误信息都会输入到e中     print e 常见异常类型 AttributeError     试图访问一个对象没有的树形...,比如foo.x,但foo没有属性x IOError         输入输出异常;基本是无法打开文件错误 ImportError      无法引入模块或者包;基本上是路径问题或者名称错误 IndentationError...模块的api 1:logging.getLogger([name])   返回一个logger实例,如果没有指定name,返回root logger。...和端口 第一个app:表示包含Flask(__name__)对象的模块或包 第二个app:表示实例化Flask(__name__)对象 -D:表示以守护进程运行 3、通过supervisor,一个专门用来管理进程的工具来管理系统的进程

72420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python:logging 的巧妙设计

    引言 logging 的基本用法网上很多,这里就不介绍了。在引入正文之前,先来看一个需求: 假设需要将某功能封装成类库供他人使用,如何处理类库中的日志?...数年前在一个 C# 开发的项目中,我用了这样的方法:定义一个 logging 基类,所有需要用到日志的类都继承这个基类,这个基类中定义一个 LogHandler 事件,该事件用于实现具体的记录日志动作,...我在之前的博客 Python:logging.NullHandler 的使用 中介绍了 peewee 框架中的日志输出,简单来说就是 peewee 中定义了一个名为peewee 的 Logger 并添加了一个...logging 中定义了一个名为 root 的 Logger 作为所有 Logger 的根节点,root 的 parent 属性为 None。root 是全局的。...当调用 logging.getLogger(name=None) 得到一个 Logger 对象的时候,如果 name 为 None,则返回根节点 root。如果 name 中含有 .

    91330

    python-daemon日志记录的一个

    ("logging.cfg") logger = logging.getLogger('analysis.main') preserve_fds = [handler.stream for...,一开始我以为是multiprocessing导致的,但是当我改成单进程形式也还是同样的问题,折腾了一阵没有找到原因,这个时候就只能静下心来看代码了(哈哈,这个好像一直是我的法宝)。...当我看到with daemon.DaemonContext(files_preserve = preserve_fds)这一行的时候我好像找到了原因,那就是除了files_preserve以外的文件IO...为了验证我的想法,我把analysis.test对应的日志IO也保留,然后再运行就一切OK了,但是此时还没有完全结束,因为我的logging.cfg中配置了上十个的日志文件,我可不想在main中都一个个都过一遍然后再保留...,有没有办法能够把logging.cfg中所有的日志文件都列出来呢?

    50910

    解决AttributeError: DataFrame object has no attribute tolist

    解决AttributeError: 'DataFrame' object has no attribute 'tolist'当我们在处理数据分析或机器学习任务时,经常会使用Pandas库进行数据的处理和操作...因为DataFrame是Pandas库中的一个二维数据结构,它的数据类型和操作方法与列表不同,所以没有直接的​​.tolist()​​方法。 在下面的文章中,我们将讨论如何解决这个错误。...但是,当我们运行这段代码时,会抛出​​AttributeError: 'DataFrame' object has no attribute 'tolist'​​的错误。...通过使用​​.tolist()​​方法,我们将DataFrame对象转换为列表。打印输出的结果是每一行数据作为一个列表,再将所有行的列表组合成一个大的列表。...所以,如果想要得到嵌套列表形式的数据,就需要使用​​.tolist()​​方法。

    1.3K30

    一文教你读懂 Python 中的异常信息

    AttributeError 当你访问一个对象的属性,但是这个属性并没有在这个对象定义的时候,就会引发 AttributeError。...' object has no attribute 'b' AttributeError 的错误消息行告诉我们特定对象类型(在本例中为 int)没有访问的属性, 在这个例子中属性为 b。...有时候为了程序能兼容在各个系统的时候,如果一个包找不到,找另一个的时候,比如在 windows 中不能使用 ujson ,uvloop这两个包,但是在 unix 系统上是可以运行的,这个时候我们就可以使用下面的方法...查看上面的行才能得到问题所在的行,通常会用一个^(插入符号)指向问题点。...你可以通过导入 logging 模块,记录这些错误,最终代码如下 import logging import requests logger = logging.getLogger (__name

    2.6K10

    一份 Python 日志配置,同时适用于开发和生产环境

    在日志方面,我的做法是这样的,既打印到终端,又输出到文件,开发环境的级别是 DEBUG,生产环境是 INFO,我最常用的一份配置文件如下:log.py import logging import os...module> - line:3 - INFO - info 2022-09-21 06:24:26,037 - demo3 - - line:4 - DEBUG - debug 但是每当我需要为不同的环境设置不同的日志级别的时候...添加配置文件,让同一套代码运行在不同的环境 如果要同一套代码既运行在开发环境,又运行在生产环境,那就需要借助于配置文件,我们把日志的级别写在配置文件中,测试环境的配置文件为 DEBUG,生产环境的级别是...配置文件最方面的,要数 dotenv 这个工具,它是个第三方库,使用之前请先 pip install python-dotenv 安装一下,然后在项目目录中创建一个 .env 文件中,写入一下内容: DEBUG....env 文件,上面的代码也可以正常运行,因此你可以引用到自己的项目中。

    34510

    Python开发之日志记录模块:logg

    似乎我再写关于logging的博文有些多余,但不写总结又总觉得没掌握。那就写写吧,也方便日后回顾。...当我们出于开发时debug的目的使用日志时,我们自然是想尽可能详尽得记录日志,但是如果部署到生产环境中,这样做就可能因为大量的IO占用服务器资源,所以在生产环境中就只需要记录异常信息、错误情况等就好了。...上表中的参数format可以通过logging模块中定义好模式来设定值: 字段/属性名称 使用格式 描述 asctime %(asctime)s 将日志的时间构造成可读的形式,默认情况下是‘2019-03...一般而言,大多使用下面的方法获得Logger类实例: logging.getLogger(name) 属性name是为Logger实例指定的名称,如果使用同一个名称进行实例化,则实际上只是将后面实例对象名指向前面的同名...在使用logging模块时,系统会自动实例化一个名为root的日志器(根日志器),当未指定name属性时,事实上就是将变量名指向跟日志器 另外,Logger实例具有层级继承的特点,层级之间已“.”连接,

    1.4K20

    Python学习笔记(八)·错误、调试和测试

    有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。...的好处,它允许你指定记录信息的级别,有debug,info,warning,error等几个级别,当我们指定level=INFO时,logging.debug就不起作用了。...我们来编写一个Dict类,这个类的行为和dict一致,但是可以通过属性来访问,用起来就像下面这样: >>> d = Dict(a=1, b=2) >>> d['a'] 1 >>> d.a 1 mydict.py...以test开头的方法就是测试方法,不以test开头的方法不被认为是测试方法,测试的时候不会被执行。 对每一类测试都需要编写一个test_xxx()方法。...8.3.2 setUp 与 tearDown 可以在单元测试中编写两个特殊的setUp()和tearDown()方法。这两个方法会分别在每调用一个测试方法的前后分别被执行。

    1.3K30

    Python下使用requests库遇到的问题及解决方案

    每一盏灯都有一个故事……当凌晨2点我的房间灯还亮着时,那就是我与BUG的一场生死博弈。一个人静静地坐在电脑前不断地写代码,感觉快要麻木了,好比闭关修炼一样枯燥无味。...最终当我打通任督二脉后,bug修复迎来的一片曙光。一、问题背景在最近的项目中,我使用Python 3.6和DigestAuth进行身份验证时遇到了一个令人困扰的问题。...我发现,在使用requests库时,由于Python 3的一个已知问题(https://bugs.python.org/issue28967),无法将requests对象进行pickle序列化。...__getattribute__(self, name)在NoLocalAuth类的__getattribute__方法中,我们检查属性名称是否以下划线开头,如果是,就会引发AttributeError..._local对象,我们确保了我们的应用程序能够正常运行,并且这种方法也具有一定的通用性,可用于解决类似的问题。希望这篇文章对解决Python 3.6下的pickle问题有所帮助,让您的项目顺利进行!

    26030

    ChatGPT 与 Midjourney 强强联手,让先秦阿房宫重现辉煌!

    要想使用 Midjourney,只能进入他们的 Discord 服务器,并选择其中一个频道然后调用指令,输入 Prompt 提示词即可。 问题就在这里。...如果你明白了,请回复"我准备好了",当我输入中文内容后,请以"/imagine prompt:"作为开头,翻译我需要的英文内容。...机器人的项目:https://github.com/Zero6992/chatGPT-discord-bot 该项目虽然提供了 Dockerfile,但是没有提供构建好的镜像,我提交了自动构建镜像的...不过问题不大,我自己构建了镜像,大家可以先用我的:ghcr.io/yangchuansheng/chatgpt-discord-bot:latest 要想通过容器来运行该项目,首先需要找个能访问 ChatGPT...最终点击「部署应用」,一个崭新的容器就运行成功了: 点击「详情」进入容器详情页面,再点击「日志」就可以看到容器的日志了。

    45420

    11 . Python3之异常,调试和测试

    有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理....异常就是程序运行时发生错误的信号(在程序出现错误时,会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中错误出发的异常如下: 而错误分成两种: 1.语法错误(...常用异常 异常名称 描述 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包...除(或取模)零 (所有数据类型) AssertionError 断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError...什么时候用异常处理 有的同学会这么想,学完了异常处理后,好强大,我要为我的每一段程序都加上try…except,干毛线去思考它会不会有逻辑错误啊,这样就很好啊,多省脑细胞===》2B青年欢乐多

    1.4K40

    Python中的logger和handler到底是个什么鬼

    这里我使用的是每秒生成一个新的日志文件,之后用Crontab在每天0点调度,然后用for循环处理json中的每一个日志文件。...但是奇怪的是,每次运行程序,第一个切割的日志生成一个分割后的文件,而后面的都生成两个新日志。百思不得其解。...虽然这个说法没有什么科学根据,但是还是把TimedRotatingFileHandler中的第三个参数改成了60,即每60秒生成一个文件。完成,静静的等待crontab到时间。 ? 叮!时间到。...我突然想到,logger.addHandler(handler)是每次循环都会运行的,也就是说,logger是同一个logger,添加了4次handler。...至于logging.getLogger()方法获得的root logger和继承关系,可以详见附注的网页,这里我也只是大概明白了什么意思,还没有具体用过。

    1.2K90

    Lombok使用与原理

    Lombok简介 首先 Lombok是一款Java IDE的应用工具插件,一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,比如属性的构造器、getter、setter...@Log4j2 private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger...@JBossLog private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class...api都在com.sun.mirror非标准包下,还有就是没有集成到javac中,需要额外运行。...当然,lombok不支持多种参数构造器的重载,工具毕竟是工具,我感觉并不会有非常完美适合每个人的工具。最后,我个人还是很推荐这款插件的,毕竟我很懒,?。

    80480

    《JavaEE进阶》----15.<Spring Boot 日志>

    通过系统日志分析,可以判断一些非法攻击、非法调用,以及系统处理过程中的安全隐患。 比如运行系统中运营人员在通过页面处理一些数据的时候。如果没有清楚的日志操作记录、一条数据被删除或者修改。...2.使用日志对象打印日志 通过定义一个Logger属性来打印日志。...3.2.2 门面模式的实现 示例:当我们回家,会开各个屋的灯。离开家时,会关闭各个屋的灯。如果家里设置一个总开关来控制整个屋的灯就会很方便。我们使用门面模式来实现。...若不引入日志门面 当我们还没有引入日志门面的时候,常见的日志框架有log4J、logback等。 如果一个项目已经使用了log4j。...这里我们使用yml类型配置,配置代码如下: logging: level: root: debug 重新运行上面的日志级别的打印。debug级别的日志就全部出来了。

    9410

    Python代码调试技巧

    二、原文中讲述了Pycharm以及Eclipse with pydev的调试功能,这两种IDE我都没有用过,我就介绍一下我用的IDE——Eric的调试功能。。。...Level 使用情形 DEBUG 详细的情形,在追踪问题时使用 INFO 正常的信息 WARNING 一些不可预见的问题发生,或者将要发生,如磁盘空间低等,但不影响程序的运行 ERROR 由于某些严重的问题...,程序中的一些功能受到影响 CRITICAL 严重的错误,或者程序本身不能够继续运行 logging lib 包含 4 个主要对象 logger:logger 是程序信息输出的接口。...如果不创建 logger 的实例,则使用默认的 root logger,通过 logging.getLogger() 或者 logging.getLogger("") 得到 root logger 实例...logging 的使用非常简单,同时它是线程安全的,下面结合多线程的例子讲述如何使用 logging 进行 debug。

    97220

    为什么在Python代码中装饰器很重要

    要理解什么是装饰器,您首先需要熟悉Python处理函数的方式。从它的观点来看,函数和对象没有什么不同。...它只接受一个参数,也就是我们要修饰的函数。 在内部,我们定义了另一个函数:logging_wrapper。然后返回logging_wrapper,并使用它来代替原来的修饰函数。...但在返回之前,我们必须完成对函数的计时。这是一个没有装饰者就不可能实现的行为例子。...它类似于普通的装饰器,但却返回一个类。 NewCls有一个自定义的__getattribute__。对于对原始类的所有调用,它将使用logging_decorator装饰函数。...我将列出与我一起工作最多的三个人: @property -一个内置插件的装饰器,它允许你为类属性定义getter和setter。 @lru_cache - functools模块的装饰器。

    77310
    领券