Skip to main content

Christofy is a lightweight, modular PyTorch-based AI toolkit that unifies essential deep learning capabilities. It supports Image Classification, Segmentation, and advanced Vision Analysis with clean, easy-to-use APIs. With built-in Retrieval-Augmented Generation (RAG) powered by ChromaDB and Ollama, it seamlessly blends vision and language intelligence. Designed for flexibility and speed, Christofy is your all-in-one arsenal for building modern AI solutions.

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
  • ✅ Graph-based image segmentation
  • ✅ 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?")

Image Segmentation

from christofy import segmenter

# Basic usage with default parameters
segmenter("image.jpg")

# With custom parameters
segmenter(
    image_path="image.jpg",
    sigma=0.5,           # Standard deviation for Gaussian smoothing
    merge_threshold=500,  # Threshold for merging segments
    min_size=50          # Minimum segment size
)

Requirements

  • Python 3.9+
  • PyTorch
  • Ollama (for RAG and Vision functionality)
  • Pillow (for Vision functionality)
  • scikit-image (for Segmentation functionality)
  • matplotlib (for Segmentation visualization)
  • 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.1.tar.gz (20.0 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.1-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: christofy-1.0.1.tar.gz
  • Upload date:
  • Size: 20.0 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.1.tar.gz
Algorithm Hash digest
SHA256 47c3c94801e5e34f513f1000b0dfddfa809e66ae74a8f3007160e3c9e4dfd220
MD5 d0f81d8c3e69dde4c21caafa2547fa41
BLAKE2b-256 7cfae14da902645f59f1e31c58898893b67338e3445efae85ccf13760f7f002b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: christofy-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 20.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 382ac68554177d151ebb0f7bd899a92c86ae32840b9a01557589bd498d7f4db9
MD5 a85de7771ec13e486838f50d1f2d1bb5
BLAKE2b-256 127e8ffcd7a12a663eac699c663e7659a64c7e3da22d45b450eff798bda8a6b4

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