Skip to main content

A lightweight and modular PyTorch-based image classification package

Project description

Christofy 🧠📦

Christofy is a lightweight and modular PyTorch-based image classification package designed for both training and prediction. Built on top of ResNet18, it supports both binary and multi-class classification with clean abstractions and an easy-to-use API. Now featuring a powerful RAG (Retrieval-Augmented Generation) system and Vision Analysis capabilities with Ollama integration!


🚀 Features

  • ✅ Train image classifiers using CNN (ResNet18)
  • ✅ Binary and multi-class classification support
  • ✅ Predict the class of a single image using saved model
  • ✅ Modular structure: clean separation between training and prediction
  • ✅ RAG pipeline with Ollama integration for text analysis
  • ✅ Support for multiple file formats (PDF, DOCX, CSV, Excel, TXT, JSON)
  • ✅ Vision Analysis with multimodal AI models
  • ✅ Conversation mode for interactive image analysis
  • ✅ Batch processing for multiple images
  • ✅ Ready to be installed as a Python package

📚 Usage

Image Classification

import christofy

# Train a model
christofy.train_model(
    data_dir="path/to/dataset",
    learning_rate=0.001,
    epochs=10,
    batch_size=32,
    output_dir="output"
)

# Make predictions
predicted_class = christofy.predict_image(
    model_path="output/model.pth",
    image_path="path/to/image.jpg"
)

RAG Pipeline

from christofy import run_rag_pipeline

# Example usage
response = run_rag_pipeline(
    data="path/to/documents",  # Can be file, directory, or text
    query="Your question here?",
    model="llama2",              # Your local Ollama model
    embedding_model="nomic-embed-text",  # For embeddings
    temperature=0.7
)

print(response)

Supported File Formats for RAG

  • PDF files (requires PyPDF2 or pdfplumber)
  • Word documents (DOCX) (requires python-docx)
  • CSV and Excel files (requires pandas)
  • Text files (TXT)
  • JSON files

Vision Analysis

from christofy import vision_spell

# Basic usage
vision_spell("image.jpg", "What do you see?")

# With model selection
vision_spell("image.jpg", "What do you see?", model="llava:13b")

# Full parameters
vision_spell(
    image_path="image.jpg",
    question="What do you see?",
    model="llava",
    temperature=0.7,
    max_tokens=None,
    system_prompt=None,
    conversation_mode=False
)

# Conversation mode
chat = vision_spell("image.jpg", "What do you see?", conversation_mode=True)
chat.ask("What colors are present?")
chat.ask("Is this indoors or outdoors?")

# Export conversation
chat.export_conversation("json")
chat.export_conversation("txt")

# Batch processing
from christofy import batch_vision_analysis

batch_vision_analysis(
    image_paths=["img1.jpg", "img2.png"],
    questions="What do you see?",
    model="llava"
)

# Utility functions
from christofy import list_vision_models, get_system_info, show_module_info

# Alternative function name
from christofy import vision
vision("image.jpg", "What do you see?")

Requirements

  • Python 3.9+
  • PyTorch
  • Ollama (for RAG and Vision functionality)
  • Pillow (for Vision functionality)
  • Additional dependencies based on file formats

Installation

pip install christofy

For PDF support:

pip install PyPDF2  # or pdfplumber

For DOCX support:

pip install python-docx

For CSV/Excel support:

pip install pandas openpyxl

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

christofy-1.0.0.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

christofy-1.0.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file christofy-1.0.0.tar.gz.

File metadata

  • Download URL: christofy-1.0.0.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.8

File hashes

Hashes for christofy-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ed4edb452b6acffaf95972f1f9a01743f393b7180b4a47c6d0131ba0c68ba6c4
MD5 7dbf2aaa345ea8dd0f13a85540631685
BLAKE2b-256 6cb7f5aaafdf55fea84107b624b2b9d7cc8b155565dcec12154477912216973c

See more details on using hashes here.

File details

Details for the file christofy-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: christofy-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.8

File hashes

Hashes for christofy-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64f1eeaf80dbcd63dffd8d2cf5fba36fceb7e836e64cdb688440d7d6e4d03834
MD5 7b0d8d93e39685a4d9ccbb244e888e27
BLAKE2b-256 8d8bfb4588b2ca779b47b0727925d75b2da17427bf8a177b9b287fde9f49b081

See more details on using hashes here.

Supported by

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