Skip to main content

A command-line tool for AI-powered classification tasks using LLMs

Project description

Classifai

Classifai is a powerful and user-friendly command-line tool for AI-powered classification tasks. It leverages the capabilities of large language models to provide accurate and efficient classification of various types of content.

Features

  • Easy-to-use command-line interface
  • Supports multiple classification categories
  • Utilizes advanced language models for high accuracy
  • Customizable prompts and examples
  • Supports both OpenAI and OpenRouter models

Installation

pip install pipx
pipx install classifai

Usage Examples

  1. Multiple classification with Examples:

    classifai  'news.ycombinator.com' 'facebook.com' 'ai.meta.com' \
    --classes 'signal' 'noise' 'neutral' \
    --examples "github.com:signal" "arxiv.org:signal" "instagram.com:noise" \
    "pintrest.com:noise" "anthropic.ai:signal" "twitter.com:noise" \
    --model openrouter/openai/gpt-4-0314
    
    [
       {
          "content": "news.ycombinator.com",
          "classification": "signal",
          "score": 1.0
       },
       {
          "content": "facebook.com",
          "classification": "noise",
          "score": 1.0
       },
       {
          "content": "ai.meta.com",
          "classification": "signal",
          "score": 1.0
       }
    ]
    
  2. Terminal commands classification:

    'df -h' 'chown -R user:user /' -c 'safe' 'danger' 'neutral' -e "ls:safe" "rm:danger" "echo:neutral" --m gpt-4o-mini
    
    [
       {
          "content": "df -h",
          "classification": "safe",
          "score": 1.0
       },
       {
          "content": "chown -R user:user /",
          "classification": "danger",
          "score": 1.0
       }
    ]
    
  3. Classify a tweet

    classifai $tweet --classes 'AI' 'ASI' 'AGI' -m gpt-4o-mini
    
    [
       {
          "content": "Superintelligence is within reach.\n\nBuilding safe superintelligence (SSI) is the most important technical problem of our\u200b\u200b time.\n\nWe've started the world\u2019s first straight-shot SSI lab, with one goal and one product: a safe superintelligence.",
          "classification": "ASI",
          "score": 1.0
       }
    ]
    
    classifai $tweet --classes 'PROGRAMING' 'MACHINE-LEARNING' -m gpt-4o-mini
    
    [
    {
       "content": "Superintelligence is within reach.\n\nBuilding safe superintelligence (SSI) is the most important technical problem of our\u200b\u200b time.\n\nWe've started the world\u2019s first straight-shot SSI lab, with one goal and one product: a safe superintelligence.",
       "classification": "MACHINE-LEARNING",
       "score": 0.833334466588825
    }
    ]
    
  4. Verify facts

    classifai "<source>$(curl -s docs.jina.ai)</source><statement>Jina ai has an image generation api" -c True False -m gpt-4o --no-content
    
    [
      {
        "class": "false",
        "score": 0.99997334352929
      }
    ]
    

Advanced scripts

Acting on the classification

class-tweet() {
    local tweet="$1"
    local threshold=0.6
    local class="MACHINE-LEARNING"

    result=$(classifai "$tweet" -c 'PROGRAMMING' 'MACHINE-LEARNING' \
    -m openrouter/openai/gpt-4o-mini \
    | jq -r '.[0] | select(.classification == "'"$class"'" and .score > '"$threshold"') | .classification')

    if [ -n "$result" ]; then
        echo "Tweet classified as $class with high confidence. Executing demo..."
        echo "Demo: This is a highly relevant tweet about $class"
    else
        echo "Tweet does not meet classification criteria."
    fi
}

Classifai now supports reading from stdin and writing to stdout, making it easier to use in pipelines and shell scripts.

You can pipe content into classifai:

echo "This is a test sentence" | classifai -c 'positive' 'negative' 'neutral'

Or use heredoc for multiple lines:

cat <<EOF | classifai -c 'tech' 'sports' 'politics' -f simple
AI makes rapid progress
Football season starts soon
New tax policy announced
EOF

By default, classifai outputs JSON, which can be easily parsed by other tools:

echo "OpenAI releases GPT-4" | classifai -c 'tech' 'business' | jq '.[0].class'

For simpler output that's easier to use in shell scripts, use the -f simple option:

echo "Breaking news: earthquake hits city" | classifai -c 'world' 'local' 'sports' -f simple | cut -f2

This will output only the classified class, making it easy to use in conditionals:

if [[  == "world" ]]; then
    echo "This is world news"
fi

These enhancements make classifai more versatile and easier to integrate into complex data processing pipelines and shell scripts.

Using Classifai as a Python Module

Classifai can also be used as a Python module for more advanced use cases. Here's an example of how to use it in your Python code:

from classifai import Classifai

# Initialize the Classifai model
model = Classifai(model_name='openrouter/openai/gpt-4-0314')

# Classify a single piece of content
content = "OpenAI releases GPT-4"
classes = ['tech', 'business']
result = model.classify(content, classes)

print(result)

This allows you to integrate Classifai's powerful classification capabilities directly into your Python applications.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

classifai-0.1.1.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

classifai-0.1.1-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file classifai-0.1.1.tar.gz.

File metadata

  • Download URL: classifai-0.1.1.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for classifai-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b183325fea0e270f319c49e161fea899f516af0d2c2c2070224c50ff8e943fa4
MD5 afebb3af4bb4942471a0861bc457a505
BLAKE2b-256 d0cd863d85998213519dd97341216801ed97dea99c37a46b4a667242f294ac2c

See more details on using hashes here.

File details

Details for the file classifai-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: classifai-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for classifai-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7077df876183edf5044d4b1d17b01dde9cc629beda649146f0ba49c9ea993c6c
MD5 51f86e694e6aa42e4964f2b72106efca
BLAKE2b-256 bc9e5599a4c555110b7b44d0ed89f84f1f666de482ab4ea104513222120b416a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page