A smart Multi-modal RAG (Retrieval Augmented Generation) library for processing PDFs with various language models
Project description
Smart MRAG
A powerful AI-powered document analysis system designed specifically for financial professionals. Smart MRAG helps financial analysts quickly extract insights from complex financial documents, research reports, and market data.
Features
-
Financial Document Analysis:
- Extract key financial metrics and ratios from reports
- Analyze earnings calls transcripts and investor presentations
- Process complex financial statements and regulatory filings
- Identify market trends and competitive analysis from research reports
-
Efficient Information Retrieval:
- Quickly find relevant sections in lengthy financial documents
- Compare financial data across multiple reports
- Extract specific financial metrics and KPIs
- Analyze historical performance trends
-
Intelligent Financial Querying:
- Ask natural language questions about financial data
- Get detailed analysis of financial statements
- Compare company performance metrics
- Analyze market trends and industry benchmarks
-
Multi-Document Analysis:
- Compare financial data across multiple companies
- Analyze industry trends from multiple reports
- Track changes in financial metrics over time
- Generate comprehensive market analysis
-
Advanced Financial Insights:
- Identify key financial trends and patterns
- Analyze risk factors and market conditions
- Extract competitive intelligence
- Generate investment thesis support
-
Flexible Model Support: Use any combination of LLM and embedding models
-
Optimized Default Model: Uses GPT-4o as the default model for optimal performance
Use Cases for Financial Analysts
1. Earnings Analysis
- Quickly analyze earnings reports and transcripts
- Extract key financial metrics and guidance
- Compare actual results with estimates
- Identify important management commentary
2. Financial Statement Analysis
- Process and analyze balance sheets, income statements, and cash flow statements
- Calculate and compare financial ratios
- Track changes in key metrics over time
- Identify financial trends and patterns
3. Market Research
- Analyze industry reports and market research
- Compare company performance with peers
- Track market trends and competitive dynamics
- Generate investment thesis support
4. Regulatory Compliance
- Process and analyze regulatory filings (10-K, 10-Q, etc.)
- Track changes in accounting policies
- Monitor compliance requirements
- Analyze risk factors and disclosures
5. Investment Research
- Generate comprehensive company analysis
- Compare investment opportunities
- Track market sentiment and analyst opinions
- Support investment decision-making
Model Support
Recommended Model Combinations
-
OpenAI Models:
- GPT-4o Series (Default):
gpt-4o: Optimized for financial document analysisgpt-4o-mini: Lightweight version for simpler tasksgpt-4o-turbo: Fast and efficient version
- GPT-3.5 Series:
gpt-3.5-turbo: Standard version, good for general usegpt-3.5-turbo-16k: Extended context window (16k tokens)
- GPT-4 Series:
gpt-4: Standard version, excellent for complex analysisgpt-4-32k: Extended context window (32k tokens)gpt-4-turbo-preview: Faster and more cost-effectivegpt-4-vision-preview: Supports image analysis
- Embedding Models:
text-embedding-ada-002: Standard version, good balancetext-embedding-3-small: Cost-effective optiontext-embedding-3-large: Highest qualitytext-embedding-3-large-256: Optimized for specific use cases
- Requires: OpenAI API key
- GPT-4o Series (Default):
-
Anthropic Models:
- LLM:
claude-3-opus,claude-3-sonnet,claude-2.1 - Embedding:
text-embedding-ada-002,text-embedding-3-small,text-embedding-3-large - Requires: Anthropic API key + OpenAI API key (for embeddings)
- LLM:
-
Google Models:
- LLM:
gemini-pro,gemini-ultra - Embedding:
textembedding-gecko,textembedding-gecko-multilingual - Requires: Google API key
- LLM:
Default Configuration
The system uses GPT-4o as the default model because it:
- Is specifically optimized for financial document analysis
- Provides excellent understanding of financial terminology and concepts
- Offers accurate extraction of financial metrics and data
- Has strong context understanding for complex financial documents
- Is cost-effective for financial analysis tasks
Installation
pip install smart-mrag
Usage
Basic Usage
from smart_mrag import SmartMRAG
# Initialize with default model (GPT-4o)
mrag = SmartMRAG(
file_path="earnings_report.pdf",
api_key="your-openai-api-key"
)
# Load financial documents
mrag.load_document("earnings_report.pdf")
mrag.load_document("annual_report.pdf")
# Ask financial analysis questions
response = mrag.ask("What were the key financial metrics in the earnings report?")
print(response)
# Compare financial data
response = mrag.ask("Compare the revenue growth between the last two quarters")
print(response)
Using Custom Endpoints
from smart_mrag import SmartMRAG
# Initialize with custom endpoint
mrag = SmartMRAG(
file_path="earnings_report.pdf",
api_key="your-openai-api-key",
model_name="gpt-4",
openai_endpoint="https://your-custom-endpoint.openai.azure.com/" # Custom endpoint
)
# The rest of the usage remains the same
response = mrag.ask("What were the key financial metrics?")
print(response)
Advanced Financial Analysis
from smart_mrag import SmartMRAG
# Custom configuration for financial analysis
mrag = SmartMRAG(
# API Keys
openai_api_key="your-openai-api-key",
# Model Selection
llm_model="gpt-4o", # Optimized for financial analysis
embedding_model="text-embedding-3-large", # High accuracy for financial data
# Analysis Parameters
chunk_size=2000, # Larger chunks for financial context
chunk_overlap=400, # More overlap for financial metrics
similarity_threshold=0.8, # Higher threshold for financial accuracy
# Advanced Settings
max_tokens=8000, # More tokens for detailed analysis
temperature=0.3, # Lower temperature for precise financial data
top_k=5 # More context for financial comparisons
)
# Load multiple financial documents
mrag.load_document("company_10k.pdf")
mrag.load_document("industry_report.pdf")
mrag.load_document("competitor_analysis.pdf")
# Perform complex financial analysis
response = mrag.ask("""
Analyze the company's financial performance:
1. Compare revenue growth with industry peers
2. Identify key risk factors from the 10-K
3. Extract and analyze key financial ratios
4. Summarize management's outlook
""")
print(response)
API Key Requirements
The system automatically detects which API keys are required based on your model selection:
-
OpenAI Models:
- Requires: OpenAI API key
- Example:
gpt-4o+text-embedding-3-large
-
Anthropic Models:
- Requires: Anthropic API key + OpenAI API key
- Example:
claude-3-opus+text-embedding-ada-002
-
Google Models:
- Requires: Google API key
- Example:
gemini-pro+textembedding-gecko
-
Mixed Models:
- Requires: All relevant API keys
- Example:
gpt-4o-turbo+textembedding-gecko(requires both OpenAI and Google API keys)
Model Selection Guide
Choosing the Right LLM
- For Financial Analysis (Recommended):
gpt-4o(optimized for financial documents) - For General Analysis:
gpt-3.5-turbo(fast, cost-effective) - For Complex Analysis:
gpt-4orgpt-4o(more capable, higher cost) - For Large Documents:
gpt-4-32korgpt-3.5-turbo-16k(extended context) - For Fast Analysis:
gpt-4o-turboorgpt-4-turbo-preview(optimized for speed) - For Multilingual Analysis:
gemini-pro(excellent multilingual support)
Choosing the Right Embedding Model
- For General Analysis:
text-embedding-ada-002(good balance of performance and cost) - For Better Accuracy:
text-embedding-3-large(higher quality, higher cost) - For Cost Efficiency:
text-embedding-3-small(good performance, lower cost) - For Specific Analysis:
text-embedding-3-large-256(optimized embeddings) - For Multilingual Analysis:
textembedding-gecko-multilingual(excellent multilingual support)
Code Robustness and Error Handling
Smart MRAG is built with robust error handling and financial-specific safeguards to ensure reliable analysis:
1. Financial Data Validation
- Data Type Checking: Validates financial metrics and ratios for correct data types
- Range Validation: Ensures financial values are within reasonable ranges
- Consistency Checks: Verifies consistency between related financial metrics
- Format Verification: Validates financial statement formats and structures
2. Document Processing Safeguards
- PDF Integrity Checks: Validates PDF structure and content
- OCR Fallback: Automatic fallback to OCR for scanned documents
- Encoding Detection: Handles various text encodings in financial documents
- Table Recognition: Special handling for financial tables and statements
3. Error Recovery Mechanisms
- Graceful Degradation: Falls back to simpler analysis when complex processing fails
- Partial Results: Returns partial analysis when complete analysis isn't possible
- Retry Logic: Automatic retries for transient API failures
- Context Preservation: Maintains analysis context across retries
4. Financial-Specific Error Handling
try:
# Load and analyze financial document
mrag.load_document("financial_statement.pdf")
analysis = mrag.ask("Extract key financial ratios")
except FinancialDataError as e:
# Handle financial data specific errors
print(f"Financial data error: {e}")
# Attempt to recover or provide partial analysis
except DocumentFormatError as e:
# Handle document format issues
print(f"Document format error: {e}")
# Attempt to reformat or use alternative parsing
except APIError as e:
# Handle API-related errors
print(f"API error: {e}")
# Implement retry logic or fallback
except Exception as e:
# Handle unexpected errors
print(f"Unexpected error: {e}")
# Log error and provide graceful degradation
5. Financial Context Preservation
- Metric Tracking: Maintains context of financial metrics across queries
- Historical Comparison: Preserves historical financial data for trend analysis
- Industry Context: Maintains industry-specific financial benchmarks
- Document Relationships: Tracks relationships between related financial documents
6. Performance Optimization
- Caching: Implements intelligent caching of financial data
- Batch Processing: Optimizes processing of multiple financial documents
- Parallel Analysis: Concurrent analysis of related financial metrics
- Resource Management: Efficient memory and CPU usage for large documents
7. Security and Compliance
- Data Encryption: Secure handling of sensitive financial data
- Access Control: Role-based access to financial analysis features
- Audit Logging: Comprehensive logging of financial analysis operations
- Compliance Checks: Validation against financial reporting standards
8. Financial Analysis Quality Control
# Example of quality control checks
def analyze_financial_statement(document):
try:
# Initial analysis
analysis = mrag.ask("Analyze financial metrics")
# Quality checks
if not validate_financial_metrics(analysis):
raise FinancialDataError("Invalid financial metrics detected")
if not check_consistency(analysis):
raise ConsistencyError("Inconsistent financial data")
# Additional validation
validate_against_industry_standards(analysis)
check_for_anomalies(analysis)
return analysis
except FinancialAnalysisError as e:
# Handle analysis-specific errors
log_error(e)
return partial_analysis_with_warnings()
9. Monitoring and Reporting
- Performance Metrics: Tracks analysis speed and accuracy
- Error Rates: Monitors and reports error frequencies
- Quality Metrics: Measures analysis quality and completeness
- Usage Statistics: Tracks feature usage and performance
10. Continuous Improvement
- Error Pattern Analysis: Identifies common error patterns
- Automated Testing: Regular testing of financial analysis capabilities
- Performance Optimization: Continuous optimization of analysis algorithms
- Feature Enhancement: Regular updates based on user feedback
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smart_mrag-0.1.4.tar.gz.
File metadata
- Download URL: smart_mrag-0.1.4.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0484381e23d2c9219683dc1b74baef51938c0c8b432a2cd626e0a9be5577a4a
|
|
| MD5 |
c132fb23147d56700b6faa64622ee614
|
|
| BLAKE2b-256 |
321cc9aa3b6f6b3281224bd2833c0042587c8d12347137e879a0b1079749bd81
|
File details
Details for the file smart_mrag-0.1.4-py3-none-any.whl.
File metadata
- Download URL: smart_mrag-0.1.4-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8dcf99f50a5e1f0498ea635410baae5f33d3a7a539d581e5202aea28dfeaf0e1
|
|
| MD5 |
bcb7b2efa3e2d5db6e8e7aebc46c24cc
|
|
| BLAKE2b-256 |
c56be35489c8bcd364c2da435391620907248c21f4b364520747c5abc5ed55d1
|