Member Junction
    Preparing search index...

    Module @memberjunction/ai-recommendations-rex - v5.49.0

    @memberjunction/ai-recommendations-rex

    MemberJunction recommendation provider for the rasa.io Rex recommendation engine. Retrieves content recommendations from Rex and saves them into MJ Recommendation/Recommendation Item entities.

    This package implements RecommendationProviderBase for the rasa.io Rex engine. It authenticates with the Rex API, looks up vector IDs from MJ Entity Record Documents, requests content-based recommendations via Rex's /suggest endpoint, and persists the results as RecommendationItem entities in the MemberJunction database.

    graph TD
        PROVIDER["RexRecommendationsProvider"] --> TOKEN["Get Rex Access Token\n(/tokens)"]
        PROVIDER --> DOCS["Load Entity Record Documents\n(Vector IDs)"]
        PROVIDER --> SUGGEST["Get Recommendations\n(/suggest)"]
        PROVIDER --> SAVE["Save Recommendation Items\n(MJ Entities)"]
    
        TOKEN --> REXAPI["Rex API"]
        SUGGEST --> REXAPI
        DOCS --> RUNVIEW["RunView\n(Entity Record Documents)"]
        SAVE --> MJDB["MJ Database"]
    
        style PROVIDER fill:#7c5295,stroke:#563a6b,color:#fff
        style TOKEN fill:#2d6a9f,stroke:#1a4971,color:#fff
        style DOCS fill:#2d6a9f,stroke:#1a4971,color:#fff
        style SUGGEST fill:#2d6a9f,stroke:#1a4971,color:#fff
        style SAVE fill:#2d6a9f,stroke:#1a4971,color:#fff
        style REXAPI fill:#b8762f,stroke:#8a5722,color:#fff
        style RUNVIEW fill:#2d8659,stroke:#1a5c3a,color:#fff
        style MJDB fill:#2d8659,stroke:#1a5c3a,color:#fff
    
    • Rex API integration: Authenticates and retrieves recommendations from the rasa.io Rex engine
    • Batch processing: Processes recommendations in configurable batch sizes (default 200)
    • Vector ID resolution: Looks up Pinecone vector IDs from MJ Entity Record Documents
    • Type mapping: Configurable mapping from Rex content types to MJ entity names
    • Score clamping: Normalizes recommendation scores to a 0-1 probability range
    • Error tracking: Optionally logs errors to a MJ List for review
    • Auto-registration: Registers with MJ class factory as "rasa.io Rex"
    npm install @memberjunction/ai-recommendations-rex
    

    Set the following environment variables:

    Variable Required Description
    REX_API_HOST Yes Rex API base URL for authentication
    REX_RECOMMEND_HOST Yes Rex recommendation service URL
    REX_USERNAME Yes Rex API username
    REX_PASSWORD Yes Rex API password
    REX_API_KEY Yes Rex API key
    REX_BATCH_SIZE No Batch size for processing (default: 200)
    import { RexRecommendationsProvider } from '@memberjunction/ai-recommendations-rex';
    import { RecommendationRequest } from '@memberjunction/ai-recommendations';

    // The provider is auto-registered as "rasa.io Rex" via @RegisterClass.
    // It can also be instantiated directly:
    const provider = new RexRecommendationsProvider();

    const request: RecommendationRequest = {
    Recommendations: recommendationEntities, // Array of RecommendationEntity
    RunID: 'run-id',
    CurrentUser: contextUser,
    Options: {
    EntityDocumentID: 'entity-doc-id', // Required
    type: 'course', // Rex content type
    filters: [{ type: 'course', max_results: 10 }],
    TypeMap: { // Optional: custom type-to-entity mapping
    'course': 'Contents',
    'person': 'Contributors'
    }
    }
    };

    const result = await provider.Recommend(request);

    if (result.Success) {
    console.log('Recommendations generated successfully');
    } else {
    console.error('Errors:', result.Errors);
    }
    Dependency Purpose
    @memberjunction/ai-recommendations RecommendationProviderBase abstract class
    @memberjunction/core Metadata, RunView, LogError, LogStatus
    @memberjunction/core-entities Entity types (RecommendationEntity, RecommendationItemEntity, etc.)
    @memberjunction/global @RegisterClass decorator
    axios HTTP client for Rex API calls

    ISC

    Classes

    RexRecommendationsProvider