Skip to main content

Enhanced Knowledge System for ELLMa

Project description

Sifu - Advanced Knowledge and NLP Support System

Python Version [![License: Apache 2.0 ](https://img.shields.io/badge/License-Apache 2.0 -yellow.svg)](https://opensource.org/licenses/Apache 2.0 ) Documentation Status Code style: black

Sifu is an advanced knowledge and natural language processing system designed to enhance AI assistants with sophisticated context handling, real-time learning, and multi-language support.

🌟 Features

  • Advanced NLP: Intent recognition and entity extraction
  • Knowledge Management: Store and retrieve information with confidence scoring
  • Context Awareness: Maintain conversation context and history
  • Multi-language Support: Automatic language detection and translation
  • Learning Engine: Improve responses through feedback
  • RESTful API: Easy integration with existing systems
  • Modular Architecture: Extensible design for custom components

🚀 Quick Start

Prerequisites

  • Python 3.8+
  • Poetry for dependency management
  • (Optional) GPU for better ML performance

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/sifu.git
    cd sifu
    
  2. Install dependencies using Poetry:

    poetry install
    

    Or install with pip:

    pip install -r requirements.txt
    
  3. Install language models (for NLP features):

    python -m spacy download en_core_web_sm
    

Basic Usage

from sifu import Sifu
import asyncio

async def main():
    # Initialize Sifu
    sifu = Sifu()
    
    # Process a query
    response = await sifu.process_query("Hello, what can you do?")
    print(f"Response: {response['text']}")
    
    # Add knowledge
    await sifu.knowledge_base.add_entry(
        content="Sifu is an AI assistant",
        tags=["introduction"],
        language="en"
    )

if __name__ == "__main__":
    asyncio.run(main())

📚 Documentation

For detailed documentation, please visit our documentation site.

Key Components

🧪 Testing

Run the test suite:

# Install test dependencies
poetry install --with test

# Run tests
pytest tests/ -v

# Run with coverage
pytest --cov=sifu --cov-report=term-missing

🤝 Contributing

Contributions are welcome! Please read our Contributing Guide for details.

📄 License

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

📞 Contact

For questions or support, please open an issue or contact your-email@example.com.


Made with ❤️ by Your Name

for ELLMa

Core Components

1. Knowledge Management System

  • SimpleKnowledgeBase: Core knowledge storage with confidence scoring and continuous learning
  • Context Manager: Handles conversation history and context awareness
  • Response Generator: Multi-strategy response generation with fallback mechanisms

2. Advanced Features

  • Real-time Learning: Learns from interactions and feedback
  • Multi-language Support: Built-in support for multiple languages
  • User Profiles: Personalized knowledge and preferences
  • External API Integration: Access to real-time information
  • FastAPI-based API: Easy integration with other systems

Documentation

Architecture

graph TD
    A[User Query] --> B[Context Manager]
    B --> C{Query Type?}
    C -->|Knowledge| D[Knowledge Base]
    C -->|External Data| E[API Integrations]
    C -->|Conversation| F[Conversation History]
    D --> G[Response Generator]
    E --> G
    F --> G
    G --> H[Response + Learning]
    H --> I[Update Knowledge]
    I --> J[User Feedback]
    J --> H

Key Algorithms

  1. Context-Aware Response Generation

    • Uses conversation history and user context
    • Implements attention mechanisms for better context understanding
    • Learn more
  2. Pattern Matching with NLP

    • Advanced NLP techniques for intent recognition
    • Support for fuzzy matching and semantic similarity
    • Learn more
  3. Real-time Learning Loop

    • Continuous learning from interactions
    • Confidence-based knowledge updates
    • Learn more
  4. Multi-language Processing

    • Language detection and translation
    • Culture-aware responses
    • Learn more

Getting Started

Prerequisites

  • Python 3.8+
  • Poetry for dependency management
  • Redis (for caching and real-time features)

Installation

# Clone the repository
git clone https://github.com/yourusername/sifu.git
cd sifu

# Install dependencies
poetry install

# Set up environment variables
cp .env.example .env
# Edit .env with your configuration

# Run the development server
poetry run uvicorn sifu.api:app --reload

API Documentation

Once the server is running, access the interactive API documentation at:

Usage Examples

Basic Usage

from sifu import Sifu

# Initialize Sifu
sifu = Sifu()

# Process a query
response = sifu.process_query("What's the weather like today?")
print(response)

# Provide feedback
sifu.provide_feedback(
    question="What's the weather like today?",
    rating=1,
    better_response="The current weather is sunny with a temperature of 22°C."
)

Advanced Usage with Custom Knowledge Sources

from sifu import Sifu
from sifu.knowledge import WebSource, APISource

# Initialize with custom knowledge sources
sifu = Sifu(
    knowledge_sources=[
        WebSource(),
        APISource("weather_api", "https://api.weatherapi.com/v1")
    ]
)

# Process a query with context
response = sifu.process_query(
    "What's the weather in Tokyo?",
    context={"user_id": "123", "language": "en"}
)
print(response)

Configuration

Configuration is handled through environment variables. Copy .env.example to .env and adjust the settings as needed.

# Database
DATABASE_URL=sqlite:///./sifu.db
REDIS_URL=redis://localhost:6379/0

# API Keys (if using external services)
OPENAI_API_KEY=your_openai_key
WEATHER_API_KEY=your_weather_api_key

# Application Settings
DEBUG=True
LOG_LEVEL=INFO

Contributing

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/your-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin feature/your-feature)
  5. Create a new Pull Request

License

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

Acknowledgements

  • Built with ❤️ for the ELLMa project
  • Uses FastAPI for the web framework
  • Integrates with various NLP and ML libraries

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

sifu-0.1.0.tar.gz (27.5 kB view details)

Uploaded Source

Built Distribution

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

sifu-0.1.0-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

File details

Details for the file sifu-0.1.0.tar.gz.

File metadata

  • Download URL: sifu-0.1.0.tar.gz
  • Upload date:
  • Size: 27.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.4 Linux/6.14.9-300.fc42.x86_64

File hashes

Hashes for sifu-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1a8452e606f714a0dc8f76e49ca3b56416940568a0f3652b041a896b551dd6db
MD5 9d1238cc5ca673f8c5ff3b68fa3564bf
BLAKE2b-256 60b7db29b20855475eebd3a088044e39f352793ec0834d63c64f7f841bcfedf6

See more details on using hashes here.

File details

Details for the file sifu-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sifu-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 30.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.4 Linux/6.14.9-300.fc42.x86_64

File hashes

Hashes for sifu-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b27eeba3dd752fcaf5c605f5815da6a028cfcc728f3dce50ed5d63f6d9ece67c
MD5 61bcc12bd53b5840a77d07d70c283d42
BLAKE2b-256 f5dc980c87167d85811f0d0ac60a074ae74330423fadc452b972cd0656312a5b

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