nonebot-plugin-llmchat


Namenonebot-plugin-llmchat JSON
Version 0.1.8 PyPI version JSON
download
home_pageNone
SummaryNonebot AI group chat plugin supporting multiple API preset configurations
upload_time2025-02-21 01:47:23
maintainerNone
docs_urlNone
authorFuQuan i@fuquan.moe
requires_python<4.0,>=3.9
licenseGPL
keywords nonebot nonebot2 llm ai
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
  <a href="https://v2.nonebot.dev/store"><img src="https://github.com/A-kirami/nonebot-plugin-template/blob/resources/nbp_logo.png" width="180" height="180" alt="NoneBotPluginLogo"></a>
  <br>
  <p><img src="https://github.com/A-kirami/nonebot-plugin-template/blob/resources/NoneBotPlugin.svg" width="240" alt="NoneBotPluginText"></p>
</div>

<div align="center">

# nonebot-plugin-llmchat

_✨ 支持多API预设配置的AI群聊插件 ✨_


<a href="./LICENSE">
    <img src="https://img.shields.io/github/license/FuQuan233/nonebot-plugin-llmchat.svg" alt="license">
</a>
<a href="https://pypi.python.org/pypi/nonebot-plugin-llmchat">
    <img src="https://img.shields.io/pypi/v/nonebot-plugin-llmchat.svg" alt="pypi">
</a>
<img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="python">

</div>

## 📖 介绍

1. **多API预设支持**
   - 可配置多个LLM服务预设(如不同模型/API密钥)
   - 支持运行时通过`API预设`命令热切换API配置
   - 内置服务开关功能(预设名为`off`时停用)

2. **多种回复触发方式**
   - @触发 + 随机概率触发
   - 支持处理回复消息
   - 群聊消息顺序处理,防止消息错乱

3. **分群聊上下文记忆管理**
   - 分群聊保留对话历史记录(可配置保留条数)
   - 自动合并未处理消息,降低API用量
   - 支持`记忆清除`命令手动重置对话上下文

4. **分段回复支持**
   - 支持多段式回复(由LLM决定如何回复)
   - 可@群成员(由LLM插入)
   - 可选输出AI的思维过程(需模型支持)

5. **可自定义性格**
   - 可动态修改群组专属系统提示词(`/修改设定`)
   - 支持自定义默认提示词

## 💿 安装

<details open>
<summary>使用 nb-cli 安装</summary>
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装

    nb plugin install nonebot-plugin-llmchat

</details>

<details>
<summary>使用包管理器安装</summary>
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令

<details>
<summary>pip</summary>

    pip install nonebot-plugin-llmchat
</details>
<details>
<summary>pdm</summary>

    pdm add nonebot-plugin-llmchat
</details>
<details>
<summary>poetry</summary>

    poetry add nonebot-plugin-llmchat
</details>
<details>
<summary>conda</summary>

    conda install nonebot-plugin-llmchat
</details>

打开 nonebot2 项目根目录下的 `pyproject.toml` 文件, 在 `[tool.nonebot]` 部分追加写入

    plugins = ["nonebot_plugin_llmchat"]

</details>

## ⚙️ 配置

在 nonebot2 项目的`.env`文件中添加下表中的必填配置

| 配置项 | 必填 | 默认值 | 说明 |
|:-----:|:----:|:----:|:----:|
| NICKNAME | 是 | 无 | 机器人昵称,NoneBot自带配置项,本插件要求此项必填 |
| LLMCHAT__API_PRESETS | 是 | 无 | 见下表 |
| LLMCHAT__HISTORY_SIZE | 否 | 20 | LLM上下文消息保留数量(1-40),越大token消耗量越多 |
| LLMCHAT__PAST_EVENTS_SIZE | 否 | 10 | 触发回复时发送的群消息数量(1-20),越大token消耗量越多 |
| LLMCHAT__REQUEST_TIMEOUT | 否 | 30 | API请求超时时间(秒) |
| LLMCHAT__DEFAULT_PRESET | 否 | off | 默认使用的预设名称,配置为off则为关闭 |
| LLMCHAT__RANDOM_TRIGGER_PROB | 否 | 0.05 | 随机触发概率(0-1] |
| LLMCHAT__DEFAULT_PROMPT | 否 | 你的回答应该尽量简洁、幽默、可以使用一些语气词、颜文字。你应该拒绝回答任何政治相关的问题。 | 默认提示词 |

