AnglE

GitHub
567 38 简单 1 次阅读 1周前MIT其他开发框架语言模型
AI 解读 由 AI 自动生成,仅供参考

AnglE 是一个专注于训练和推理高性能句子嵌入(Sentence Embeddings)的开源框架。它源自 ACL 2024 收录的论文,旨在解决传统方法在语义文本相似度任务中表现不足的问题,帮助开发者轻松构建在 STS 和 MTEB 权威榜单上达到最先进水平(SOTA)的模型。

无论是算法研究人员还是工程开发者,都能通过 AnglE 仅用几行代码即可完成从 BERT 系列到大型语言模型(如 LLaMA、Qwen)的嵌入模型训练与推理。其核心亮点在于独创的"AnglE 损失函数”,通过角度优化策略显著提升了向量表示的质量。此外,它还兼容对比损失、CoSENT 及最新的 Espresso 损失等多种训练目标,并支持单卡或多卡分布式训练,具备极高的灵活性。

凭借强大的性能,基于 AnglE 训练的模型曾多次刷新 MTEB 榜单纪录,广泛应用于通用语义搜索、代码相似度匹配及医疗文本分析等场景。如果你希望快速复现前沿成果或定制专属的高质量嵌入模型,AnglE 提供了一个高效且专业的解决方案。

使用场景

某医疗科技公司的算法团队正在构建一个智能文献检索系统,旨在帮助医生快速从海量 PubMed 论文中找到与特定病例最相关的研究资料。

没有 AnglE 时

  • 语义理解偏差大:传统嵌入模型难以捕捉医学术语间的深层逻辑,导致搜索“心肌梗死”时无法匹配到包含"MI"或“急性冠脉综合征”的关键论文。
  • 训练门槛高且耗时:若要微调专业模型,需编写复杂的对比学习代码并手动调整损失函数,单卡训练效率低,多卡配置繁琐。
  • 效果遭遇瓶颈:即便投入大量算力微调,模型在专业领域的语义相似度评测(STS)得分依然停滞不前,无法满足临床精准度要求。
  • 模型适配困难:试图利用强大的 LLM(如 LLaMA)作为基座时,缺乏有效的双向依赖处理机制,导致推理速度慢且显存占用过高。

使用 AnglE 后

  • 领域语义精准匹配:利用 AnglE 预训练的医学专用模型(如 pubmed-angle-large-en),系统能准确识别同义词与上下位词,显著提升召回率。
  • 极简高效训练流程:借助 AnglE 封装的 Angle Loss 和 CoSENT Loss,团队仅用几行代码即可启动单卡或多卡训练,快速迭代出定制化模型。
  • 刷新行业标杆性能:基于 AnglE 优化的模型在 MTEB leaderboard 上取得 SOTA 成绩,确保检索结果的相关性达到业界顶尖水平。
  • 灵活支持大模型架构:直接调用 AnglE 对 LLM 的支持能力,轻松部署基于 LLaMA 等大模型的高精度嵌入服务,兼顾了性能与推理效率。

AnglE 通过角度优化的损失函数和极简的训练框架,让开发者能以最低成本获得医疗垂直领域最先进的语义嵌入能力。

运行环境要求

操作系统
  • 未说明
GPU
  • 训练和推理均支持 GPU 加速(代码示例中使用 .cuda())
  • 支持单卡和多卡训练(Multi-GPU with FSDP/Standard)
  • 具体显存大小取决于所选骨干模型(BERT 系列或 LLM 系列如 Llama-2-7b/13b),LLM 模型通常需要较大显存(建议 16GB+ 并使用 float16)
  • 未明确指定最低 CUDA 版本,但需兼容 PyTorch
内存

未说明

