123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- [app]
- # app settings are global available like `r2r_config.agent.app`
- # project_name = "r2r_default" # optional, can also set with `R2R_PROJECT_NAME` env var
- default_max_documents_per_user = 1_000_000
- default_max_chunks_per_user = 10_000_000
- default_max_collections_per_user = 1_000_000
- # Set the default max upload size to 2 GB for local testing
- default_max_upload_size = 2147483648 # 2 GB for anything not explicitly listed
- # LLM used for internal operations, like deriving conversation names
- fast_llm = "openai/gpt-4.1-mini"
- # LLM used for user-facing output, like RAG replies
- quality_llm = "openai/gpt-4.1-mini"
- # LLM used for ingesting visual: inputs
- vlm = "openai/gpt-4.1-mini"
- # LLM used for transcription
- audio_lm = "openai/whisper-1"
- # Reasoning model, used for `research` agent
- reasoning_llm = "openai/o4-mini"
- # Planning model, used for `research` agent
- planning_llm = "anthropic/claude-3-7-sonnet-20250219"
- [app.max_upload_size_by_type]
- # Common text-based formats
- txt = 2147483648 # 2 GB
- md = 2147483648
- tsv = 2147483648
- csv = 2147483648
- xml = 2147483648
- html = 2147483648
- # Office docs
- doc = 2147483648
- docx = 2147483648
- ppt = 2147483648
- pptx = 2147483648
- xls = 2147483648
- xlsx = 2147483648
- odt = 2147483648
- # PDFs
- pdf = 2147483648
- # E-mail
- eml = 2147483648
- msg = 2147483648
- p7s = 2147483648
- # Images
- bmp = 2147483648
- heic = 2147483648
- jpeg = 2147483648
- jpg = 2147483648
- png = 2147483648
- tiff = 2147483648
- # E-books and other formats
- epub = 2147483648
- rtf = 2147483648
- rst = 2147483648
- org = 2147483648
- [agent]
- rag_agent_static_prompt = "static_rag_agent"
- rag_agent_dynamic_prompt = "dynamic_rag_agent"
- #tools = ["search_file_knowledge", "content"]
- rag_tools = ["search_file_descriptions", "search_file_knowledge", "get_file_content"] # can add "web_search" | "web_scrape"
- # The following tools are available to the `research` agent
- research_tools = ["rag", "reasoning", "critique", "python_executor"]
- # tool_names = ["local_search", "web_search"] # uncomment to enable web search
- #tool_names = ["local_search"]
- # [agent.generation_config]
- # model = "openai/gpt-4o"
- [auth]
- provider = "r2r"
- access_token_lifetime_in_minutes = 6000 # set a very high default value, for easier testing
- refresh_token_lifetime_in_days = 7
- require_authentication = false
- require_email_verification = false
- default_admin_email = "xujiawei@cocorobo.cc"
- default_admin_password = "usestudio-1"
- [completion]
- provider = "r2r"
- concurrent_request_limit = 256000
- #fast_llm = "openai/gpt-4.1-mini"
- request_timeout = 60
- [completion.generation_config]
- #model = "openai/gpt-4.1-mini"
- temperature = 0.1
- top_p = 1.0
- max_tokens_to_sample = 1024
- stream = false
- add_generation_kwargs = { }
- [crypto]
- provider = "bcrypt"
- [database]
- provider = "postgres"
- default_collection_name = "Default"
- default_collection_description = "Your default collection."
- # collection_summary_system_prompt = 'default_system'
- # collection_summary_task_prompt = 'default_collection_summary'
- # KG settings
- batch_size = 6400
- # PostgreSQL tuning settings
- [database.postgres_configuration_settings]
- checkpoint_completion_target = 0.7
- default_statistics_target = 100
- effective_io_concurrency = 4
- effective_cache_size = 5242880
- huge_pages = "try"
- maintenance_work_mem = 655360
- max_connections = 2560
- max_parallel_workers_per_gather = 16
- max_parallel_workers = 4
- max_parallel_maintenance_workers = 4
- max_wal_size = 102400
- max_worker_processes = 8
- min_wal_size = 80
- shared_buffers = 163840
- statement_cache_size = 1000
- random_page_cost = 1.1
- wal_buffers = 2560
- work_mem = 409600
- # Graph creation settings
- [database.graph_creation_settings]
- graph_entity_description_prompt = "graph_entity_description"
- graph_extraction_prompt = "graph_extraction"
- entity_types = []
- relation_types = []
- automatic_deduplication = false
- # Graph enrichment settings
- [database.graph_enrichment_settings]
- graph_communities_prompt = "graph_communities"
- # (Optional) Graph search settings – add fields as needed
- [database.graph_search_settings]
- # e.g., search_mode = "default"
- # Rate limiting settings
- [database.limits]
- global_per_min = 60
- route_per_min = 20
- monthly_limit = 10000
- # Route-specific limits (empty by default)
- [database.route_limits]
- # e.g., "/api/search" = { global_per_min = 30, route_per_min = 10, monthly_limit = 5000 }
- # User-specific limits (empty by default)
- [database.user_limits]
- # e.g., "user_uuid_here" = { global_per_min = 20, route_per_min = 5, monthly_limit = 2000 }
- [database.maintenance]
- vacuum_schedule = "0 3 * * *" # Run at 3:00 AM daily
- [embedding]
- provider = "litellm"
- # For basic applications, use `openai/text-embedding-3-small` with `base_dimension = 512`
- # RECOMMENDED - For advanced applications,
- # use `openai/text-embedding-3-large` with `base_dimension = 3072` and binary quantization
- #base_model = "openai/text-embedding-3-small"
- #base_dimension = 512
- base_model = "openai/text-embedding-3-large"
- #base_model = "/text-embedding-v3"
- base_dimension = 256
- rerank_model = ""
- rerank_url = ""
- # rerank_model = "huggingface/mixedbread-ai/mxbai-rerank-large-v1" # reranking model
- batch_size = 1280
- prefixes = {} # Provide prefix overrides here if needed
- add_title_as_prefix = false
- concurrent_request_limit = 2560
- max_retries = 3
- initial_backoff = 1.0
- max_backoff = 64.0
- # Deprecated fields (if still used)
- rerank_dimension = 0
- rerank_transformer_type = ""
- # Vector quantization settings for embeddings
- [embedding.quantization_settings]
- quantization_type = "FP32"
- # (Additional quantization parameters can be added here)
- [completion_embedding]
- # Generally this should be the same as the embedding config, but advanced users may want to run with a different provider to reduce latency
- provider = "litellm"
- base_model = "openai/text-embedding-3-large"
- #base_model = "dashscope/text-embedding-v3"
- base_dimension = 256
- batch_size = 128
- add_title_as_prefix = false
- concurrent_request_limit = 256
- [file]
- provider = "postgres"
- [ingestion]
- provider = "r2r"
- chunking_strategy = "recursive"
- chunk_size = 800
- chunk_overlap = 400
- excluded_parsers = ["mp4"]
- vlm_batch_size=2000
- # Ingestion-time document summary parameters
- # skip_document_summary = False
- # document_summary_system_prompt = 'default_system'
- # document_summary_task_prompt = 'default_summary'
- # chunks_for_document_summary = 128
- document_summary_model = "openai/gpt-4.1-mini"
- vision_img_model = "openai/gpt-4.1-mini"
- vision_pdf_model = "openai/gpt-4.1-mini"
- automatic_extraction = false # enable automatic extraction of entities and relations
- parser_overrides = {}
- # Chunk enrichment settings
- [ingestion.chunk_enrichment_settings]
- chunk_enrichment_prompt = "chunk_enrichment"
- enable_chunk_enrichment = false
- n_chunks = 2
- # [ingestion.chunk_enrichment_settings]
- # enable_chunk_enrichment = false # disabled by default
- # n_chunks = 2 # the number of chunks (both preceeding and succeeding) to use in enrichment
- # generation_config = { model = "openai/gpt-4.1-mini" }
- [ingestion.extra_parsers]
- pdf = ["ocr", "zerox"]
- #pdf = "ocr"
- [logging]
- provider = "r2r"
- log_table = "logs"
- log_info_table = "log_info"
- [ocr]
- provider = "mistral"
- model = "mistral-ocr-latest"
- [orchestration]
- provider = "no"
- #max_runs = 2048
- #kg_creation_concurrency_limit = 32
- #ingestion_concurrency_limit = 16
- #kg_concurrency_limit = 4
- [prompt]
- provider = "r2r"
- [email]
- provider = "console_mock"
- [scheduler]
- provider = "apscheduler"
|