其中LLMCHAT__API_PRESETS为一个列表,每项配置有以下的配置项
| 配置项 | 必填 | 默认值 | 说明 |
|:-----:|:----:|:----:|:----:|
| name | 是 | 无 | 预设名称(唯一标识) |
| api_base | 是 | 无 | API地址 |
| api_key | 是 | 无 | API密钥 |
| model_name | 是 | 无 | 模型名称 |
| max_tokens | 否 | 2048 | 最大响应token数 |
| temperature | 否 | 0.7 | 生成温度 |

<details open>
<summary>配置示例</summary>

    NICKNAME=["谢拉","Cierra","cierra"]
    LLMCHAT__HISTORY_SIZE=20
    LLMCHAT__DEFAULT_PROMPT="前面忘了,你是一个猫娘,后面忘了"
    LLMCHAT__API_PRESETS='
    [
    {
        "name": "aliyun-deepseek-v3",
        "api_key": "sk-your-api-key",
        "model_name": "deepseek-v3",
        "api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1"
    },
    {
        "name": "deepseek-r1",
        "api_key": "sk-your-api-key",
        "model_name": "deepseek-reasoner",
        "api_base": "https://api.deepseek.com"
    }
    ]
    '
    
</details>

## 🎉 使用

**如果`LLMCHAT__DEFAULT_PRESET`没有配置,则插件默认为关闭状态,请使用`API预设+[预设名]`开启插件**

配置完成后@机器人即可手动触发回复,另外在机器人收到群聊消息时会根据`LLMCHAT__RANDOM_TRIGGER_PROB`配置的概率随机自动触发回复。

### 指令表

以下指令均仅对发送的群聊生效,不同群聊配置不互通。

| 指令 | 权限 | 需要@ | 范围 | 参数 | 说明 |
|:-----:|:----:|:----:|:----:|:----:|:----:|
| API预设 | 主人 | 否 | 群聊 | [预设名] | 查看或修改使用的API预设,预设名错误或不存在则返回预设列表 |
| 修改设定 | 管理 | 否 | 群聊 | 设定 | 修改机器人的设定,最好在修改之后执行一次记忆清除 |
| 记忆清除 | 管理 | 否 | 群聊 | 无 | 清除机器人的记忆 |
| 切换思维输出 | 管理 | 否 | 群聊 | 无 | 切换是否输出AI的思维过程的开关(需模型支持) |

