一个具有异步功能的用于python的cleverbot api包装器。

cleverbot.p的Python项目详细描述


py是一个用于python的cleverbot api包装器,可以同时使用 功能齐全,使用方便。

示例

importcleverbotcb=cleverbot.Cleverbot('YOUR_API_KEY',timeout=60)text=input("Say to Cleverbot: ")try:reply=cb.say(text)exceptcleverbot.CleverbotErroraserror:print(error)else:print(reply)finally:cb.close()

安装

PyPI正常安装 管道:

pip install cleverbot.py

或者使用异步依赖项(仅限python 3.4.2+)安装它:

pip install cleverbot.py[async]

要求:

依赖项:

  • 请求1.0.0+
  • 异步:
    • aiohttp 1.0.0+

用法

首先导入包:

importcleverbot

如果您有异步依赖项并希望使用cleverbot 异步导入,如下所示:

fromcleverbotimportasync_ascleverbot

然后用api密钥和cleverbot状态初始化cleverbot, 如果您想调整克利夫波特的情绪,请超时或调整:

cb=cleverbot.Cleverbot('YOUR_API_KEY',cs='76nxdxIJ02AAA',timeout=60,tweak1=0,tweak2=100,tweak3=100)

cleverbot状态是您从中获得的会话的编码状态 与克利夫伯特交谈,包括整个谈话历史。

如果您异步使用cleverbot,还可以为 带loop关键字参数的Cleverbot


你现在可以开始和克利夫波特说话了。

直接与克利夫波特交谈:

reply=cb.say("Hello")

您可以将关键字参数传递给Cleverbot.say,例如cs来更改 会话,vtext以更改当前会话的历史记录,或 甚至tweak作为cb_settings_tweak的别名来更改Cleverbot的 心情。有关详细信息,请阅读the official Cleverbot API docs的“参数”部分。

或者,开始一段新的对话并从中交谈:

convo=cb.conversation()reply=convo.say("Hello")

对话就像迷你克里夫博特,所以你可以把任何 cleverbot接受包括key在内的关键字参数。你没有的价值观 不包括Cleverbot状态的传入将从 克利夫波特。

如果你想更方便地管理你的对话,你可以输入一个名字作为 你创造的每一次谈话的第一个论点 Cleverbot.conversations放入以名称为键和 以对话为价值。尝试混合命名和不命名的对话 会导致错误。

Cleverbot.sayConversation.say如果您正在运行 异步的。


如果请求出错,例如无效的api密钥 APIError将被引发,其中包含错误消息,或者如果您定义了 超时,并且在定义的秒数内未收到回复 得到一个Timeout

例如:

cleverbot.errors.APIError: Missing or invalid API key or POST request, please visit www.cleverbot.com/api

您可以从错误中获取错误消息和http状态 喜欢这样:

try:cb.say("Hello")exceptcleverbot.APIErroraserror:print(error.error,error.status)

这与Timeout类似,在这里您可以获得定义的超时 值为Timeout.timeout

另外,所有cleverbot errors子类CleverbotError都可以使用 它捕捉每一个与克利夫波特相关的错误。


访问直接与Cleverbot交谈或通过交谈获得的数据 你可以从属性中获取或直接从属性中获取的对话 Cleverbot.dataConversation.data字典:

cb.conversation_id==cb.data['conversation_id']convo.conversation_id==convo.data['conversation_id']

注意除了Cleverbot.cs和^{tt20}之外的每个属性$ (即Cleverbot状态)是只读的,如果将其设置为 一些东西。

有关所有数据及其说明的列表,请转到“json回复” the official Cleverbot API docs中的节。

要重置Cleverbot及其所有对话的数据,只需执行 以下内容:

cb.reset()

要仅重置单个对话的数据,请使用Conversation.reset代替:

convo.reset()

重置不会删除任何对话,因此您可以重用它们。


如果你想保存Cleverbot的当前状态及其所有对话 您可以使用Cleverbot.save

cb.save('cleverbot.pickle')

这节省了你给克利夫波特和它的密钥、超时和调整 会话以及每个会话的数据,包括cleveRBOT状态。

为了加载并重新创建以前保存的状态为新的cleverbot 实例使用load

cb=cleverbot.load('cleverbot.pickle')

要只加载数据和对话,请使用Cleverbot.load

cb.load('cleverbot.pickle')

加载对话将删除旧对话。


当你处理完当前的cleverbot实例后,关闭cleverbot的 与API的连接:

cb.close()

Cleverbot.close是一个协程,如果您异步使用cleverbot。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spinner选定值未上载到firebase数据库   java如何通过bukkit中的配置添加消息?   java在SharedReference中保存列表的泛型类型   javascript Java小程序未定义   swt在Java中构建控制台应用程序   java OAuth同意屏幕没有突然显示,没有错误?   java webview选择文件安卓不工作   java Spring boot JPA如何从同一连接添加多个数据库?   java JDBC DB2驱动程序计时器线程处于阻塞状态   java我在vscode中运行flatter时看到一个错误在phone中运行应用程序somone能否帮助我plz   Java:生成JSON:如何避免生成不完整的JSON   java Date compareTo()方法始终返回1   当使用Junit runner运行测试时,java Spring自动连线失败   java Android/Sockets如何将信息从主UI线程发送到socket线程?   java Android内存声明全局变量   java如何在JBoss中拥有多个具有相同JNDI名称的数据源?   python在Java中嵌入CPython时,为什么会挂起?   java如何提供深度模拟对象?   java“find:smallint,expected:integer”Hibernate对informix数据库的验证在短时间内失败