pub struct Settings {Show 103 fields
pub default_user_id: String,
pub default_dataset_name: String,
pub system_root_directory: String,
pub data_root_directory: String,
pub cache_root_directory: String,
pub logs_root_directory: String,
pub monitoring_tool: String,
pub classification_model: String,
pub summarization_model: String,
pub graph_model: String,
pub summarization_schema: Option<Value>,
pub llm_provider: String,
pub llm_model: String,
pub llm_api_key: String,
pub llm_endpoint: String,
pub llm_api_version: String,
pub llm_temperature: f64,
pub llm_streaming: bool,
pub llm_max_completion_tokens: u32,
pub llm_max_retries: u32,
pub llm_max_parallel_requests: u32,
pub llm_mock: bool,
pub llm_cassette: String,
pub llm_record_path: String,
pub graph_prompt_path: String,
pub llm_fallback_model: String,
pub llm_fallback_provider: String,
pub llm_fallback_endpoint: String,
pub llm_fallback_api_key: String,
pub graph_database_provider: String,
pub graph_database_url: String,
pub graph_database_name: String,
pub graph_database_username: String,
pub graph_database_password: String,
pub graph_database_port: u16,
pub graph_database_host: String,
pub graph_database_key: String,
pub graph_file_path: String,
pub graph_filename: String,
pub vector_db_provider: String,
pub vector_db_url: String,
pub vector_db_port: u16,
pub vector_db_name: String,
pub vector_db_key: String,
pub vector_db_username: String,
pub vector_db_password: String,
pub vector_db_host: String,
pub chunk_strategy: String,
pub chunk_engine: String,
pub chunk_size: u32,
pub chunk_overlap: u32,
pub relational_db_url: String,
pub migration_db_url: String,
pub db_provider: String,
pub db_host: String,
pub db_port: u16,
pub db_name: String,
pub db_username: String,
pub db_password: String,
pub default_system_prompt_path: String,
pub embedding_provider: String,
pub embedding_model_path: String,
pub embedding_tokenizer_path: String,
pub embedding_model_name: String,
pub embedding_dimensions: u32,
pub embedding_max_sequence_length: u32,
pub embedding_batch_size: u32,
pub embedding_endpoint: String,
pub embedding_api_key: String,
pub embedding_api_version: String,
pub transcription_model: String,
pub ontology_file_path: String,
pub ontology_resolver: String,
pub ontology_matching_strategy: String,
pub cache_backend: String,
pub cache_host: String,
pub cache_port: u16,
pub cache_username: String,
pub cache_password: String,
pub session_ttl_seconds: u64,
pub enable_caching: bool,
pub auto_feedback: bool,
pub default_user_email: String,
pub default_user_password: String,
pub enable_access_control: bool,
pub log_level: String,
pub llm_rate_limit_enabled: bool,
pub llm_rate_limit_requests: u32,
pub llm_rate_limit_interval: u32,
pub embedding_rate_limit_enabled: bool,
pub embedding_rate_limit_requests: u32,
pub embedding_rate_limit_interval: u32,
pub storage_backend: String,
pub storage_bucket_name: String,
pub cognee_tracing_enabled: bool,
pub otel_service_name: String,
pub otel_exporter_otlp_endpoint: String,
pub otel_exporter_otlp_headers: String,
pub otel_exporter_otlp_protocol: String,
pub otel_span_processor: String,
pub otel_traces_sampler: String,
pub otel_traces_sampler_arg: String,
pub enable_last_accessed: bool,
}Fields§
§default_user_id: String§default_dataset_name: String§system_root_directory: String§data_root_directory: String§cache_root_directory: String§logs_root_directory: String§monitoring_tool: String§classification_model: String§summarization_model: String§graph_model: String§summarization_schema: Option<Value>Custom JSON schema for summarization output (Python summarization_model parity).
#[serde(skip)] keeps config snapshots stable.
llm_provider: String§llm_model: String§llm_api_key: String§llm_endpoint: String§llm_api_version: String§llm_temperature: f64§llm_streaming: bool§llm_max_completion_tokens: u32§llm_max_retries: u32§llm_max_parallel_requests: u32§llm_mock: boolSelect the record/replay mock LLM instead of the real provider
(MOCK_LLM). Parallels MOCK_EMBEDDING. Requires the mock-llm feature.
llm_cassette: StringCassette path for the replay mock when llm_mock is set (MOCK_LLM_CASSETTE).
Empty = unset.
llm_record_path: StringWhen non-empty, wrap the real adapter in a recording mock that writes a
cassette to this path (COGNEE_RECORD_LLM). Empty = unset.
graph_prompt_path: String§llm_fallback_model: StringFallback LLM model name used when the primary model fails.
llm_fallback_provider: StringFallback LLM provider (e.g. "openai", "ollama").
llm_fallback_endpoint: StringBase URL for the fallback LLM API endpoint.
llm_fallback_api_key: StringAPI key for the fallback LLM provider.
graph_database_provider: String§graph_database_url: String§graph_database_name: String§graph_database_username: String§graph_database_password: String§graph_database_port: u16§graph_database_host: String§graph_database_key: String§graph_file_path: String§graph_filename: String§vector_db_provider: String§vector_db_url: String§vector_db_port: u16§vector_db_name: String§vector_db_key: String§vector_db_username: String§vector_db_password: String§vector_db_host: String§chunk_strategy: String§chunk_engine: String§chunk_size: u32§chunk_overlap: u32§relational_db_url: String§migration_db_url: String§db_provider: StringSelects the relational DB backend: "sqlite" (default) or "postgres".
When set to "postgres", the individual db_host/db_port/db_name/
db_username/db_password fields are used instead of relational_db_url.
Mirrors the Python DB_PROVIDER environment variable.
db_host: String§db_port: u16§db_name: String§db_username: String§db_password: String§default_system_prompt_path: String§embedding_provider: String§embedding_model_path: String§embedding_tokenizer_path: String§embedding_model_name: String§embedding_dimensions: u32§embedding_max_sequence_length: u32§embedding_batch_size: u32§embedding_endpoint: StringEmbedding API endpoint URL (e.g. https://api.openai.com/v1/embeddings).
Maps to EMBEDDING_ENDPOINT env var.
embedding_api_key: StringEmbedding API key. Maps to EMBEDDING_API_KEY env var (fallback: LLM_API_KEY).
embedding_api_version: StringEmbedding API version string (e.g. for Azure OpenAI api-version).
transcription_model: StringTranscription model name (e.g. "whisper-1").
ontology_file_path: String§ontology_resolver: StringOntology resolver backend. Currently always resolved to RdfLibOntologyResolver
when ontology_file_path is set — this field is reserved for future multi-resolver
support (e.g. SPARQL endpoint). Only "rdflib" is implemented.
ontology_matching_strategy: StringFuzzy matching strategy for entity name resolution. Currently always resolved to
FuzzyMatchingStrategy (Ratcliff/Obershelp gestalt) — this field is reserved for
future strategy selection. Only "fuzzy" is implemented.
cache_backend: StringSession store backend: "fs", "redis", or "seaorm".
cache_host: String§cache_port: u16§cache_username: String§cache_password: String§session_ttl_seconds: u64Session time-to-live in seconds (default: 604 800 = 7 days).
enable_caching: bool§auto_feedback: bool§default_user_email: String§default_user_password: String§enable_access_control: bool§log_level: String§llm_rate_limit_enabled: bool§llm_rate_limit_requests: u32§llm_rate_limit_interval: u32§embedding_rate_limit_enabled: bool§embedding_rate_limit_requests: u32§embedding_rate_limit_interval: u32§storage_backend: StringFile storage backend: "local" or "s3".
storage_bucket_name: String§cognee_tracing_enabled: bool§otel_service_name: String§otel_exporter_otlp_endpoint: String§otel_exporter_otlp_headers: String§otel_exporter_otlp_protocol: StringOTLP transport: "grpc" (default) or "http/protobuf".
Mirrors the OTEL spec env var OTEL_EXPORTER_OTLP_PROTOCOL.
otel_span_processor: StringSpan processor mode: "batch" (default) or "simple".
simple is synchronous-per-span and intended only for
debugging or for collectors known to misbehave with batches.
otel_traces_sampler: StringSampler name passed through to the OTEL SDK.
Empty string means: do not override; let the SDK read
OTEL_TRACES_SAMPLER itself (default parentbased_always_on).
Recognised values follow the OTEL spec:
always_on, always_off, traceidratio, parentbased_always_on,
parentbased_always_off, parentbased_traceidratio.
otel_traces_sampler_arg: StringArgument for the sampler. Currently only meaningful for the
traceidratio / parentbased_traceidratio samplers, which expect
a 0.0–1.0 ratio. Empty string means: do not override.
enable_last_accessed: boolImplementations§
Source§impl Settings
impl Settings
Sourcepub fn load_from_env() -> Self
pub fn load_from_env() -> Self
Build Settings entirely from environment variables (and any .env file).
Equivalent to Python’s LLMConfig() / GraphConfig() instantiation:
starts from defaults and overlays every env var that is set.
The .env file in the current working directory (or any ancestor) is loaded
automatically before env vars are read — callers do not need to call
dotenv::dotenv() themselves.
Sourcepub fn overlay_from_env(&mut self)
pub fn overlay_from_env(&mut self)
Overlay environment variables on top of self.
Only fields whose corresponding env var is set are modified; everything
else keeps its current value. The .env file is loaded first (idempotent —
safe to call multiple times).
Env-var naming follows the Python SDK conventions (LLM_*, EMBEDDING_*,
GRAPH_DATABASE_*, VECTOR_DB_*, DB_*, COGNEE_*). A handful of
Rust-specific aliases (OPENAI_TOKEN, OPENAI_URL, OPENAI_MODEL) are
accepted as fallbacks for backward compatibility with existing test setups.
Sourcepub fn resolved_relational_db_url(&self) -> String
pub fn resolved_relational_db_url(&self) -> String
Returns the effective relational DB connection URL.
When db_provider is "postgres", builds
postgres://username:password@host:port/name from the individual
db_* fields (matching Python’s DB_PROVIDER/DB_HOST/… env vars).
Otherwise returns relational_db_url verbatim.
Sourcepub fn telemetry_snapshot(&self) -> Map<String, Value>
pub fn telemetry_snapshot(&self) -> Map<String, Value>
Returns the redacted property dict merged into Pipeline Run *
analytics events.
Allowlist-only. Mirrors Python’s get_current_settings()
shape but covers only provider/model identifiers and a few
dimension/strategy fields — see
docs/telemetry/03/03-settings-snapshot.md
for the rationale on what is omitted (URLs, credentials,
file paths).
Adding a field here is intentional — there is a snapshot test that will fail until it is acknowledged.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Settings
impl<'de> Deserialize<'de> for Settings
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl SettingsView for Settings
Available on crate feature telemetry only.
impl SettingsView for Settings
telemetry only.Source§fn tracing_enabled(&self) -> bool
fn tracing_enabled(&self) -> bool
Settings.cognee_tracing_enabled.Source§fn service_name(&self) -> &str
fn service_name(&self) -> &str
Settings.otel_service_name.Source§fn otlp_endpoint(&self) -> &str
fn otlp_endpoint(&self) -> &str
Settings.otel_exporter_otlp_endpoint.Source§fn otlp_headers(&self) -> &str
fn otlp_headers(&self) -> &str
Settings.otel_exporter_otlp_headers.Source§fn otlp_protocol(&self) -> &str
fn otlp_protocol(&self) -> &str
Settings.otel_exporter_otlp_protocol.Source§fn span_processor(&self) -> &str
fn span_processor(&self) -> &str
Settings.otel_span_processor.Source§fn traces_sampler(&self) -> &str
fn traces_sampler(&self) -> &str
Settings.otel_traces_sampler.Source§fn traces_sampler_arg(&self) -> &str
fn traces_sampler_arg(&self) -> &str
Settings.otel_traces_sampler_arg.Auto Trait Implementations§
impl Freeze for Settings
impl RefUnwindSafe for Settings
impl Send for Settings
impl Sync for Settings
impl Unpin for Settings
impl UnsafeUnpin for Settings
impl UnwindSafe for Settings
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T, U, C> IntoWithContext<U, C> for Twhere
U: FromWithContext<T, C>,
impl<T, U, C> IntoWithContext<U, C> for Twhere
U: FromWithContext<T, C>,
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.