依赖
notes1. 安装推荐使用 'uv pip install -U angle-emb' 或 'pip install -U angle-emb'。 2. 多 GPU 训练需安装并配置 'accelerate',支持 FSDP 策略。 3. 推理大规模数据时建议安装 'batched' 库以启用动态批处理加速。 4. 支持多种骨干网络:BERT 系列、LLM 系列(Llama, Mistral, Qwen 等)及双向 LLM(BiLLM)。 5. 加载 LLM 模型时需设置 is_llm=True,若使用 LoRA 需指定 pretrained_lora_path。 6. 支持 Espresso/Matryoshka 模型压缩技术,可截断层数和嵌入维度。
python未说明
angle-emb
torch
transformers
accelerate
datasets
batched
AnglE hero image

快速开始

EN | 简体中文

AnglE 📐

Mixedbread 赞助

如需更详细的使用说明,请参阅 📘 文档: https://angle.readthedocs.io/en/latest/index.html

https://arxiv.org/abs/2309.12871 PyPI 版本 PyPI 下载量 Read the docs

📢 使用 AnglE 训练/推理强大的句子嵌入。 该库源自论文:AnglE: 角度优化的文本嵌入。它只需几行代码即可训练最先进的基于 BERT/LLM 的句子嵌入。AnglE 也是一个通用的句子嵌入推理框架,支持多种基于 Transformer 的句子嵌入的推理。

✨ 特性

