Skip to content

@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"
Terminal window
npm install @memberjunction/ai-recommendations-rex

Set the following environment variables:

VariableRequiredDescription
REX_API_HOSTYesRex API base URL for authentication
REX_RECOMMEND_HOSTYesRex recommendation service URL
REX_USERNAMEYesRex API username
REX_PASSWORDYesRex API password
REX_API_KEYYesRex API key
REX_BATCH_SIZENoBatch 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);
}
DependencyPurpose
@memberjunction/ai-recommendationsRecommendationProviderBase abstract class
@memberjunction/coreMetadata, RunView, LogError, LogStatus
@memberjunction/core-entitiesEntity types (RecommendationEntity, RecommendationItemEntity, etc.)
@memberjunction/global@RegisterClass decorator
axiosHTTP client for Rex API calls

ISC