mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-15 07:38:45 +02:00
60 lines
1.7 KiB
Thrift
60 lines
1.7 KiB
Thrift
|
namespace java com.twitter.simclustersann.thriftjava
|
||
|
#@namespace scala com.twitter.simclustersann.thriftscala
|
||
|
|
||
|
include "finatra-thrift/finatra_thrift_exceptions.thrift"
|
||
|
include "com/twitter/simclusters_v2/identifier.thrift"
|
||
|
include "com/twitter/simclusters_v2/score.thrift"
|
||
|
|
||
|
struct Query {
|
||
|
1: required identifier.SimClustersEmbeddingId sourceEmbeddingId;
|
||
|
2: required SimClustersANNConfig config;
|
||
|
}
|
||
|
|
||
|
struct SimClustersANNTweetCandidate {
|
||
|
1: required i64 tweetId (personalDataType = 'TweetId');
|
||
|
2: required double score;
|
||
|
}
|
||
|
|
||
|
struct SimClustersANNConfig {
|
||
|
1: required i32 maxNumResults;
|
||
|
2: required double minScore;
|
||
|
3: required identifier.EmbeddingType candidateEmbeddingType;
|
||
|
4: required i32 maxTopTweetsPerCluster;
|
||
|
5: required i32 maxScanClusters;
|
||
|
6: required i32 maxTweetCandidateAgeHours;
|
||
|
7: required i32 minTweetCandidateAgeHours;
|
||
|
8: required ScoringAlgorithm annAlgorithm;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* The algorithm type to identify the score algorithm.
|
||
|
**/
|
||
|
enum ScoringAlgorithm {
|
||
|
DotProduct = 1,
|
||
|
CosineSimilarity = 2,
|
||
|
LogCosineSimilarity = 3,
|
||
|
CosineSimilarityNoSourceEmbeddingNormalization = 4, // Score = (Source dot Candidate) / candidate_l2_norm
|
||
|
}(hasPersonalData = 'false')
|
||
|
|
||
|
enum InvalidResponseParameter {
|
||
|
INVALID_EMBEDDING_TYPE = 1,
|
||
|
INVALID_MODEL_VERSION = 2,
|
||
|
}
|
||
|
|
||
|
exception InvalidResponseParameterException {
|
||
|
1: required InvalidResponseParameter errorCode,
|
||
|
2: optional string message // failure reason
|
||
|
}
|
||
|
|
||
|
service SimClustersANNService {
|
||
|
|
||
|
list<SimClustersANNTweetCandidate> getTweetCandidates(
|
||
|
1: required Query query;
|
||
|
) throws (
|
||
|
1: InvalidResponseParameterException e;
|
||
|
2: finatra_thrift_exceptions.ServerError serverError;
|
||
|
3: finatra_thrift_exceptions.ClientError clientError;
|
||
|
);
|
||
|
|
||
|
}
|