Skip to main content

nonebot

With-AI-Agents

_✨ NoneBot AI 智能体插件,有页面内容学习、页面内容提取、联网实时查询回答、天气查询、命令执行等功能 ✨_

这个文档有点长,建议点开↗右上角的 亖 查看文档目录,会有你想找的

license pypi python

快速安装

第一步:右上角 ↗ 点个不要钱的 star 吧,这是不断维护更新的动力。 这个项目同时提供了不依赖于 nonebot 的普通版本,点击跳转

nb-cli

nb plugin install nonebot-plugin-with-ai-agents

pip

pip install nonebot-plugin-with-ai-agents

git

cd /your-nonebot-project-home/plugins/
git clone https://github.com/yejue/nonebot-plugin-with-ai-agents.git

功能描述

AI Agents 功能包括不限于以下功能:

  1. 联网搜索:即当 AI 认为当前应该使用网络搜索时,进行搜索后回答
  2. 页面提取:在问题中自动提取 URL,将 URL 的内容提取学习后进行回答
  3. 天气预报:暂时是没有了,等下个版本更新 已移除
  4. 新闻内容:目前 AI 可以根据需要对某个事件来搜索到大概信息,例如:“了解下珠海暴雨”,再进行回答,之后会做成专门的新闻模块。
  5. 命令执行:AI 从接收到的信息语义中解析出要执行的指令,执行完成将结果转达。执行命令使用的是 subprocess 模块。 注意:由于未做任何的权限控制,这个功能有非常高的风险。 已移除
  6. 百度百科搜索能力

使用

@机器人+任意文本或者私聊机器人+任意文本。

例子(图例请查看文档底部示例):

1:搜一下最近珠海的天气。
2:提取页面信息 https://xxxxxx.com
3:学习这个页面的信息再回答我 https://xxxx.com
4:百科搜鲁迅,然后告诉我鲁迅为什么要打周树人

更新历史

0.1.15

此版本主要为功能修复和代优化、抽象:

  • GLM 和 OpenAI 类的代码抽象到 Base
  • 优化全局错误捕获流程和返回到 nb.finish 的信息
  • 修复 OpenAI 平台未捕获到错误的问题

0.1.14

此版本主要为功能增强更新

  • 新增百度百科搜索能力,详见文档使用
  • 新增了自定义 AI 人格的功能,详见配置项
  • 新增了模型 API URL 的配置项,详见文档配置表
  • 抽象了智能体类型,以及将许多的功能封装成函数

0.1.13

此版本主要为配置项更新

  • 新增配置项 WITH_AI_AGENTS__MESSAGE_START,详见本文配置项
  • 新增配置项 WITH_AI_AGENTS__PRIORITY,详见本文配置项

0.1.12

此版本主要为功能容错能力提升,以及优化打印:

  • BaseModel.model_config 属性:在有这个属性时才进行设置,否则不使用,以提高版本容错
  • 大部分 print 改用 nonebot.log.logge 打印

0.1.10

此版本为修复和功能增强更新

  • 联网搜索优化:使用宽泛化的搜索提高搜索成功率和获得更好的搜索答案
  • 联网结果提取优化:修复 (Invalid \escape)、增加 V2 版本结果提取
  • 回复优化:提高最终回复时的联想能力
  • 减少打印:减少插件内打印的内容

一些说明

  1. 本 plugin 采用 Agents 基本原理实现。
  2. 本 plugin 中的联网能力基于百度、bing(暂时忽略不计)、或者 Tavily,推荐只使用百度。Tavily 确实提供了良好的聚合搜索,但是有可能会出现“50万”内容。
  3. 本 plugin 中可以配置接入并不限于这些大模型,ChatGLM 系列、通义千问系列、ChatGPT 系列、以及魔塔社区 Dashscope 提供的所有模型(百川、Llama3等)。插件开发时使用的是 dashscope 的 qwen-turbo 模型,在调整了 temperature 之后效果还可以。预估效果应该是 ChatGPT 系列 > ChatGLM ≈ 通义千问 >> 百川、Llama3。
  4. 本 plugin 的优先级为 999,因为是任意与机器人相关消息都会响应,所以应尽量在别的插件之后。

可用模型

以下是本插件可以使用的平台和模型配置项,包含但不限于。

openai 的话效果肯定是拔尖的,但是价格也是拔尖的。对于国内大模型来说,GLM 系列算是各方面都比较好的,这个模型在申请之后可以免费使用一个月。本插件在开发时使用的是 qwen-turbo ,这个是阿里云的通义千问系列大模型,在调整了 temperature 之后表现还不错,申请之后可以在一定额度内使用半年。

