nonebot_plugin_with_ai_agents 是一个基于基本原理实现的 AI Agents(智能体),拥有联网搜索能力、页面内容提取并学习回答等功能
Project description
With-AI-Agents
✨ NoneBot AI 助理插件,有页面内容学习、页面内容提取、联网实时查询回答、天气查询、命令执行等功能 ✨
快速安装
第一步:右上角 ↗ 点个不要钱的 star 吧,这是不断维护更新的动力。
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 模块。 注意:由于未做任何的权限控制,这个功能有非常高的风险。
TODOs
”!!“ 为近期要做的事情 ”~~“ 为可能会鸽的更新,慢慢来
待解决问题:
- !!命令执行安全问题,方案:对特定 ID 可用,并提供可关停配置。
- 新闻查询增强,方案:从各类新闻网获取聚合数据。
- Prompt 调整,方案:优化和精简 Prompt。
- AI 聊天历史对群聊和私聊做区分(考虑中,如果加的话可能会使用数据库)。
-
主动清理聊天历史指令,清空AI记录
- ~~天气预报,没有很大兴趣。
- ~~知识库,采用 Embeddings + PGVector 完成数据向量化和存储搜索。对于一个插件来说,体量可能过大。
-
聊天历史过长的问题。方案:策略性选取历史。 -
聊天历史存入优化,方案:压缩存入策略
一些说明
- 本 plugin 采用 Agents 基本原理实现。
- 本 plugin 中的联网能力基于百度、bing(暂时忽略不计)、或者 Tavily,推荐只使用百度。Tavily 确实提供了良好的聚合搜索,但是有可能会出现“50万”内容。
- 本 plugin 中可以配置接入并不限于这些大模型,ChatGLM 系列、通义千问系列、ChatGPT 系列、以及魔塔社区 Dashscope 提供的所有模型(百川、Llama3等)。插件开发时使用的是 dashscope 的 qwen-turbo 模型,在调整了 temperature 之后效果还可以。预估效果应该是 ChatGPT 系列 > ChatGLM ≈ 通义千问 >> 百川、Llama3。
- 本 plugin 的优先级为 999,因为用的是全部文本匹配,会响应任意文本,所以应尽量在别的插件之后
- 推荐 COMMAND_START 设置为空
可用模型
以下是本插件可以使用的平台和模型配置项,包含但不限于。
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 模型名称,不填将根据平台使用默认模型 |
使用
@机器人+任意文本或者私聊机器人+任意文本。
示例
页面内容学习
页面提取
联网实时查询
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
Close
Hashes for nonebot_plugin_with_ai_agents-0.1.8.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 248f806d85a1cbd1e9e3f2b157b7932a3a2e36331b29cde6ff2eadb06bf54698 |
|
MD5 | 4eb93cf9de4516803a3472f9b23a82bc |
|
BLAKE2b-256 | e33de2e9f5177423b198ac932e380f0690d2ca12ecaf4e02564e0ae0c86a71a8 |
Close
Hashes for nonebot_plugin_with_ai_agents-0.1.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4de7fd8f89915e80d2f4fe05f8bfa4f479e959eda0d50971fb2bb0b064ae57a6 |
|
MD5 | b1c2a08c49729e795471eac79686ea7e |
|
BLAKE2b-256 | 4a48cd498abf44b7c3fd4ab31b1046a73babe5e16a7c27a9179348dd346e114a |