Promptify logo

Promptify

promptslab/Promptify

Task-based NLP engine with Pydantic structured outputs

GraphCanon updated 1w · GitHub synced 1w · 30 views this month

4.6k stars363 forksLast push 4mo Python Apache-2.0

Decision brief

Promptify is a Python library designed for task-based Natural Language Processing with Pydantic structured outputs and built-in evaluation features, leveraging LiteLLM as its universal LLM backend. It supports prompt版本控制

Good fit when

  • When your application requires structured NLP outputs with clear schemas defined using Pydantic
  • If you need to version control over different prompts for repeatability in tasks such as Named Entity Recognition (NER), classification, and question-answering

Avoid when

  • When your project does not require structured outputs or if Pydantic schemas are not suitable for your use case
  • If you do not need built-in evaluation metrics for prompt performance and prefer more customization in the evaluation process
Requirements:
Requires Python 3.9 or higher; Can be installed via pip or directly from GitHub

Observed Jul 9, 2026 · Source: enrich:decision_facts

Verify the decision

Maintenance and security

Full trust report
Maintenance
Slowing (133d since push)
As of 1w
Provenance
Not a fork · Organization account
As of 1w
Security (OSV)
No lockfile
As of 1mo

Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.

Install

pip install Promptify
PyPI

How it fits your stack(8)

Typed graph edges - alternatives, integrations, successors, and dependencies. Ranked by relationship type, not raw GitHub stars.

Integrates

Relationship graph

Optional deeper exploration of typed edges and category neighbours.

Similar tools

Same-category neighbours not already linked as typed edges.

Evidence and technical details

Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.

Overview

Promptify is an NLP library that focuses on prompt engineering and versioning for LLMs like GPT-3, GPT-4. It provides a structured manner of retrieving output using Pydantic models.

Capability facts

Languages
python

Source: github.language+pyproject.toml · Aug 7, 2026

Categories

Graph entities

Compatibility

Sourced claims from the README excerpt - not unsourced marketing copy.

Python runtimePython

Source: README excerpt (regex_v1, Aug 7, 2026)

Requires Python 3.9+.
Source link

Tags

README

Badge image

Promptify

Task-based NLP engine with Pydantic structured outputs, built-in evaluation, and LiteLLM as the universal LLM backend. Think "scikit-learn for LLM-powered NLP".

Promptify is released under the Apache 2.0 license. PyPI version http://makeapullrequest.com Community colab

Badge image

Installation

With pip

Requires Python 3.9+.

pip install promptify

or

pip install git+https://github.com/promptslab/Promptify.git

For evaluation metrics support:

pip install promptify[eval]

Quick Tour

3-Line NER

from promptify import NER

ner = NER(model="gpt-4o-mini", domain="medical")
result = ner("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")

Output:

NERResult(entities=[
    Entity(text="93-year-old", label="AGE"),
    Entity(text="chronic right hip pain", label="CONDITION"),
    Entity(text="osteoporosis", label="CONDITION"),
    Entity(text="hypertension", label="CONDITION"),
    Entity(text="depression", label="CONDITION"),
    Entity(text="chronic atrial fibrillation", label="CONDITION"),
    Entity(text="severe nausea and vomiting", label="SYMPTOM"),
    Entity(text="urinary tract infection", label="CONDITION"),
])

Classification

from promptify import Classify

clf = Classify(model="gpt-4o-mini", labels=["positive", "negative", "neutral"])
result = clf("Amazing product! Best purchase I've ever made.")
# Classification(label="positive", confidence=0.95)

Question Answering

from promptify import QA

qa = QA(model="gpt-4o-mini")
answer = qa("Einstein was born in Ulm in 1879.", question="Where was Einstein born?")
# Answer(answer="Ulm", evidence="Einstein was born in Ulm", confidence=0.98)

Custom Task with Any Pydantic Schema

from promptify import Task
from pydantic import BaseModel

class MovieReview(BaseModel):
    sentiment: str
    rating: float
    key_themes: list[str]

task = Task(model="gpt-4o", output_schema=MovieReview, instruction="Analyze this movie review.")
review = task("Nolan's best work. Stunning visuals but the plot drags.")
# MovieReview(sentiment="mostly positive", rating=7.5, key_themes=["visuals", "pacing"])

Any Provider - Just Change the Model String

ner_openai = NER(model="gpt-4o-mini")
ner_claude = NER(model="claude-sonnet-4-20250514")
ner_local  = NER(model="ollama/llama3")

Batch Processing

results = ner.batch(["text1", "text2", "text3"], max_concurrent=10)

Async Support

result = await ner.acall("Patient has diabetes")

Built-in Evaluation

from promptify.eval import evaluate

scores = evaluate(task=ner, dataset=labeled_data, metrics=["precision", "recall", "f1"])
# {"precision": 0.92, "recall": 0.88, "f1": 0.90}

Features

  • **2-3

For agents

This page has a .md twin and JSON over the API.

Was this helpful?

Anonymous feedback helps us improve pages and translations.