Expand description
Rust client SDK for the Reasoning Layer API.
Fully typed DTOs for the resource surface, with HTTP, WebSocket (auto-reconnect), and SSE
transports built in. ReasoningLayerClient is the single entry point.
§Quick start
use reasoninglayer::{
constrained, guard, psi, var, AddRuleRequest, AuthConfig, BackwardChainRequest,
ClientConfig, CreateSortRequest, GuardOp, ReasoningLayerClient,
};
let client = ReasoningLayerClient::new(
ClientConfig::new(
"https://platform.ovh.reasoninglayer.ai",
"00000000-0000-0000-0000-000000000001",
AuthConfig::Bearer(std::env::var("RL_API_TOKEN").unwrap()),
),
)?;
let person = client.sorts().create_sort(CreateSortRequest::with_name("person"), None).await?;
client.inference().add_rule(
AddRuleRequest {
term: psi("well_paid", [("person", var("?X"))]),
antecedents: vec![psi("employee", [
("name", var("?X")),
("salary", constrained("?S", guard(GuardOp::Gt, 80_000_i64))),
])],
certainty: None,
},
None,
).await?;
let result = client.inference().backward_chain(
BackwardChainRequest {
goal: Some(psi("well_paid", [("person", var("?Who"))])),
max_solutions: Some(10),
..Default::default()
},
None,
).await?;§Resources
Every resource client is accessible via an accessor on ReasoningLayerClient:
- Core knowledge base:
sorts()/types(),terms()/records(),inference()/rules(),query() - AI / ML:
cognitive()/agents(),oversight(),neuro_symbolic(),rag(),generation(),synthetic(),proof_engine(),context(),rl_training() - Reasoning:
optimize(),ilp(),cdl(),execution(),reasoning(),preferences(),discovery() - Analysis:
causal(),statistical(),fuzzy(),scenarios(),communities(),visualization(),analysis() - Data:
ingestion(),extract(),sources(),collections(),image_extraction(),row() - Workflow:
control(),reviews(),action_reviews(),webhook_actions() - System:
health(),admin(),spaces(),namespaces(),utilities(),ontology(),osfql(),ui(),conversation(),functions()
§Streaming
WebSocket (auto-reconnect) is exposed via ws::WebSocketConnection; SSE is exposed via
sse::stream.
Re-exports§
pub use types::common::ApiResponse;pub use types::common::RateLimitInfo;pub use types::common::RequestOptions;pub use builders::constrained;pub use builders::guard;pub use builders::psi;pub use builders::psi_by_id;pub use builders::term_ref;pub use builders::var;pub use builders::FuzzyShape;pub use builders::GuardRhs;pub use builders::Value;pub use types::homoiconic::FeatureInputValueDto;pub use types::homoiconic::FeatureValueDto;pub use types::homoiconic::PsiTermDto;pub use types::homoiconic::TermInputDto;pub use types::inference::AddFactRequest;pub use types::inference::AddFactResponse;pub use types::inference::AddRuleRequest;pub use types::inference::AddRuleResponse;pub use types::inference::BackwardChainRequest;pub use types::inference::BackwardChainResponse;pub use types::inference::BayesianEffectDto;pub use types::inference::BayesianPredictRequest;pub use types::inference::BayesianPredictResponse;pub use types::inference::BulkAddFactsRequest;pub use types::inference::BulkAddFactsResponse;pub use types::inference::BulkAddRulesRequest;pub use types::inference::BulkAddRulesResponse;pub use types::inference::ClearFactsResponse;pub use types::inference::CreateGoalRequest;pub use types::inference::CreateGoalResponse;pub use types::inference::DeleteGoalResponse;pub use types::inference::ForwardChainRequest;pub use types::inference::ForwardChainResponse;pub use types::inference::FuzzyProveRequest;pub use types::inference::FuzzyProveResponse;pub use types::inference::GetFactsResponse;pub use types::inference::GuardOp;pub use types::inference::ListGoalsResponse;pub use types::inference::MetaSortsResponse;pub use types::inference::NafProveRequest;pub use types::inference::NafProveResponse;pub use types::inference::SolutionDto;pub use types::query::FindBySortRequest;pub use types::query::NlQueryMode;pub use types::query::NlQueryRequest;pub use types::query::NlQueryResponse;pub use types::query::OsfSearchRequest;pub use types::query::OsfSearchResponse;pub use types::query::TermListResponse;pub use types::query::TermPatternDto;pub use types::query::UnifiableQueryRequest;pub use types::query::ValidateTermRequest;pub use types::query::ValidatedUnifyRequest;pub use api_spec::BulkCreateSortsRequest;pub use api_spec::BulkCreateSortsResponse;pub use api_spec::ComputeGlbRequest;pub use api_spec::ComputeGlbResponse;pub use api_spec::ComputeLubRequest;pub use api_spec::ComputeLubResponse;pub use api_spec::CreateSortRequest;pub use api_spec::DecodeGlbResponse;pub use api_spec::FeatureDescriptorDto;pub use api_spec::SortDto;pub use api_spec::SortInfoDto;pub use api_spec::SortListResponse;pub use api_spec::UpdateSortReviewRequest;pub use types::terms::BulkAddTermsRequest;pub use types::terms::BulkAddTermsResponse;pub use types::terms::ClearTermsResponse;pub use types::terms::CreateTermRequest;pub use types::terms::TermDto;pub use types::terms::TermResponse;pub use types::terms::TermState;pub use types::terms::UpdateTermRequest;pub use types::terms::ValidatedTermResponse;pub use types::terms::ValidatedUnifyResponse;pub use types::values::FuzzyShapeDto;pub use types::values::ValueDto;
Modules§
- api_
spec - Auto-generated DTOs from
api-spec/openapi.json, with hand-written extensions in theextsibling module. - builders
- Builders for constructing SDK requests.
- sse
- Server-Sent Events (SSE) streaming.
- types
- Data transfer objects for the Reasoning Layer API.
- ws
- WebSocket support with automatic reconnection.
Structs§
- Action
Reviews Client - Admin
Client - Analysis
Client - ApiError
- An HTTP error returned by the backend.
- Causal
Client - CdlClient
- Client
Config - Configuration for a
ReasoningLayerClient. - Cognitive
Client - Collections
Client - Communities
Client - Constraint
Violation Details - Structured details for a 409 constraint violation.
- Constraints
Client - Context
Client - Control
Client - Conversation
Client - Discovery
Client - Execution
Client - Extract
Client - Functions
Client - Fuzzy
Client - Generation
Client - Health
Client - IlpClient
- Image
Extraction Client - Inference
Client - Resource client for inference operations.
- Ingestion
Client - Namespaces
Client - Neuro
Symbolic Client - Ontology
Client - Optimize
Client - Optimization client — thin facade for LP solving via the inference engine.
- Osfql
Client - Oversight
Client - Preferences
Client - Proof
Engine Client - Query
Client - Resource client for query operations.
- RagClient
- Rate
Limit Details - Rate limit info attached to a 429 response.
- Reasoning
Client - Reasoning
Layer Client - Main entry point for the Reasoning Layer API.
- Research
Client - Reviews
Client - RlTraining
Client - RowClient
- Scenarios
Client - Sorts
Client - Resource client for sort operations. Returned by
ReasoningLayerClient::sorts. - Sources
Client - Spaces
Client - Statistical
Client - Synthetic
Client - Terms
Client - Resource client for term CRUD operations.
- UiClient
- Utilities
Client - Visualization
Client - Webhook
Actions Client
Enums§
- ApiError
Kind - Categorises an
ApiErrorby HTTP status code. - Auth
Config - Authentication mode for the SDK.
- Error
- Top-level SDK error type. All public fallible APIs return
Result<T, Error>.
Constants§
- SDK_
LANGUAGE - Language identifier — sent as
X-SDK-Languageon every request. - SDK_
VERSION - SDK version — sent as
X-SDK-Versionon every request.