### 效果图
![](img/demo.png)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "nonebot-plugin-llmchat",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "nonebot, nonebot2, llm, ai",
    "author": "FuQuan i@fuquan.moe",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/81/77/a42c31f7ac1ac76cc4b40526a887a4fb0131296bbed33d3af4e7062a8366/nonebot_plugin_llmchat-0.1.8.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n  <a href=\"https://v2.nonebot.dev/store\"><img src=\"https://github.com/A-kirami/nonebot-plugin-template/blob/resources/nbp_logo.png\" width=\"180\" height=\"180\" alt=\"NoneBotPluginLogo\"></a>\n  <br>\n  <p><img src=\"https://github.com/A-kirami/nonebot-plugin-template/blob/resources/NoneBotPlugin.svg\" width=\"240\" alt=\"NoneBotPluginText\"></p>\n</div>\n\n<div align=\"center\">\n\n# nonebot-plugin-llmchat\n\n_\u2728 \u652f\u6301\u591aAPI\u9884\u8bbe\u914d\u7f6e\u7684AI\u7fa4\u804a\u63d2\u4ef6 \u2728_\n\n\n<a href=\"./LICENSE\">\n    <img src=\"https://img.shields.io/github/license/FuQuan233/nonebot-plugin-llmchat.svg\" alt=\"license\">\n</a>\n<a href=\"https://pypi.python.org/pypi/nonebot-plugin-llmchat\">\n    <img src=\"https://img.shields.io/pypi/v/nonebot-plugin-llmchat.svg\" alt=\"pypi\">\n</a>\n<img src=\"https://img.shields.io/badge/python-3.9+-blue.svg\" alt=\"python\">\n\n</div>\n\n## \ud83d\udcd6 \u4ecb\u7ecd\n\n1. **\u591aAPI\u9884\u8bbe\u652f\u6301**\n   - \u53ef\u914d\u7f6e\u591a\u4e2aLLM\u670d\u52a1\u9884\u8bbe\uff08\u5982\u4e0d\u540c\u6a21\u578b/API\u5bc6\u94a5\uff09\n   - \u652f\u6301\u8fd0\u884c\u65f6\u901a\u8fc7`API\u9884\u8bbe`\u547d\u4ee4\u70ed\u5207\u6362API\u914d\u7f6e\n   - \u5185\u7f6e\u670d\u52a1\u5f00\u5173\u529f\u80fd\uff08\u9884\u8bbe\u540d\u4e3a`off`\u65f6\u505c\u7528\uff09\n\n2. **\u591a\u79cd\u56de\u590d\u89e6\u53d1\u65b9\u5f0f**\n   - @\u89e6\u53d1 + \u968f\u673a\u6982\u7387\u89e6\u53d1\n   - \u652f\u6301\u5904\u7406\u56de\u590d\u6d88\u606f\n   - \u7fa4\u804a\u6d88\u606f\u987a\u5e8f\u5904\u7406\uff0c\u9632\u6b62\u6d88\u606f\u9519\u4e71\n\n3. **\u5206\u7fa4\u804a\u4e0a\u4e0b\u6587\u8bb0\u5fc6\u7ba1\u7406**\n   - \u5206\u7fa4\u804a\u4fdd\u7559\u5bf9\u8bdd\u5386\u53f2\u8bb0\u5f55\uff08\u53ef\u914d\u7f6e\u4fdd\u7559\u6761\u6570\uff09\n   - \u81ea\u52a8\u5408\u5e76\u672a\u5904\u7406\u6d88\u606f\uff0c\u964d\u4f4eAPI\u7528\u91cf\n   - \u652f\u6301`\u8bb0\u5fc6\u6e05\u9664`\u547d\u4ee4\u624b\u52a8\u91cd\u7f6e\u5bf9\u8bdd\u4e0a\u4e0b\u6587\n\n4. **\u5206\u6bb5\u56de\u590d\u652f\u6301**\n   - \u652f\u6301\u591a\u6bb5\u5f0f\u56de\u590d\uff08\u7531LLM\u51b3\u5b9a\u5982\u4f55\u56de\u590d\uff09\n   - \u53ef@\u7fa4\u6210\u5458\uff08\u7531LLM\u63d2\u5165\uff09\n   - \u53ef\u9009\u8f93\u51faAI\u7684\u601d\u7ef4\u8fc7\u7a0b\uff08\u9700\u6a21\u578b\u652f\u6301\uff09\n\n5. **\u53ef\u81ea\u5b9a\u4e49\u6027\u683c**\n   - \u53ef\u52a8\u6001\u4fee\u6539\u7fa4\u7ec4\u4e13\u5c5e\u7cfb\u7edf\u63d0\u793a\u8bcd\uff08`/\u4fee\u6539\u8bbe\u5b9a`\uff09\n   - \u652f\u6301\u81ea\u5b9a\u4e49\u9ed8\u8ba4\u63d0\u793a\u8bcd\n\n## \ud83d\udcbf \u5b89\u88c5\n\n<details open>\n<summary>\u4f7f\u7528 nb-cli \u5b89\u88c5</summary>\n\u5728 nonebot2 \u9879\u76ee\u7684\u6839\u76ee\u5f55\u4e0b\u6253\u5f00\u547d\u4ee4\u884c, \u8f93\u5165\u4ee5\u4e0b\u6307\u4ee4\u5373\u53ef\u5b89\u88c5\n\n    nb plugin install nonebot-plugin-llmchat\n\n</details>\n\n<details>\n<summary>\u4f7f\u7528\u5305\u7ba1\u7406\u5668\u5b89\u88c5</summary>\n\u5728 nonebot2 \u9879\u76ee\u7684\u63d2\u4ef6\u76ee\u5f55\u4e0b, \u6253\u5f00\u547d\u4ee4\u884c, \u6839\u636e\u4f60\u4f7f\u7528\u7684\u5305\u7ba1\u7406\u5668, \u8f93\u5165\u76f8\u5e94\u7684\u5b89\u88c5\u547d\u4ee4\n\n<details>\n<summary>pip</summary>\n\n    pip install nonebot-plugin-llmchat\n</details>\n<details>\n<summary>pdm</summary>\n\n    pdm add nonebot-plugin-llmchat\n</details>\n<details>\n<summary>poetry</summary>\n\n    poetry add nonebot-plugin-llmchat\n</details>\n<details>\n<summary>conda</summary>\n\n    conda install nonebot-plugin-llmchat\n</details>\n\n\u6253\u5f00 nonebot2 \u9879\u76ee\u6839\u76ee\u5f55\u4e0b\u7684 `pyproject.toml` \u6587\u4ef6, \u5728 `[tool.nonebot]` \u90e8\u5206\u8ffd\u52a0\u5199\u5165\n\n    plugins = [\"nonebot_plugin_llmchat\"]\n\n</details>\n\n## \u2699\ufe0f \u914d\u7f6e\n\n\u5728 nonebot2 \u9879\u76ee\u7684`.env`\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4e0b\u8868\u4e2d\u7684\u5fc5\u586b\u914d\u7f6e\n\n| \u914d\u7f6e\u9879 | \u5fc5\u586b | \u9ed8\u8ba4\u503c | \u8bf4\u660e |\n|:-----:|:----:|:----:|:----:|\n| NICKNAME | \u662f | \u65e0 | \u673a\u5668\u4eba\u6635\u79f0\uff0cNoneBot\u81ea\u5e26\u914d\u7f6e\u9879\uff0c\u672c\u63d2\u4ef6\u8981\u6c42\u6b64\u9879\u5fc5\u586b |\n| LLMCHAT__API_PRESETS | \u662f | \u65e0 | \u89c1\u4e0b\u8868 |\n| LLMCHAT__HISTORY_SIZE | \u5426 | 20 | LLM\u4e0a\u4e0b\u6587\u6d88\u606f\u4fdd\u7559\u6570\u91cf\uff081-40\uff09\uff0c\u8d8a\u5927token\u6d88\u8017\u91cf\u8d8a\u591a |\n| LLMCHAT__PAST_EVENTS_SIZE | \u5426 | 10 | \u89e6\u53d1\u56de\u590d\u65f6\u53d1\u9001\u7684\u7fa4\u6d88\u606f\u6570\u91cf\uff081-20\uff09\uff0c\u8d8a\u5927token\u6d88\u8017\u91cf\u8d8a\u591a |\n| LLMCHAT__REQUEST_TIMEOUT | \u5426 | 30 | API\u8bf7\u6c42\u8d85\u65f6\u65f6\u95f4\uff08\u79d2\uff09 |\n| LLMCHAT__DEFAULT_PRESET | \u5426 | off | \u9ed8\u8ba4\u4f7f\u7528\u7684\u9884\u8bbe\u540d\u79f0\uff0c\u914d\u7f6e\u4e3aoff\u5219\u4e3a\u5173\u95ed |\n| LLMCHAT__RANDOM_TRIGGER_PROB | \u5426 | 0.05 | \u968f\u673a\u89e6\u53d1\u6982\u7387\uff080-1] |\n| LLMCHAT__DEFAULT_PROMPT | \u5426 | \u4f60\u7684\u56de\u7b54\u5e94\u8be5\u5c3d\u91cf\u7b80\u6d01\u3001\u5e7d\u9ed8\u3001\u53ef\u4ee5\u4f7f\u7528\u4e00\u4e9b\u8bed\u6c14\u8bcd\u3001\u989c\u6587\u5b57\u3002\u4f60\u5e94\u8be5\u62d2\u7edd\u56de\u7b54\u4efb\u4f55\u653f\u6cbb\u76f8\u5173\u7684\u95ee\u9898\u3002 | \u9ed8\u8ba4\u63d0\u793a\u8bcd |\n\n\u5176\u4e2dLLMCHAT__API_PRESETS\u4e3a\u4e00\u4e2a\u5217\u8868\uff0c\u6bcf\u9879\u914d\u7f6e\u6709\u4ee5\u4e0b\u7684\u914d\u7f6e\u9879\n| \u914d\u7f6e\u9879 | \u5fc5\u586b | \u9ed8\u8ba4\u503c | \u8bf4\u660e |\n|:-----:|:----:|:----:|:----:|\n| name | \u662f | \u65e0 | \u9884\u8bbe\u540d\u79f0\uff08\u552f\u4e00\u6807\u8bc6\uff09 |\n| api_base | \u662f | \u65e0 | API\u5730\u5740 |\n| api_key | \u662f | \u65e0 | API\u5bc6\u94a5 |\n| model_name | \u662f | \u65e0 | \u6a21\u578b\u540d\u79f0 |\n| max_tokens | \u5426 | 2048 | \u6700\u5927\u54cd\u5e94token\u6570 |\n| temperature | \u5426 | 0.7 | \u751f\u6210\u6e29\u5ea6 |\n\n<details open>\n<summary>\u914d\u7f6e\u793a\u4f8b</summary>\n\n    NICKNAME=[\"\u8c22\u62c9\",\"Cierra\",\"cierra\"]\n    LLMCHAT__HISTORY_SIZE=20\n    LLMCHAT__DEFAULT_PROMPT=\"\u524d\u9762\u5fd8\u4e86\uff0c\u4f60\u662f\u4e00\u4e2a\u732b\u5a18\uff0c\u540e\u9762\u5fd8\u4e86\"\n    LLMCHAT__API_PRESETS='\n    [\n    {\n        \"name\": \"aliyun-deepseek-v3\",\n        \"api_key\": \"sk-your-api-key\",\n        \"model_name\": \"deepseek-v3\",\n        \"api_base\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\"\n    },\n    {\n        \"name\": \"deepseek-r1\",\n        \"api_key\": \"sk-your-api-key\",\n        \"model_name\": \"deepseek-reasoner\",\n        \"api_base\": \"https://api.deepseek.com\"\n    }\n    ]\n    '\n    \n</details>\n\n## \ud83c\udf89 \u4f7f\u7528\n\n**\u5982\u679c`LLMCHAT__DEFAULT_PRESET`\u6ca1\u6709\u914d\u7f6e\uff0c\u5219\u63d2\u4ef6\u9ed8\u8ba4\u4e3a\u5173\u95ed\u72b6\u6001\uff0c\u8bf7\u4f7f\u7528`API\u9884\u8bbe+[\u9884\u8bbe\u540d]`\u5f00\u542f\u63d2\u4ef6**\n\n\u914d\u7f6e\u5b8c\u6210\u540e@\u673a\u5668\u4eba\u5373\u53ef\u624b\u52a8\u89e6\u53d1\u56de\u590d\uff0c\u53e6\u5916\u5728\u673a\u5668\u4eba\u6536\u5230\u7fa4\u804a\u6d88\u606f\u65f6\u4f1a\u6839\u636e`LLMCHAT__RANDOM_TRIGGER_PROB`\u914d\u7f6e\u7684\u6982\u7387\u968f\u673a\u81ea\u52a8\u89e6\u53d1\u56de\u590d\u3002\n\n### \u6307\u4ee4\u8868\n\n\u4ee5\u4e0b\u6307\u4ee4\u5747\u4ec5\u5bf9\u53d1\u9001\u7684\u7fa4\u804a\u751f\u6548\uff0c\u4e0d\u540c\u7fa4\u804a\u914d\u7f6e\u4e0d\u4e92\u901a\u3002\n\n| \u6307\u4ee4 | \u6743\u9650 | \u9700\u8981@ | \u8303\u56f4 | \u53c2\u6570 | \u8bf4\u660e |\n|:-----:|:----:|:----:|:----:|:----:|:----:|\n| API\u9884\u8bbe | \u4e3b\u4eba | \u5426 | \u7fa4\u804a | [\u9884\u8bbe\u540d] | \u67e5\u770b\u6216\u4fee\u6539\u4f7f\u7528\u7684API\u9884\u8bbe\uff0c\u9884\u8bbe\u540d\u9519\u8bef\u6216\u4e0d\u5b58\u5728\u5219\u8fd4\u56de\u9884\u8bbe\u5217\u8868 |\n| \u4fee\u6539\u8bbe\u5b9a | \u7ba1\u7406 | \u5426 | \u7fa4\u804a | \u8bbe\u5b9a | \u4fee\u6539\u673a\u5668\u4eba\u7684\u8bbe\u5b9a\uff0c\u6700\u597d\u5728\u4fee\u6539\u4e4b\u540e\u6267\u884c\u4e00\u6b21\u8bb0\u5fc6\u6e05\u9664 |\n| \u8bb0\u5fc6\u6e05\u9664 | \u7ba1\u7406 | \u5426 | \u7fa4\u804a | \u65e0 | \u6e05\u9664\u673a\u5668\u4eba\u7684\u8bb0\u5fc6 |\n| \u5207\u6362\u601d\u7ef4\u8f93\u51fa | \u7ba1\u7406 | \u5426 | \u7fa4\u804a | \u65e0 | \u5207\u6362\u662f\u5426\u8f93\u51faAI\u7684\u601d\u7ef4\u8fc7\u7a0b\u7684\u5f00\u5173\uff08\u9700\u6a21\u578b\u652f\u6301\uff09 |\n\n### \u6548\u679c\u56fe\n![](img/demo.png)\n",
    "bugtrack_url": null,
    "license": "GPL",
    "summary": "Nonebot AI group chat plugin supporting multiple API preset configurations",
    "version": "0.1.8",
    "project_urls": {
        "Documentation": "https://github.com/FuQuan233/nonebot-plugin-llmchat#readme",
        "Homepage": "https://github.com/FuQuan233/nonebot-plugin-llmchat",
        "Repository": "https://github.com/FuQuan233/nonebot-plugin-llmchat"
    },
    "split_keywords": [
        "nonebot",
        " nonebot2",
        " llm",
        " ai"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "95cacb53dce3bf92dd16684d34ff70ea85a951ab9e352d8b06f6cf614572f683",
                "md5": "9b93ef9609a58ffaf01957300364adc1",
                "sha256": "116bdb27b6e458f21608ee6c95393a6c678ff89a78763633674edefcb027791f"
            },
            "downloads": -1,
            "filename": "nonebot_plugin_llmchat-0.1.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9b93ef9609a58ffaf01957300364adc1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 22499,
            "upload_time": "2025-02-21T01:47:21",
            "upload_time_iso_8601": "2025-02-21T01:47:21.929433Z",
            "url": "https://files.pythonhosted.org/packages/95/ca/cb53dce3bf92dd16684d34ff70ea85a951ab9e352d8b06f6cf614572f683/nonebot_plugin_llmchat-0.1.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8177a42c31f7ac1ac76cc4b40526a887a4fb0131296bbed33d3af4e7062a8366",
                "md5": "da14b05c4d5dd2252137145069f04dc6",
                "sha256": "57bb8390f89eae47dce5fb1f2f5edf4b1db566a44dc10f72fa931d508c1d8483"
            },
            "downloads": -1,
            "filename": "nonebot_plugin_llmchat-0.1.8.tar.gz",
            "has_sig": false,
            "md5_digest": "da14b05c4d5dd2252137145069f04dc6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 21792,
            "upload_time": "2025-02-21T01:47:23",
            "upload_time_iso_8601": "2025-02-21T01:47:23.328056Z",
            "url": "https://files.pythonhosted.org/packages/81/77/a42c31f7ac1ac76cc4b40526a887a4fb0131296bbed33d3af4e7062a8366/nonebot_plugin_llmchat-0.1.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-21 01:47:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "FuQuan233",
    "github_project": "nonebot-plugin-llmchat#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "nonebot-plugin-llmchat"
}
        
Elapsed time: 1.34305s