[](https://opensource.org/licenses/Apache 2.0 )
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.
- 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
- Python 3.8+
- Poetry for dependency management
- (Optional) GPU for better ML performance
-
Clone the repository:
git clone https://github.com/yourusername/sifu.git cd sifu
-
Install dependencies using Poetry:
poetry install
Or install with pip:
pip install -r requirements.txt
-
Install language models (for NLP features):
python -m spacy download en_core_web_sm
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())
For detailed documentation, please visit our documentation site.
- Knowledge Base: Store and retrieve information
- Context Management: Handle conversation state
- Intent Matcher: Understand user intents
- Learning Engine: Improve through feedback
- API Reference: REST API documentation
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
Contributions are welcome! Please read our Contributing Guide for details.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
For questions or support, please open an issue or contact your-email@example.com.
Made with β€οΈ by Your Name
for ELLMa- 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
- 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
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
-
Context-Aware Response Generation
- Uses conversation history and user context
- Implements attention mechanisms for better context understanding
- Learn more
-
Pattern Matching with NLP
- Advanced NLP techniques for intent recognition
- Support for fuzzy matching and semantic similarity
- Learn more
-
Real-time Learning Loop
- Continuous learning from interactions
- Confidence-based knowledge updates
- Learn more
-
Multi-language Processing
- Language detection and translation
- Culture-aware responses
- Learn more
- Python 3.8+
- Poetry for dependency management
- Redis (for caching and real-time features)
# 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
Once the server is running, access the interactive API documentation at:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
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."
)
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 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
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin feature/your-feature
) - Create a new Pull Request
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
- Built with β€οΈ for the ELLMa project
- Uses FastAPI for the web framework
- Integrates with various NLP and ML libraries