Joseph Pollack
implements documentation improvements
d45d242
|
raw
history blame
7.4 kB
# Features
The DETERMINATOR provides a comprehensive set of features for AI-assisted research:
## Core Features
### Multi-Source Search
- **General Web Search**: Search general knowledge sources for any domain
- **Neo4j Knowledge Graph**: Search structured knowledge graph for papers and disease relationships
- **PubMed**: Search peer-reviewed biomedical literature via NCBI E-utilities (automatically used when medical knowledge needed)
- **ClinicalTrials.gov**: Search interventional clinical trials (automatically used when medical knowledge needed)
- **Europe PMC**: Search preprints and peer-reviewed articles (includes bioRxiv/medRxiv)
- **RAG**: Semantic search within collected evidence using LlamaIndex
- **Automatic Source Selection**: Automatically determines which sources are needed based on query analysis
### MCP Integration
- **Model Context Protocol**: Expose search tools via MCP server
- **Claude Desktop**: Use The DETERMINATOR tools directly from Claude Desktop
- **MCP Clients**: Compatible with any MCP-compatible client
### Authentication
- **REQUIRED**: Authentication is mandatory before using the application
- **HuggingFace OAuth**: Sign in with HuggingFace account for automatic API token usage (recommended)
- **Manual API Keys**: Support for HuggingFace API keys via environment variables (`HF_TOKEN` or `HUGGINGFACE_API_KEY`)
- **Free Tier Support**: Automatic fallback to HuggingFace Inference API (public models) when no API key is available
- **Authentication Check**: The application will display an error message if authentication is not provided
### Secure Code Execution
- **Modal Sandbox**: Secure execution of AI-generated statistical code
- **Isolated Environment**: Network isolation and package version pinning
- **Safe Execution**: Prevents malicious code execution
### Semantic Search & RAG
- **LlamaIndex Integration**: Advanced RAG capabilities
- **Vector Storage**: ChromaDB for embedding storage
- **Semantic Deduplication**: Automatic detection of similar evidence
- **Embedding Service**: Local sentence-transformers (no API key required)
### Orchestration Patterns
- **Graph-Based Execution**: Flexible graph orchestration with conditional routing
- **Parallel Research Loops**: Run multiple research tasks concurrently
- **Iterative Research**: Single-loop research with search-judge-synthesize cycles that continues until precise answers are found
- **Deep Research**: Multi-section parallel research with planning and synthesis
- **Magentic Orchestration**: Multi-agent coordination using Microsoft Agent Framework (alias: "advanced" mode)
- **Stops at Nothing**: Only stops at configured limits (budget, time, iterations), otherwise continues until finding precise answers
**Orchestrator Modes**:
- `simple`: Legacy linear search-judge loop
- `advanced` (or `magentic`): Multi-agent coordination (requires OpenAI API key)
- `iterative`: Knowledge-gap-driven research with single loop
- `deep`: Parallel section-based research with planning
- `auto`: Intelligent mode detection based on query complexity
**Graph Research Modes** (used within graph orchestrator):
- `iterative`: Single research loop pattern
- `deep`: Multi-section parallel research pattern
- `auto`: Auto-detect pattern based on query complexity
**Execution Modes**:
- `use_graph=True`: Graph-based execution with parallel and conditional routing
- `use_graph=False`: Agent chains with sequential execution (backward compatible)
### Real-Time Streaming
- **Event Streaming**: Real-time updates via `AsyncGenerator[AgentEvent]`
- **Progress Tracking**: Monitor research progress with detailed event metadata
- **UI Integration**: Seamless integration with Gradio chat interface
### Budget Management
- **Token Budget**: Track and limit LLM token usage
- **Time Budget**: Enforce time limits per research loop
- **Iteration Budget**: Limit maximum iterations
- **Per-Loop Budgets**: Independent budgets for parallel research loops
### State Management
- **Thread-Safe Isolation**: ContextVar-based state management
- **Evidence Deduplication**: Automatic URL-based deduplication
- **Conversation History**: Track iteration history and agent interactions
- **State Synchronization**: Share evidence across parallel loops
### Multimodal Input & Output
- **Image Input (OCR)**: Upload images and extract text using optical character recognition
- **Audio Input (STT)**: Record or upload audio files and transcribe to text using speech-to-text
- **Audio Output (TTS)**: Generate audio responses with text-to-speech synthesis
- **Configurable Settings**: Enable/disable multimodal features via sidebar settings
- **Voice Selection**: Choose from multiple TTS voices (American English: af_*, am_*)
- **Speech Speed Control**: Adjust TTS speech speed (0.5x to 2.0x)
- **Multimodal Processing Service**: Integrated service for processing images and audio files
## Advanced Features
### Agent System
- **Pydantic AI Agents**: Type-safe agent implementation
- **Structured Output**: Pydantic models for agent responses
- **Agent Factory**: Centralized agent creation with fallback support
- **Specialized Agents**: Knowledge gap, tool selector, writer, proofreader, and more
### Search Tools
- **Rate Limiting**: Built-in rate limiting for external APIs
- **Retry Logic**: Automatic retry with exponential backoff
- **Query Preprocessing**: Automatic query enhancement and synonym expansion
- **Evidence Conversion**: Automatic conversion to structured Evidence objects
### Error Handling
- **Custom Exceptions**: Hierarchical exception system
- **Error Chaining**: Preserve exception context
- **Structured Logging**: Comprehensive logging with structlog
- **Graceful Degradation**: Fallback handlers for missing dependencies
### Configuration
- **Pydantic Settings**: Type-safe configuration management
- **Environment Variables**: Support for `.env` files
- **Validation**: Automatic configuration validation
- **Flexible Providers**: Support for multiple LLM and embedding providers
### Testing
- **Unit Tests**: Comprehensive unit test coverage
- **Integration Tests**: Real API integration tests
- **Mock Support**: Extensive mocking utilities
- **Coverage Reports**: Code coverage tracking
## UI Features
### Gradio Interface
- **Real-Time Chat**: Interactive chat interface with multimodal support
- **Streaming Updates**: Live progress updates
- **Accordion UI**: Organized display of pending/done operations
- **OAuth Integration**: Seamless HuggingFace authentication
- **Multimodal Input**: Support for text, images, and audio input in the same interface
- **Sidebar Settings**: Configuration accordions for research, multimodal, and audio settings
### MCP Server
- **RESTful API**: HTTP-based MCP server
- **Tool Discovery**: Automatic tool registration
- **Request Handling**: Async request processing
- **Error Responses**: Structured error responses
## Development Features
### Code Quality
- **Type Safety**: Full type hints with mypy strict mode
- **Linting**: Ruff for code quality
- **Formatting**: Automatic code formatting
- **Pre-commit Hooks**: Automated quality checks
### Documentation
- **Comprehensive Docs**: Detailed documentation for all components
- **Code Examples**: Extensive code examples
- **Architecture Diagrams**: Visual architecture documentation
- **API Reference**: Complete API documentation