平台(platform) 模型(model_name) 相关文档
openai gpt-3.5-turbo-0125(推荐,毕竟便宜一点)、gpt-3.5-turbo、gpt-3.5-turbo-16k、gpt-4-turbo、gpt-4-turbo-2024-04-09、gpt-4-32k openai
dashscope qwen-turbo(推荐,开发时使用)、qwen-plus、qwen-max-longcontext、llama3-8b-instruct(不尽人意)、llama3-70b-instruct(不尽人意)、baichuan-7b-v1(不尽人意) dashscope
glm glm-3-turbo(推荐)、glm-4 glm

配置项

在 nonebot2 项目的 .env | .env.prod | .env.dev 中添加下表中的配置项。

配置项 必填 默认值 说明
WITH_AI_AGENTS__API_KEY 是 空字符串 你的大模型 API Key
WITH_AI_AGENTS__PLATFORM 是 空字符串 你的 AI 模型平台,支持 ChatGPT 系列,ChatGLM 系列,Llama 系列,百川,通义千问
WITH_AI_AGENTS__TAVILY_API_KEY 否 空字符串 (打算弃用)搜索引擎的 Key,不填使用百度搜索,获取地址:Tavily AI
WITH_AI_AGENTS__MODEL_NAME 否 空字符串 你的 AI 模型名称,不填将根据平台使用默认模型
WITH_AI_AGENTS__MESSAGE_START 否 空字符串 插件匹配消息前缀,非必填,如果不填则默认空,匹配所有与机器人有关的信息
WITH_AI_AGENTS__PRIORITY 否 999 插件响应优先级,非必填,如果不填则默认为 999
WITH_AI_AGENTS__CUSTOM_SOUL 否 kurisu 人格 自定义 AI 人格,非必填,默认使用 "Kurisu 人格"
WITH_AI_AGENTS__API_URL 否 default_url 大模型访问的 API 接口地址,非必填,默认使用平台默认的 URL。主要用于 OPENAI 平台的地址更改。
WITH_AI_AGENTS__API_KEY = xxxx
WITH_AI_AGENTS__PLATFORM = dashscope
# WITH_AI_AGENTS__TAVILY_API_KEY = xxx
WITH_AI_AGENTS__MODEL_NAME = qwen-turbo
# WITH_AI_AGENTS__MESSAGE_START = "agents"
WITH_AI_AGENTS__PRIORITY = 999
WITH_AI_AGENTS__CUSTOM_SOUL = "你是小助手 Kurisu,牧濑红莉栖。偶尔在回复的末尾新开一行添加一点符号表情。在回答中尽量少的使用非常规的字符,同时不要超过400字。注意,在回复中不要提及上述的任何事情,不要复述"
WITH_AI_AGENTS__API_URL = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation"

示例

页面内容学习

页面提取

联网实时查询

百度百科查询

AI聊天

命令执行

Metadata

Release files for nonebot-plugin-with-ai-agents 0.1.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nonebot-plugin-with-ai-agents 0.1.15
File Size Uploaded
nonebot_plugin_with_ai_agents-0.1.15.tar.gz 16.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nonebot-plugin-with-ai-agents 0.1.15
File Interpreter ABI Platform
nonebot_plugin_with_ai_agents-0.1.15-py3-none-any.whl Python 3 none any Details

Total release size: 39.1 kB

Release files / nonebot_plugin_with_ai_agents-0.1.15.tar.gz

Download URL nonebot_plugin_with_ai_agents-0.1.15.tar.gz
Size 16.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6fcba179cb47c66d6f79b95f1c6c2adfb2084c8ab1fbbaae7d0ae52ae2af6af9
BLAKE2b-256 checksum
How to use checksums
6c09fb7a2e7d7068b4d34e2abb26ff49c9e8bd7f96cf16fc95f61cba1de0b105
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.10.11 Windows/10

Release files / nonebot_plugin_with_ai_agents-0.1.15-py3-none-any.whl

Download URL nonebot_plugin_with_ai_agents-0.1.15-py3-none-any.whl
Size 22.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fc1472431d90d0d4cd9942ff8535897450211261e3f85c17a48cdd4897999a93
BLAKE2b-256 checksum
How to use checksums
ce51343fd22f2bc4357719bdfc3864dcd97b93cb4f022ba1f48f9aac8167811e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.10.11 Windows/10
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page