损失函数

  • 📐 AnglE 损失(ACL24)
  • ⚖ 对比损失
  • 📏 CoSENT 损失
  • ☕️ Espresso 损失(ICLR 2025,又名 2DMSE,详情见:README_ESE

骨干模型

  • 基于 BERT 的模型(BERT、RoBERTa、ModernBERT 等)
  • 基于 LLM 的模型(LLaMA、Mistral、Qwen 等)
  • 双向 LLM 基础模型(LLaMA、Mistral、Qwen、OpenELMo 等,详情请参阅:https://github.com/WhereIsAI/BiLLM)

训练

  • 单 GPU 训练
  • 多 GPU 训练

http://makeapullrequest.com 未来还将添加更多功能。

🏆 成就

📅 2024年5月16日 | 论文“AnglE: 角度优化的文本嵌入”被 ACL 2024 主会场接收。

📅 2024年3月13日 | 论文“BeLLM: 面向句子嵌入的反向依赖增强大型语言模型”被 NAACL 2024 主会场接收。

📅 2024年3月8日 | 🍞 mixedbread 的嵌入 (mixedbread-ai/mxbai-embed-large-v1) 在 MTEB Leaderboard 上以平均分 64.68 获得 SOTA!该模型使用 AnglE 训练而成。恭喜 mixedbread!

📅 2023年12月4日 | 我们的通用句子嵌入 WhereIsAI/UAE-Large-V1MTEB Leaderboard 上以平均分 64.64 获得 SOTA!该模型同样使用 AnglE 训练而成。

📅 2023年12月 | AnglE 在 STS 语义文本相似度基准测试中达到 SOTA 表现!

🤗 官方预训练模型

基于 BERT 的模型:

🤗 HF 最大标记数 池化策略 场景
WhereIsAI/UAE-Large-V1 512 cls 英语,通用
WhereIsAI/UAE-Code-Large-V1 512 cls 代码相似性
WhereIsAI/pubmed-angle-base-en 512 cls 医学相似性
WhereIsAI/pubmed-angle-large-en 512 cls 医学相似性

基于 LLM 的模型:

🤗 HF (lora 权重) 骨干模型 最大标记数 提示词 池化策略 场景
SeanLee97/angle-llama-13b-nli NousResearch/Llama-2-13b-hf 4096 Prompts.A 最后一个 token 英语,相似性测量
SeanLee97/angle-llama-7b-nli-v2 NousResearch/Llama-2-7b-hf 4096 Prompts.A 最后一个 token 英语,相似性测量

💡 您可以在 HuggingFace Collection 中找到更多使用 AnglE 训练的第三方嵌入。

🚀 快速入门

⬇️ 安装

使用 uv

uv pip install -U angle-emb

或 pip

pip install -U angle-emb

🔍 推理

1️⃣ 基于 BERT 的模型

在 Colab 中打开

选项 A:使用提示词(用于检索任务)

使用包含 {text} 占位符的提示词。可通过 Prompts.list_prompts() 查看可用提示词。

from angle_emb import AnglE, Prompts
from angle_emb.utils import cosine_similarity

# 加载模型
angle = AnglE.from_pretrained('WhereIsAI/UAE-Large-V1', pooling_strategy='cls').cuda()

# 使用提示词编码查询,不使用提示词编码文档
qv = angle.encode(['天气怎么样?'], to_numpy=True, prompt=Prompts.C)
doc_vecs = angle.encode([
    '天气真好!',
    '今天下雨了。',
    '我要去睡觉了'
], to_numpy=True)

# 计算相似度
for dv in doc_vecs:
    print(cosine_similarity(qv[0], dv))

选项 B:不使用提示词(用于相似性任务)

from angle_emb import AnglE
from angle_emb.utils import cosine_similarity

# 加载模型
angle = AnglE.from_pretrained('WhereIsAI/UAE-Large-V1', pooling_strategy='cls').cuda()

# 编码文档
doc_vecs = angle.encode([
    '天气真好!',
    '天气非常好!',
    '我要去睡觉了'
])

# 计算两两相似度
for i, dv1 in enumerate(doc_vecs):
    for dv2 in doc_vecs[i+1:]:
        print(cosine_similarity(dv1, dv2))

2️⃣ 基于 LLM 的模型

在 Colab 中打开

对于基于 LoRA 的模型,需同时指定骨干模型和 LoRA 权重。对于 LLM 模型,务必设置 is_llm=True

import torch
from angle_emb import AnglE, Prompts
from angle_emb.utils import cosine_similarity

# 加载带有 LoRA 权重的 LLM
angle = AnglE.from_pretrained(
    'NousResearch/Llama-2-7b-hf',
    pretrained_lora_path='SeanLee97/angle-llama-7b-nli-v2',
    pooling_strategy='last',
    is_llm=True,
    torch_dtype=torch.float16
).cuda()

# 使用提示词编码
doc_vecs = angle.encode([
    '天气真好!',
    '天气非常好!',
    '我要去睡觉了'
], prompt=Prompts.A)

# 计算相似度
for i, dv1 in enumerate(doc_vecs):
    for dv2 in doc_vecs[i+1:]:
        print(cosine_similarity(dv1, dv2))

3️⃣ 基于 BiLLM 的模型

在 Colab 中打开

通过设置 apply_billm=True 并指定模型类,启用双向 LLM。

import os
import torch
from angle_emb import AnglE
from angle_emb.utils import cosine_similarity

# 设置 BiLLM 环境变量
os.environ['BiLLM_START_INDEX'] = '31'

# 加载 BiLLM 模型
angle = AnglE.from_pretrained(
    'NousResearch/Llama-2-7b-hf',
    pretrained_lora_path='SeanLee97/bellm-llama-7b-nli',
    pooling_strategy='last',
    is_llm=True,
    apply_billm=True,
    billm_model_class='LlamaForCausalLM',
    torch_dtype=torch.float16
).cuda()

# 使用自定义提示进行编码
doc_vecs = angle.encode([
    '天气真好!',
    '天气非常好!',
    '我要去睡觉了'
], prompt='句子 {text} 的代表性词语是:')

# 计算相似度
for i, dv1 in enumerate(doc_vecs):
    for dv2 in doc_vecs[i+1:]:
        print(cosine_similarity(dv1, dv2))

4️⃣ 浓缩版/套娃模型

在 Colab 中打开

通过截断层和嵌入维度,实现灵活的模型压缩。

from angle_emb import AnglE
from angle_emb.utils import cosine_similarity

# 加载模型
angle = AnglE.from_pretrained('mixedbread-ai/mxbai-embed-2d-large-v1', pooling_strategy='cls').cuda()

# 截断到特定层
angle = angle.truncate_layer(layer_index=22)

# 使用截断后的嵌入尺寸进行编码
doc_vecs = angle.encode([
    '天气真好!',
    '天气非常好!',
    '我要去睡觉了'
], embedding_size=768)

# 计算相似度
for i, dv1 in enumerate(doc_vecs):
    for dv2 in doc_vecs[i+1:]:
        print(cosine_similarity(dv1, dv2))

5️⃣ 第三方模型

使用 AnglE 可以加载任何基于 Transformer 的模型(例如 sentence-transformersBAAI/bge 等)。

from angle_emb import AnglE

# 加载第三方模型
model = AnglE.from_pretrained('mixedbread-ai/mxbai-embed-large-v1', pooling_strategy='cls').cuda()

# 编码文本
vec = model.encode('hello world', to_numpy=True)
print(vec)

⚡ 批量推理

使用 batched 库加速推理(推荐用于大规模处理)。

uv pip install batched
import batched
from angle_emb import AnglE

# 加载模型
model = AnglE.from_pretrained("WhereIsAI/UAE-Large-V1", pooling_strategy='cls').cuda()

# 启用动态批处理
model.encode = batched.dynamically(model.encode, batch_size=64)

# 编码大批量数据
vecs = model.encode([
    '天气真好!',
    '天气非常好!',
    '我要去睡觉了'
] * 50)

🕸️ 自定义训练

💡 完整详情请参阅 官方训练文档


🗂️ 第一步:准备数据集

AnglE 支持三种数据集格式。请根据任务选择:

格式 描述 使用场景
格式 A text1, text2, label 成对文本及相似度分数(0–1) 相似度评分
格式 B query, positive 查询-文档对 检索任务,无需硬负样本
格式 C query, positive, negative 查询及其正负样本 对比学习

注意事项:

  • 所有格式均使用 HuggingFace 的 datasets.Dataset
  • text1text2querypositivenegative 可以是字符串或字符串列表(列表时会随机采样)

🚂 第二步:训练方法

方案 A:命令行训练(推荐)

单 GPU:

CUDA_VISIBLE_DEVICES=0 angle-trainer --help

多 GPU 与 FSDP:

CUDA_VISIBLE_DEVICES=0,1,2,3 WANDB_MODE=disabled accelerate launch \
  --multi_gpu \
  --num_processes 4 \
  --main_process_port 2345 \
  --config_file examples/FSDP/fsdp_config.yaml \
  -m angle_emb.angle_trainer \
  --gradient_checkpointing 1 \
  --use_reentrant 0 \
  ...

多 GPU(标准方式):

CUDA_VISIBLE_DEVICES=0,1,2,3 WANDB_MODE=disabled accelerate launch \
  --multi_gpu \
  --num_processes 4 \
  --main_process_port 2345 \
  -m angle_emb.angle_trainer \
  --model_name_or_path YOUR_MODEL \
  --train_name_or_path YOUR_DATASET \
  ...

📁 更多示例:examples/Training


方案 B:Python API 训练

在 Colab 中打开

from datasets import load_dataset
from angle_emb import AnglE

# 第一步:加载预训练模型
angle = AnglE.from_pretrained(
    'SeanLee97/angle-bert-base-uncased-nli-en-v1',
    max_length=128,
    pooling_strategy='cls'
).cuda()

# 第二步:准备数据集(格式 A 示例)
ds = load_dataset('mteb/stsbenchmark-sts')
ds = ds.map(lambda obj: {
    "text1": str(obj["sentence1"]),
    "text2": str(obj['sentence2']),
    "label": obj['score']
})
ds = ds.select_columns(["text1", "text2", "label"])

# 第三步:训练模型
angle.fit(
    train_ds=ds['train'].shuffle(),
    valid_ds=ds['validation'],
    output_dir='ckpts/sts-b',
    batch_size=32,
    epochs=5,
    learning_rate=2e-5,
    save_steps=100,
    eval_steps=1000,
    warmup_steps=0,
    gradient_accumulation_steps=1,
    loss_kwargs={
        'cosine_w': 1.0,
        'ibn_w': 1.0,
        'angle_w': 0.02,
        'cosine_tau': 20,
        'ibn_tau': 20,
        'angle_tau': 20
    },
    fp16=True,
    logging_steps=100
)

# 第四步:评估
corrcoef = angle.evaluate(ds['test'])
print('Spearman 相关系数:', corrcoef)

⚙️ 高级配置

训练特殊模型

模型类型 CLI 标志 描述
LLM --is_llm 1 + LoRA 参数 必须手动启用 LLM 模式
BiLLM --apply_billm 1 --billm_model_class LlamaForCausalLM 双向 LLM(指南
浓缩版(ESE) --apply_ese 1 --ese_kl_temperature 1.0 --ese_compression_size 256 套娃风格嵌入

应用提示词

格式 标志 适用对象
格式 A --text_prompt "text: {text}" 同时应用于 text1text2
格式 B/C --query_prompt "query: {text}" 仅适用于 query 字段
格式 B/C --doc_prompt "document: {text}" 仅适用于 positivenegative 字段

列映射(旧版兼容性)

无需修改即可适配旧数据集:

# 命令行
--column_rename_mapping "text:query"

# Python
列重命名映射={"text": "query"}

模型转换

将训练好的模型转换为 sentence-transformers 格式:

python scripts/convert_to_sentence_transformers.py --help

💡 微调技巧

📖 完整文档

格式 建议
格式 A 增加 cosine_w 或减小 ibn_w
格式 B 仅调整 ibn_wibn_tau
格式 C 设置 cosine_w=0, angle_w=0.02, 并配置 cln_w + ibn_w

防止灾难性遗忘:

  • 设置 teacher_name_or_path 进行知识蒸馏
  • 自蒸馏时使用相同的模型路径
  • ⚠️ 确保教师模型和学生模型使用 相同的分词器

🔄 与 sentence-transformers 集成

任务 状态 备注
训练 ⚠️ 部分 SentenceTransformers 提供了 AnglE 损失,但为了获得最佳效果,请使用官方的 angle_emb
推理 ✅ 全面 可以通过 examples/convert_to_sentence_transformers.py 转换训练好的模型

🫡 引用

如果您使用了我们的代码和预训练模型,请通过以下方式引用我们的工作以支持我们:

@article{li2023angle,
  title={AnglE优化文本嵌入},
  author={李贤明和李静},
  journal={arXiv 预印本 arXiv:2309.12871},
  year={2023}
}

📜 更改日志

📅 描述
2025年1月 v0.6.0 - 重大重构 🎉:
• 移除 AngleDataTokenizer - 无需预先对数据集进行分词!
• 移除 DatasetFormats 类 - 使用字符串字面量('A', 'B', 'C')
• 移除 LLM 模型的自动检测 - 手动设置 is_llm
• 将 --prompt_template 重命名为 --text_prompt(仅适用于格式 A)
• 新增 --query_prompt--doc_prompt 用于格式 B/C
• 新增 --column_rename_mapping,以便在不修改旧数据集的情况下适配
• 更新数据格式:格式 B/C 现在使用 querypositivenegative 字段
• 支持格式 B/C 中基于列表的采样
• 更新示例,使用 accelerate launch
• 请参阅 MIGRATION_GUIDE.md 获取升级说明
2024年5月21日 支持 Espresso 句子嵌入
2024年2月7日 支持仅使用正样本对进行训练(格式 C:query, positive)
2023年12月4日 发布通用英语句子嵌入模型:WhereIsAI/UAE-Large-V1
2023年11月2日 发布英文预训练模型:SeanLee97/angle-llama-13b-nli
2023年10月28日 发布两款中文预训练模型:SeanLee97/angle-roberta-wwm-base-zhnli-v1SeanLee97/angle-llama-7b-zhnli-v1;新增中文 README.md

📧 联系方式

如果您有任何问题或建议,请随时通过电子邮件与我们联系:xmlee97@gmail.com

© 许可证

本项目采用 MIT 许可证。关于预训练模型的许可信息,请参阅相应模型的许可证文件。

版本历史

v0.6.02025/10/19
v0.5.62025/01/31
v0.5.22024/10/19
v0.5.12024/10/12
v0.4.72024/07/18
v0.4.42024/05/29
v0.4.02024/05/22

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|4天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|5天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

148.6k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.1k|★★☆☆☆|2天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|今天
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|3天前
插件开发框架