105 lines
3.6 KiB
Scala
105 lines
3.6 KiB
Scala
package com.twitter.tsp.common
|
|
|
|
import com.twitter.finagle.stats.NullStatsReceiver
|
|
import com.twitter.logging.Logger
|
|
import com.twitter.timelines.configapi.BaseConfig
|
|
import com.twitter.timelines.configapi.BaseConfigBuilder
|
|
import com.twitter.timelines.configapi.FSBoundedParam
|
|
import com.twitter.timelines.configapi.FSParam
|
|
import com.twitter.timelines.configapi.FeatureSwitchOverrideUtil
|
|
|
|
object TopicSocialProofParams {
|
|
|
|
object TopicTweetsSemanticCoreVersionId
|
|
extends FSBoundedParam[Long](
|
|
name = "topic_tweets_semantic_core_annotation_version_id",
|
|
default = 1433487161551032320L,
|
|
min = 0L,
|
|
max = Long.MaxValue
|
|
)
|
|
object TopicTweetsSemanticCoreVersionIdsSet
|
|
extends FSParam[Set[Long]](
|
|
name = "topic_tweets_semantic_core_annotation_version_id_allowed_set",
|
|
default = Set(TopicTweetsSemanticCoreVersionId.default))
|
|
|
|
/**
|
|
* Controls the Topic Social Proof cosine similarity threshold for the Topic Tweets.
|
|
*/
|
|
object TweetToTopicCosineSimilarityThreshold
|
|
extends FSBoundedParam[Double](
|
|
name = "topic_tweets_cosine_similarity_threshold_tsp",
|
|
default = 0.0,
|
|
min = 0.0,
|
|
max = 1.0
|
|
)
|
|
|
|
object EnablePersonalizedContextTopics // master feature switch to enable backfill
|
|
extends FSParam[Boolean](
|
|
name = "topic_tweets_personalized_contexts_enable_personalized_contexts",
|
|
default = false
|
|
)
|
|
|
|
object EnableYouMightLikeTopic
|
|
extends FSParam[Boolean](
|
|
name = "topic_tweets_personalized_contexts_enable_you_might_like",
|
|
default = false
|
|
)
|
|
|
|
object EnableRecentEngagementsTopic
|
|
extends FSParam[Boolean](
|
|
name = "topic_tweets_personalized_contexts_enable_recent_engagements",
|
|
default = false
|
|
)
|
|
|
|
object EnableTopicTweetHealthFilterPersonalizedContexts
|
|
extends FSParam[Boolean](
|
|
name = "topic_tweets_personalized_contexts_health_switch",
|
|
default = true
|
|
)
|
|
|
|
object EnableTweetToTopicScoreRanking
|
|
extends FSParam[Boolean](
|
|
name = "topic_tweets_enable_tweet_to_topic_score_ranking",
|
|
default = true
|
|
)
|
|
|
|
}
|
|
|
|
object FeatureSwitchConfig {
|
|
private val enumFeatureSwitchOverrides = FeatureSwitchOverrideUtil
|
|
.getEnumFSOverrides(
|
|
NullStatsReceiver,
|
|
Logger(getClass),
|
|
)
|
|
|
|
private val intFeatureSwitchOverrides = FeatureSwitchOverrideUtil.getBoundedIntFSOverrides()
|
|
|
|
private val longFeatureSwitchOverrides = FeatureSwitchOverrideUtil.getBoundedLongFSOverrides(
|
|
TopicSocialProofParams.TopicTweetsSemanticCoreVersionId
|
|
)
|
|
|
|
private val doubleFeatureSwitchOverrides = FeatureSwitchOverrideUtil.getBoundedDoubleFSOverrides(
|
|
TopicSocialProofParams.TweetToTopicCosineSimilarityThreshold,
|
|
)
|
|
|
|
private val longSetFeatureSwitchOverrides = FeatureSwitchOverrideUtil.getLongSetFSOverrides(
|
|
TopicSocialProofParams.TopicTweetsSemanticCoreVersionIdsSet,
|
|
)
|
|
|
|
private val booleanFeatureSwitchOverrides = FeatureSwitchOverrideUtil.getBooleanFSOverrides(
|
|
TopicSocialProofParams.EnablePersonalizedContextTopics,
|
|
TopicSocialProofParams.EnableYouMightLikeTopic,
|
|
TopicSocialProofParams.EnableRecentEngagementsTopic,
|
|
TopicSocialProofParams.EnableTopicTweetHealthFilterPersonalizedContexts,
|
|
TopicSocialProofParams.EnableTweetToTopicScoreRanking,
|
|
)
|
|
val config: BaseConfig = BaseConfigBuilder()
|
|
.set(enumFeatureSwitchOverrides: _*)
|
|
.set(intFeatureSwitchOverrides: _*)
|
|
.set(longFeatureSwitchOverrides: _*)
|
|
.set(doubleFeatureSwitchOverrides: _*)
|
|
.set(longSetFeatureSwitchOverrides: _*)
|
|
.set(booleanFeatureSwitchOverrides: _*)
|
|
.build()
|
|
}
|