Repolode
explosion

explosion/spacy-llm

为 spaCy 提供 LLM 集成,让大语言模型以组件形式执行 NER、文本分类等结构化 NLP 任务,无需训练数据。

Star
1,398
Fork
112
未关闭 Issue
50
最近提交
24天前

这是什么?

spacy-llm 将大语言模型接入 spaCy,让你可以在常规的 spaCy 流水线中添加由 LLM 驱动的组件。每个组件由任务(提示词模板,加上把模型的自由文本回复解析为结构化结果的解析器)和模型后端组成,结果会写入 doc.ents、doc.cats 等标准 spaCy 字段。

内置任务包括命名实体识别、文本分类、词形还原、关系抽取、情感分析、span 分类、摘要、实体链接和翻译,并提供原始提示执行选项。后端支持 OpenAI、Cohere、Anthropic、Google PaLM 和 Azure AI,也支持通过 Hugging Face 托管的开源模型,如 Falcon、Dolly、Llama 2、Mistral 和 StableLM。流水线可以用 spaCy 的配置系统定义并序列化,自定义任务和模型也能通过 spaCy 的注册表接入。

该项目面向快速原型开发:无需标注数据,先用提示词跑通流程,项目成熟后可逐步用监督学习的 spaCy 模型替换或与之混合使用。项目目前标注为实验性质,接口在次版本更新中可能发生变化。

核心功能

  • 01可序列化的 llm 组件,可将基于提示词的步骤加入 spaCy 流水线。
  • 02任务与模型函数模块化,支持通过 spaCy 注册表自定义。
  • 03支持 OpenAI、Cohere、Anthropic、Google PaLM 和 Azure AI 接口。
  • 04可运行 Hugging Face 上的开源模型,如 Llama 2、Mistral、Falcon。
  • 05内置命名实体识别、文本分类、关系抽取、摘要等任务。
  • 06对超出 LLM 上下文窗口的长文本采用 map-reduce 方式分段处理。

适用场景

  • 在收集标注训练数据之前,快速原型验证 NER 或文本分类步骤。
  • 在同一条流水线中混合使用基于 LLM 的组件与规则或监督学习的 spaCy 组件。
  • 借助托管或本地开源 LLM,从非结构化文本中抽取结构化字段。

快速上手

  1. 1

    使用 pip 安装该包

    python -m pip install spacy-llm
  2. 2

    在 openai.com 创建 API 密钥并设置为环境变量

  3. 3

    在 Python 中使用 llm_textcat 工厂运行文本分类

使用前须知

  • 仍处于实验阶段,接口变更可能在次要版本更新中破坏兼容性。
  • 大多数内置模型需要付费服务商(如 OpenAI)的 API 密钥或托管的 LLM。

标签

常见问题

spacy-llm 是什么?
为 spaCy 提供 LLM 集成,让大语言模型以组件形式执行 NER、文本分类等结构化 NLP 任务,无需训练数据。 spacy-llm 将大语言模型接入 spaCy,让你可以在常规的 spaCy 流水线中添加由 LLM 驱动的组件。每个组件由任务(提示词模板,加上把模型的自由文本回复解析为结构化结果的解析器)和模型后端组成,结果会写入 doc.ents、doc.cats 等标准 spaCy 字段。
spacy-llm 可以免费使用吗?用的什么许可证?
spacy-llm 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
spacy-llm 还在维护吗?
活跃维护中。spacy-llm 最近一次提交是在 2026年9月27日。
spacy-llm 适合用来做什么?
在收集标注训练数据之前,快速原型验证 NER 或文本分类步骤。 在同一条流水线中混合使用基于 LLM 的组件与规则或监督学习的 spaCy 组件。 借助托管或本地开源 LLM,从非结构化文本中抽取结构化字段。
spacy-llm 怎么安装和运行?
使用 pip 安装该包: python -m pip install spacy-llm 在 openai.com 创建 API 密钥并设置为环境变量 在 Python 中使用 llm_textcat 工厂运行文本分类
在哪里获取 spacy-llm?
源代码和安装说明在 GitHub 上:https://github.com/explosion/spacy-llm

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目