Skip to main content

A sample AI toolkit by Schogini Systems with Retrieval-Augmented Generation (RAG).

Project description

SchoginiAI

SchoginiAI is a robust AI toolkit developed by Schogini Systems, providing advanced Retrieval-Augmented Generation (RAG) capabilities. It leverages the power of LangChain, OpenAI, and multiple vector storage options like FAISS, ChromaDB, and Pinecone. This makes it a versatile tool for building AI-driven solutions for various applications.


๐Ÿš€ Features

  • PDF & Text Processing: Extracts knowledge from PDF files or raw text for vector storage.
  • Flexible Vector Stores: Supports FAISS, ChromaDB, and Pinecone for vector management.
  • Advanced Text Chunking: Includes configurable chunking strategies like RecursiveCharacterTextSplitter and TokenTextSplitter.
  • Environment-Based Configurations: Manages API keys and settings securely using .env files.
  • RAG Capabilities: Combines vector retrieval with OpenAIโ€™s LLMs for generating relevant, context-aware responses.

๐Ÿ›  Installation

From PyPI

Install SchoginiAI directly from PyPI:

pip install SchoginiAI

From Source

Clone the repository and install locally:

git clone https://github.com/yourusername/SchoginiAI.git
cd SchoginiAI
pip install .

Replace yourusername with your GitHub username.


๐Ÿ”ง Configuration

Environment Variables

Create a .env file to securely store your API keys:

OPENAI_API_KEY=your_openai_api_key
PINECONE_API_KEY=your_pinecone_api_key

Custom Settings

Edit the settings.py file to configure the following options:

  • Vector Store Type: Choose between faiss, chroma, or pinecone.
  • Text Splitter Strategy: Select chunking strategies like RecursiveCharacterTextSplitter or TokenTextSplitter.
  • Chunk Size and Overlap: Control the size and overlap of text chunks.

Example settings.py snippet:

vector_store_type = "chroma"  # Options: 'faiss', 'chroma', 'pinecone'
text_splitter_strategy = "RecursiveCharacterTextSplitter"
chunk_size = 1000
chunk_overlap = 200

๐Ÿ“š Usage

Build Vector Store from Text

from SchoginiAI import SchoginiAIRAG

rag_ai = SchoginiAIRAG()

sample_text = """
Schogini Systems is a pioneer in AI Chatbots.
We specialize in automation solutions for small businesses.
"""

rag_ai.build_vector_store(sample_text)
rag_ai.save_vector_store()

Query the Vector Store

from SchoginiAI import SchoginiAIRAG

rag_ai = SchoginiAIRAG()
rag_ai.load_vector_store()

response = rag_ai.ask_question("What services does Schogini Systems provide?")
print("Response:", response)

Build Vector Store from PDF

from SchoginiAI import SchoginiAIRAG

rag_ai = SchoginiAIRAG()
rag_ai.build_vector_store_from_pdf("path/to/your/pdf_file.pdf")
rag_ai.save_vector_store()

๐Ÿณ Docker Usage

Build Docker Image

docker build --no-cache -t schoginiai .

Run Docker Commands

Create Vector Store

  • Using FAISS:

    docker run --rm -e OPENAI_API_KEY="your_openai_api_key" -e PINECONE_API_KEY="your_pinecone_api_key" schoginiai create
    
  • Using ChromaDB:

    docker run --rm -e OPENAI_API_KEY="your_openai_api_key" -e PINECONE_API_KEY="your_pinecone_api_key" schoginiai create
    

Query Vector Store

  • Using FAISS:

    docker run --rm -e OPENAI_API_KEY="your_openai_api_key" -e PINECONE_API_KEY="your_pinecone_api_key" schoginiai query
    
  • Using ChromaDB:

    docker run --rm -e OPENAI_API_KEY="your_openai_api_key" -e PINECONE_API_KEY="your_pinecone_api_key" schoginiai query
    

Replace "your_openai_api_key" and "your_pinecone_api_key" with your actual keys.


๐Ÿ—ƒ Project Structure

SchoginiAI/
โ”œโ”€โ”€ SchoginiAI/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ””โ”€โ”€ main.py
โ”œโ”€โ”€ examples/
โ”‚   โ”œโ”€โ”€ usage_example.py
โ”‚   โ”œโ”€โ”€ knowledge_creation.py
โ”‚   โ””โ”€โ”€ .env
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ test_faiss.py
โ”‚   โ”œโ”€โ”€ test_chroma.py
โ”œโ”€โ”€ settings.py
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ doit.sh
โ””โ”€โ”€ setup.py

๐Ÿ“ฆ Dependencies

SchoginiAI relies on the following Python packages:

  • langchain>=0.0.200
  • openai>=0.28.1
  • faiss-cpu>=1.7.6
  • chromadb>=0.3.22
  • python-dotenv>=0.21.0

Install these dependencies using:

pip install -r requirements.txt

๐Ÿ›ก License

This project is licensed under the MIT License.


๐Ÿ“š Additional Resources


With this setup, SchoginiAI is ready to handle advanced AI-driven tasks with ease and flexibility. For more details, refer to the source code or open an issue in the repository.

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

schoginiai-0.2.4.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

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

SchoginiAI-0.2.4-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file schoginiai-0.2.4.tar.gz.

File metadata

  • Download URL: schoginiai-0.2.4.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.11

File hashes

Hashes for schoginiai-0.2.4.tar.gz
Algorithm Hash digest
SHA256 d463f98cd25c4534b6a97855dfc3a0b714e8eff47fc13cda4c8e071c1f735a57
MD5 d62d672c286623f266779ea71df75e6e
BLAKE2b-256 5c9eda0cd27241ce02319ac62793a8c73d47251926bfd7edc4d5dae0453da80d

See more details on using hashes here.

File details

Details for the file SchoginiAI-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: SchoginiAI-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.11

File hashes

Hashes for SchoginiAI-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8abb3fdbe1b5c7d4423d56376ef28d799ccd998b243ff1a2817366b7c5043aa7
MD5 a26989e99b9f7254ee5daec9015c5f34
BLAKE2b-256 1dee0b60841181ec50d7fe64b50b44f12d83023009468d47b47cc8feb4acd1e9

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