nonebot_plugin_with_ai_agents 是一个基于基本原理实现的 AI Agents(智能体),拥有联网搜索能力、页面内容提取并学习回答等功能
Project description
With-AI-Agents
_✨ NoneBot AI 智能体插件,有页面内容学习、页面内容提取、联网实时查询回答、天气查询、命令执行等功能 ✨_
这个文档有点长,建议点开↗右上角的 亖 查看文档目录,会有你想找的
快速安装
第一步:右上角 ↗ 点个不要钱的 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 功能包括不限于以下功能:
- 联网搜索:即当 AI 认为当前应该使用网络搜索时,进行搜索后回答
- 页面提取:在问题中自动提取 URL,将 URL 的内容提取学习后进行回答
- 天气预报:暂时是没有了,等下个版本更新 已移除
- 新闻内容:目前 AI 可以根据需要对某个事件来搜索到大概信息,例如:“了解下珠海暴雨”,再进行回答,之后会做成专门的新闻模块。
- 命令执行:AI 从接收到的信息语义中解析出要执行的指令,执行完成将结果转达。执行命令使用的是 subprocess 模块。 注意:由于未做任何的权限控制,这个功能有非常高的风险。 已移除
- 百度百科搜索能力
使用
@机器人+任意文本或者私聊机器人+任意文本。
例子(图例请查看文档底部示例):
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 版本结果提取
- 回复优化:提高最终回复时的联想能力
- 减少打印:减少插件内打印的内容
一些说明
- 本 plugin 采用 Agents 基本原理实现。
- 本 plugin 中的联网能力基于百度、bing(暂时忽略不计)、或者 Tavily,推荐只使用百度。Tavily 确实提供了良好的聚合搜索,但是有可能会出现“50万”内容。
- 本 plugin 中可以配置接入并不限于这些大模型,ChatGLM 系列、通义千问系列、ChatGPT 系列、以及魔塔社区 Dashscope 提供的所有模型(百川、Llama3等)。插件开发时使用的是 dashscope 的 qwen-turbo 模型,在调整了 temperature 之后效果还可以。预估效果应该是 ChatGPT 系列 > ChatGLM ≈ 通义千问 >> 百川、Llama3。
- 本 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聊天
命令执行
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nonebot_plugin_with_ai_agents-0.1.15.tar.gz
.
File metadata
- Download URL: nonebot_plugin_with_ai_agents-0.1.15.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.10.11 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fcba179cb47c66d6f79b95f1c6c2adfb2084c8ab1fbbaae7d0ae52ae2af6af9 |
|
MD5 | 4ac88621113cdf706843744b25e70b81 |
|
BLAKE2b-256 | 6c09fb7a2e7d7068b4d34e2abb26ff49c9e8bd7f96cf16fc95f61cba1de0b105 |
File details
Details for the file nonebot_plugin_with_ai_agents-0.1.15-py3-none-any.whl
.
File metadata
- Download URL: nonebot_plugin_with_ai_agents-0.1.15-py3-none-any.whl
- Upload date:
- Size: 22.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.10.11 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc1472431d90d0d4cd9942ff8535897450211261e3f85c17a48cdd4897999a93 |
|
MD5 | 1758a4386c0aeef290b60fd34660b7d0 |
|
BLAKE2b-256 | ce51343fd22f2bc4357719bdfc3864dcd97b93cb4f022ba1f48f9aac8167811e |