Promptify简介
Promptify是一个开源的提示工程工具,旨在简化NLP任务的处理流程。它可以轻松生成适用于GPT、PaLM等流行生成模型的提示,帮助用户快速解决各种自然语言处理问题。
主要特点包括:
- 只需几行代码即可执行NER、文本分类等NLP任务,无需训练数据
- 支持添加one-shot、few-shot示例到提示中
- 提供结构化的Python对象输出,便于解析和过滤
- 支持自定义示例和样本
- 可在Hugging Face Hub上运行任何模型的推理
- 优化提示以减少OpenAI token成本(即将推出)
安装方法
推荐使用pip安装Promptify:
pip3 install promptify
或者从GitHub源码安装:
pip3 install git+https://github.com/promptslab/Promptify.git
快速上手
下面是一个使用Promptify进行医疗领域命名实体识别的简单示例:
from promptify import Prompter, OpenAI, Pipeline
sentence = """The patient is a 93-year-old female with a medical
history of chronic right hip pain, osteoporosis,
hypertension, depression, and chronic atrial
fibrillation admitted for evaluation and management
of severe nausea and vomiting and urinary tract
infection"""
model = OpenAI(api_key) # 或使用HubModel()进行Huggingface推理
prompter = Prompter('ner.jinja') # 选择模板或提供自定义模板
pipe = Pipeline(prompter, model)
result = pipe.fit(sentence, domain="medical", labels=None)
输出结果:
[
{"E": "93-year-old", "T": "Age"},
{"E": "chronic right hip pain", "T": "Medical Condition"},
{"E": "osteoporosis", "T": "Medical Condition"},
{"E": "hypertension", "T": "Medical Condition"},
{"E": "depression", "T": "Medical Condition"},
{"E": "chronic atrial fibrillation", "T": "Medical Condition"},
{"E": "severe nausea and vomiting", "T": "Symptom"},
{"E": "urinary tract infection", "T": "Medical Condition"},
{"Branch": "Internal Medicine", "Group": "Geriatrics"},
]
学习资源
-
官方文档 - 详细介绍了Promptify的安装、使用方法和API文档。
-
GitHub仓库 - 包含源代码、示例和贡献指南。
-
Colab笔记本教程:
-
PyPI项目页面 - 包含最新版本信息和安装说明。
-
Discord社区 - 讨论Promptify、提示工程、LLM等相关话题。
贡献指南
Promptify欢迎社区贡献,包括新功能、基础设施改进和文档完善。详情请参阅贡献指南。
总结
Promptify为NLP任务提供了一个强大而灵活的解决方案。通过简化提示生成和提供广泛的自定义选项,它使用户能够轻松利用GPT等生成模型的潜力,快速高效地创建各种文本内容。无论你是NLP新手还是专家,Promptify都能帮助你更轻松地处理各种自然语言处理任务。