Skip to main content

A simple RAG chatbot supporting multiple LLM providers

Project description

RAGnificentAI - Your Magnificent RAG-Powered Chatbot Toolkit

Python RAG LLM Compatible CLI Enabled

RAGnificentAI is a Python package that enables developers to quickly build powerful chatbots with seamless tool integration and Retrieval-Augmented Generation (RAG) capabilities, supporting any OpenAI-compatible LLM.

Why RAGnificentAI?

  • LLM Agnostic - Works with Groq, OpenAI, Gemini, and any OpenAI-compatible API
  • Easy Tool Integration - Add custom functions as tools with minimal code
  • Conversation Management - Efficient short-term memory management with summarization technique
  • Prompt Customization - Flexible system and summary prompts
  • Lightweight - Minimal dependencies, maximum functionality

Installation

  1. Install using pip:
pip install RAGnificentAI

Quick Start

from RAGnificentAI import ChatAI, AgentParams

def add(x: int, y: int) -> int:
    """Add two numbers together."""
    return x + y


tools = [add]

# For OpenAI-compatible endpoints
rag = ChatAI()
chatbot = rag.initiate_chatbot(
    params=AgentParams(
        model="gpt-3.5-turbo",  # Or any other model
        api_key="your_api_key",
        base_url="https://api.openai.com/v1",  # Or your custom endpoint
        system_prompt="You are a helpful AI assistant.",
        summary_prompt="Summarize the conversation concisely.",
        thread_id='1',
        tools=tools,  # Optional
        temperature=0.7  # Optional
    )
)

while True:
    user_input = input("You (q to quit): ")
    if user_input.lower() == 'q':
        break
    response = chatbot.run(messages=user_input)
    print("AI:", response)

Configuration Options

AgentParams

Parameter Type Description Required
model str Model name (e.g. "gpt-3.5-turbo") Yes
api_key str Your API key Yes
base_url str API base URL (default: OpenAI) Yes
system_prompt str Initial system prompt Yes
summary_prompt str Prompt for conversation summaries Yes
thread_id str Conversation thread identifier Yes
user_information dict User metadata for personalization No
tools list[callable] Custom tools/functions to integrate No

Supported LLM Providers

  • OpenAI (including Azure OpenAI)
  • Groq
  • Gemini
  • Any OpenAI-compatible API (LocalAI, vLLM, etc.)
  • Anthropic Claude (via OpenAI compatibility layer)

Adding Custom Tools

def multiply(a: int, b: int) -> int:
    """Multiply two numbers together."""
    return a * b

def get_weather(city: str) -> str:
    """Get current weather for a given city."""
    return f"Weather in {city}: Sunny"

tools = [multiply, get_weather]

New CLI Interface

Example Workflow:

# First-time setup
ragnificentai configure

# Start chatting (uses saved config)
ragnificentai chat

# Override specific settings
ragnificentai chat --model gpt-4 --thread-id special-convo

CLI Features

Command Description Options
chat Start interactive chat session --model, --api-key, --base-url
configure Save default configuration (interactive wizard)
version Show package version None

Best Practices

  1. Use environment variables for API keys
  2. Include clear docstrings for your tools
  3. Use type hints for better tool understanding
  4. Keep system prompts concise but descriptive
  5. Handle sensitive user information appropriately

License

RAGnificentAI is licensed under the RAGnificentAI Custom License:

Copyright (c) 2025 [K. M. Abul Farhad-Ibn-Alam]

Permission is hereby granted to any person obtaining a copy of this software
and associated documentation files (the "Software") to use, modify, and distribute
the Software for any purpose, subject to the following conditions:

1. Redistributions must retain this copyright notice.
2. Commercial use requires written permission from the author.
3. The author is not liable for any damages arising from Software use.

All rights not expressly granted are reserved by the author.

Here's the updated README with the new CLI feature prominently featured, while maintaining all existing content:

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

ragnificentai-1.3.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

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

ragnificentai-1.3-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file ragnificentai-1.3.tar.gz.

File metadata

  • Download URL: ragnificentai-1.3.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for ragnificentai-1.3.tar.gz
Algorithm Hash digest
SHA256 f3873120496344051caab5668c580be0600a8f319c0e4f6d3687b075b912f61c
MD5 c8d4cb0b95e40b0efa38d7bc55403bd7
BLAKE2b-256 afd016196cbd498219acfd1aa33a947e8b725f4c0dc3c4cb912de1d9706e220e

See more details on using hashes here.

File details

Details for the file ragnificentai-1.3-py3-none-any.whl.

File metadata

  • Download URL: ragnificentai-1.3-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for ragnificentai-1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e353838c502f0e06f5fd7ea9264e9bf4c0572b64eba9a282e0f6c283d9cfddc1
MD5 27247b187ed212a58db349cccc484017
BLAKE2b-256 bb944fbf6dcb7a6880936a9fa82d342b8d609560505148c92333d5e3a82e6833

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