namespace java com.twitter.simclusters_v2.thriftjava namespace py gen.twitter.simclusters_v2.embedding #@namespace scala com.twitter.simclusters_v2.thriftscala #@namespace strato com.twitter.simclusters_v2 include "com/twitter/simclusters_v2/identifier.thrift" include "com/twitter/simclusters_v2/online_store.thrift" struct SimClusterWithScore { 1: required i32 clusterId(personalDataType = 'InferredInterests') 2: required double score(personalDataType = 'EngagementScore') }(persisted = 'true', hasPersonalData = 'true') struct TopSimClustersWithScore { 1: required list topClusters 2: required online_store.ModelVersion modelVersion }(persisted = 'true', hasPersonalData = 'true') struct InternalIdWithScore { 1: required identifier.InternalId internalId 2: required double score(personalDataType = 'EngagementScore') }(persisted = 'true', hasPersonalData = 'true') struct InternalIdEmbedding { 1: required list embedding }(persisted = 'true', hasPersonalData = 'true') struct SemanticCoreEntityWithScore { 1: required i64 entityId(personalDataType = 'SemanticcoreClassification') 2: required double score(personalDataType = 'EngagementScore') }(persisted = 'true', hasPersonalData = 'true') struct TopSemanticCoreEntitiesWithScore { 1: required list topEntities }(persisted = 'true', hasPersonalData = 'true') struct PersistedFullClusterId { 1: required online_store.ModelVersion modelVersion 2: required i32 clusterId(personalDataType = 'InferredInterests') }(persisted = 'true', hasPersonalData = 'true') struct DayPartitionedClusterId { 1: required i32 clusterId(personalDataType = 'InferredInterests') 2: required string dayPartition // format: yyyy-MM-dd } struct TopProducerWithScore { 1: required i64 userId(personalDataType = 'UserId') 2: required double score(personalDataType = 'EngagementScore') }(persisted = 'true', hasPersonalData = 'true') struct TopProducersWithScore { 1: required list topProducers }(persisted = 'true', hasPersonalData = 'true') struct TweetWithScore { 1: required i64 tweetId(personalDataType = 'TweetId') 2: required double score(personalDataType = 'EngagementScore') }(persisted = 'true', hasPersonalData = 'true') struct TweetsWithScore { 1: required list tweets }(persisted = 'true', hasPersonalData = 'true') struct TweetTopKTweetsWithScore { 1: required i64 tweetId(personalDataType = 'TweetId') 2: required TweetsWithScore topkTweetsWithScore }(persisted = 'true', hasPersonalData = 'true') /** * The generic SimClustersEmbedding for online long-term storage and real-time calculation. * Use SimClustersEmbeddingId as the only identifier. * Warning: Doesn't include modelversion and embedding type in the value struct. **/ struct SimClustersEmbedding { 1: required list embedding }(persisted = 'true', hasPersonalData = 'true') struct SimClustersEmbeddingWithScore { 1: required SimClustersEmbedding embedding 2: required double score }(persisted = 'true', hasPersonalData = 'false') /** * This is the recommended structure for aggregating embeddings with time decay - the metadata * stores the information needed for decayed aggregation. **/ struct SimClustersEmbeddingWithMetadata { 1: required SimClustersEmbedding embedding 2: required SimClustersEmbeddingMetadata metadata }(hasPersonalData = 'true') struct SimClustersEmbeddingIdWithScore { 1: required identifier.SimClustersEmbeddingId id 2: required double score }(persisted = 'true', hasPersonalData = 'false') struct SimClustersMultiEmbeddingByValues { 1: required list embeddings }(persisted = 'true', hasPersonalData = 'false') struct SimClustersMultiEmbeddingByIds { 1: required list ids }(persisted = 'true', hasPersonalData = 'false') /** * Generic SimClusters Multiple Embeddings. The identifier.SimClustersMultiEmbeddingId is the key of * the multiple embedding. **/ union SimClustersMultiEmbedding { 1: SimClustersMultiEmbeddingByValues values 2: SimClustersMultiEmbeddingByIds ids }(persisted = 'true', hasPersonalData = 'false') /** * The metadata of a SimClustersEmbedding. The updatedCount represent the version of the Embedding. * For tweet embedding, the updatedCount is same/close to the favorite count. **/ struct SimClustersEmbeddingMetadata { 1: optional i64 updatedAtMs 2: optional i64 updatedCount }(persisted = 'true', hasPersonalData = 'true') /** * The data structure for PersistentSimClustersEmbedding Store **/ struct PersistentSimClustersEmbedding { 1: required SimClustersEmbedding embedding 2: required SimClustersEmbeddingMetadata metadata }(persisted = 'true', hasPersonalData = 'true') /** * The data structure for the Multi Model PersistentSimClustersEmbedding Store **/ struct MultiModelPersistentSimClustersEmbedding { 1: required map multiModelPersistentSimClustersEmbedding }(persisted = 'true', hasPersonalData = 'true')