Skip to main content

Crate reasoninglayer

Crate reasoninglayer 

Source
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:

§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 the ext sibling 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§

ActionReviewsClient
AdminClient
AnalysisClient
ApiError
An HTTP error returned by the backend.
CausalClient
CdlClient
ClientConfig
Configuration for a ReasoningLayerClient.
CognitiveClient
CollectionsClient
CommunitiesClient
ConstraintViolationDetails
Structured details for a 409 constraint violation.
ConstraintsClient
ContextClient
ControlClient
ConversationClient
DiscoveryClient
ExecutionClient
ExtractClient
FunctionsClient
FuzzyClient
GenerationClient
HealthClient
IlpClient
ImageExtractionClient
InferenceClient
Resource client for inference operations.
IngestionClient
NamespacesClient
NeuroSymbolicClient
OntologyClient
OptimizeClient
Optimization client — thin facade for LP solving via the inference engine.
OsfqlClient
OversightClient
PreferencesClient
ProofEngineClient
QueryClient
Resource client for query operations.
RagClient
RateLimitDetails
Rate limit info attached to a 429 response.
ReasoningClient
ReasoningLayerClient
Main entry point for the Reasoning Layer API.
ResearchClient
ReviewsClient
RlTrainingClient
RowClient
ScenariosClient
SortsClient
Resource client for sort operations. Returned by ReasoningLayerClient::sorts.
SourcesClient
SpacesClient
StatisticalClient
SyntheticClient
TermsClient
Resource client for term CRUD operations.
UiClient
UtilitiesClient
VisualizationClient
WebhookActionsClient

Enums§

ApiErrorKind
Categorises an ApiError by HTTP status code.
AuthConfig
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-Language on every request.
SDK_VERSION
SDK version — sent as X-SDK-Version on every request.