nonebot-plugin-with-ai-agents
所属分类:其他
开发工具:Python
文件大小:0KB
下载次数:0
上传日期:2024-05-09 00:51:56
上 传 者:
sh-1993
说明: Nonebot AI Agents 插件,使用基本原理实现联网能力(实时新闻等)、页面提取能力。只需更改几个字段即可接入模型(ChatGPT、ChatGLM、通义千问、百川、Llama3 等模型), stars:2, update:2024-05-08 16:34:04
文件列表:
llm/
resources/
.env.example
LICENSE
__init__.py
handler.py
requirements.txt
With-AI-Agents
_ NoneBot AI 助理插件,有页面内容学习、页面内容提取、联网实时查询回答、天气查询、命令执行等功能 _
## 快速安装
第一步:右上角 ↗ 点个不要钱的 star 吧,这是不断维护更新的动力。
### nb-cli
```shell
nb plugin install nonebot-plugin-with-ai-agents
```
### pip
```shell
pip install nonebot-plugin-with-ai-agents
```
### git
```shell
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 模块。
注意:由于未做任何的权限控制,这个功能有非常高的风险。
## TODOs
”!!“ 为近期要做的事情
”~~“ 为可能会鸽的更新,慢慢来
待解决问题:
- [ ] !!命令执行安全问题,方案:对特定 ID 可用,并提供可关停配置。
- [ ] 新闻查询增强,方案:从各类新闻网获取聚合数据。
- [ ] Prompt 调整,方案:优化和精简 Prompt。
- [ ] AI 聊天历史对群聊和私聊做区分(考虑中,如果加的话可能会使用数据库)。
- [x]
主动清理聊天历史指令,`清空AI记录`
- [ ] ~~天气预报,没有很大兴趣。
- [ ] ~~知识库,采用 Embeddings + PGVector 完成数据向量化和存储搜索。对于一个插件来说,体量可能过大。
- [x]
聊天历史过长的问题。方案:策略性选取历史。
- [x]
聊天历史存入优化,方案:压缩存入策略
## 一些说明
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,因为用的是全部文本匹配,会响应任意文本,所以应尽量在别的插件之后
5. 推荐 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](https://platform.openai.com/docs/models) |
| dashscope | qwen-turbo(推荐,开发时使用)、qwen-plus、qwen-max-longcontext、llama3-8b-instruct(不尽人意)、llama3-70b-instruct(不尽人意)、baichuan-7b-v1(不尽人意) | [dashscope](https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction?spm=a2c4g.11186623.0.i2) |
| glm | glm-3-turbo(推荐)、glm-4 | [glm](https://open.bigmodel.cn/dev/api#language) |
## 配置项
在 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](https://app.tavily.com/sign-in) |
| WITH_AI_AGENTS__MODEL_NAME | 否 | 空字符串 | 你的 AI 模型名称,不填将根据平台使用默认模型 |
## 使用
@机器人+任意文本或者私聊机器人+任意文本。
## 示例
### 页面内容学习
### 页面提取
### 联网实时查询
### AI聊天
### 命令执行
###
近期下载者:
相关文件:
收藏者: