Configuration Guide¶
This document provides detailed information about configuring Ragatanga for your specific needs.
Configuration Methods¶
Ragatanga can be configured in several ways:
- Environment Variables: Set configuration through environment variables
- Configuration Files: Use
.envfiles for persistent configuration - Programmatic Configuration: Configure components directly in code
- Configuration Objects: Use configuration classes for fine-grained control
Environment Variables¶
Core Configuration¶
| Variable | Description | Default | Example |
|---|---|---|---|
RAGATANGA_LOG_LEVEL | Logging level | INFO | DEBUG |
RAGATANGA_CACHE_DIR | Directory for caching | ~/.ragatanga/cache | /tmp/ragatanga_cache |
RAGATANGA_MAX_RESULTS | Maximum results to return | 5 | 10 |
RAGATANGA_CONFIDENCE_THRESHOLD | Minimum confidence score | 0.6 | 0.8 |
Embedding Configuration¶
| Variable | Description | Default | Example |
|---|---|---|---|
RAGATANGA_EMBEDDING_PROVIDER | Embedding provider | openai | sentence_transformers |
RAGATANGA_EMBEDDING_MODEL | Embedding model name | text-embedding-ada-002 | all-MiniLM-L6-v2 |
RAGATANGA_EMBEDDING_BATCH_SIZE | Batch size for embeddings | 32 | 64 |
RAGATANGA_EMBEDDING_CACHE | Enable embedding cache | true | false |
LLM Configuration¶
| Variable | Description | Default | Example |
|---|---|---|---|
RAGATANGA_LLM_PROVIDER | LLM provider | openai | anthropic |
RAGATANGA_LLM_MODEL | LLM model name | gpt-3.5-turbo | claude-2 |
RAGATANGA_LLM_TEMPERATURE | LLM temperature | 0.0 | 0.7 |
RAGATANGA_LLM_MAX_TOKENS | Maximum tokens for LLM | 1024 | 2048 |
API Keys¶
| Variable | Description | Example |
|---|---|---|
OPENAI_API_KEY | OpenAI API key | sk-... |
ANTHROPIC_API_KEY | Anthropic API key | sk-ant-... |
HUGGINGFACE_API_KEY | HuggingFace API key | hf_... |
Configuration File¶
You can create a .env file in your project root with the following format:
# Core Configuration
RAGATANGA_LOG_LEVEL=INFO
RAGATANGA_CACHE_DIR=~/.ragatanga/cache
RAGATANGA_MAX_RESULTS=5
RAGATANGA_CONFIDENCE_THRESHOLD=0.6
# Embedding Configuration
RAGATANGA_EMBEDDING_PROVIDER=openai
RAGATANGA_EMBEDDING_MODEL=text-embedding-ada-002
RAGATANGA_EMBEDDING_BATCH_SIZE=32
RAGATANGA_EMBEDDING_CACHE=true
# LLM Configuration
RAGATANGA_LLM_PROVIDER=openai
RAGATANGA_LLM_MODEL=gpt-3.5-turbo
RAGATANGA_LLM_TEMPERATURE=0.0
RAGATANGA_LLM_MAX_TOKENS=1024
# API Keys
OPENAI_API_KEY=your-openai-api-key
Programmatic Configuration¶
Configuring the Ontology Manager¶
from ragatanga.core.ontology import OntologyManager
from ragatanga.core.config import OntologyConfig
# Create configuration
ontology_config = OntologyConfig(
reasoning_level="RDFS",
cache_materialized=True,
prefixes={
"ex": "http://example.org/",
"schema": "http://schema.org/"
}
)
# Initialize with configuration
ontology_manager = OntologyManager(
"path/to/ontology.ttl",
config=ontology_config
)
Configuring the Embedding Manager¶
from ragatanga.core.embeddings import EmbeddingManager
from ragatanga.core.config import EmbeddingConfig
# Create configuration
embedding_config = EmbeddingConfig(
provider="sentence_transformers",
model_name="all-MiniLM-L6-v2",
batch_size=64,
cache_embeddings=True
)
# Initialize with configuration
embedding_manager = EmbeddingManager(config=embedding_config)
Configuring the LLM Manager¶
from ragatanga.core.llm import LLMManager
from ragatanga.core.config import LLMConfig
# Create configuration
llm_config = LLMConfig(
provider="openai",
model_name="gpt-4",
temperature=0.2,
max_tokens=2048,
system_prompt="You are a helpful assistant specialized in knowledge retrieval."
)
# Initialize with configuration
llm_manager = LLMManager(config=llm_config)
Configuring the Retriever¶
from ragatanga.core.retrieval import AdaptiveRetriever
from ragatanga.core.config import RetrievalConfig
# Create configuration
retrieval_config = RetrievalConfig(
semantic_search_weight=0.7,
ontology_search_weight=0.3,
max_results=10,
confidence_threshold=0.6,
use_query_enhancement=True,
use_multilingual=True
)
# Initialize with configuration
retriever = AdaptiveRetriever(
ontology_manager,
embedding_manager=embedding_manager,
llm_manager=llm_manager,
config=retrieval_config
)
Configuration Classes¶
Ragatanga provides several configuration classes for fine-grained control:
OntologyConfig: Configuration for the ontology managerEmbeddingConfig: Configuration for embedding generation and storageLLMConfig: Configuration for language model interactionsRetrievalConfig: Configuration for retrieval operationsAPIConfig: Configuration for the API server
See the API Reference for detailed documentation of these classes.