跳转到主要内容

用于聚类嵌入的LLM插件

项目描述

llm-cluster

PyPI Changelog Tests License

LLM 插件,用于聚类嵌入。

安装

在LLM相同的环境中安装此插件。

llm install llm-cluster

使用方法

该插件添加了一个新的命令,llm cluster。该命令接受一个嵌入集合的名称和要返回的聚类数量。

首先,使用paginate-jsonjq来填充集合。在这个例子中,我们将llm存储库中每个问题的标题和正文嵌入,并将结果存储在issues.db数据库中

paginate-json 'https://api.github.com/repos/simonw/llm/issues?state=all&filter=all' \
  | jq '[.[] | {id: .id, title: .title}]' \
  | llm embed-multi llm-issues - \
    --database issues.db --store

--store标志会导致内容与嵌入向量一起存储在数据库中。

现在我们可以将这些嵌入聚类到10组

llm cluster llm-issues 10 \
  -d issues.db

如果您省略了-d选项,将使用默认的嵌入数据库。

输出应该看起来像这样(截断)

[
  {
    "id": "2",
    "items": [
      {
        "id": "1650662628",
        "content": "Initial design"
      },
      {
        "id": "1650682379",
        "content": "Log prompts and responses to SQLite"
      }
    ]
  },
  {
    "id": "4",
    "items": [
      {
        "id": "1650760699",
        "content": "llm web command - launches a web server"
      },
      {
        "id": "1759659476",
        "content": "`llm models` command"
      },
      {
        "id": "1784156919",
        "content": "`llm.get_model(alias)` helper"
      }
    ]
  },
  {
    "id": "7",
    "items": [
      {
        "id": "1650765575",
        "content": "--code mode for outputting code"
      },
      {
        "id": "1659086298",
        "content": "Accept PROMPT from --stdin"
      },
      {
        "id": "1714651657",
        "content": "Accept input from standard in"
      }
    ]
  }
]

显示的内容被截断为100个字符。传递--truncate 0以禁用截断,或--truncate X以截断到X个字符。

为每个聚类生成摘要

--summary标志将导致插件为每个聚类生成一个摘要,通过将项的内容(根据--truncate选项截断)传递给大型语言模型。

此功能仍在实验阶段。您应该尝试自定义提示来提高摘要的质量。

由于这可以通过LLM运行大量文本,因此成本可能很高,具体取决于您使用的模型。

此功能仅适用于已使用--store标志将相关内容存储在数据库中的嵌入。

您可以这样使用它

llm cluster llm-issues 10 \
  -d issues.db \
  --summary

这使用默认提示和默认模型。

要使用不同的模型,例如 GPT-4,请传递 --model 选项

llm cluster llm-issues 10 \
  -d issues.db \
  --summary \
  --model gpt-4

默认使用的提示是

该相关文档组的简短、简洁标题。

要使用自定义提示,请传递 --prompt

llm cluster llm-issues 10 \
  -d issues.db \
  --summary \
  --model gpt-4 \
  --prompt 'Summarize this in a short line in the style of a bored, angry panda'

每个聚类将添加一个 "summary" 键,其中包含生成的摘要。

开发

要本地设置此插件,首先检出代码。然后创建一个新的虚拟环境

cd llm-cluster
python3 -m venv venv
source venv/bin/activate

现在安装依赖项并测试依赖项

pip install -e '.[test]'

要运行测试

pytest

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

llm-cluster-0.2.tar.gz (9.2 kB 查看哈希值)

上传时间

构建分发

llm_cluster-0.2-py3-none-any.whl (9.0 kB 查看哈希值)

上传时间 Python 3

由以下提供支持