jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/327197 )
Change subject: Use related_articles search in GapFinder
......................................................................
Use related_articles search in GapFinder
Also, add a search parameter to GapFinder to
dynamically change which search provider is being
used.
Bug: T153192
Change-Id: Id8ae58cd195e64be00d66cb5dab6a8ca571f1638
---
M recommendation/api/external_data/fetcher.py
M recommendation/api/types/translation/candidate_finders.py
M recommendation/data/labs_setup.sh
M recommendation/data/recommendation.ini
M recommendation/data/recommendation.wsgi
A recommendation/data/release.sh
M recommendation/web/gapfinder.py
M recommendation/web/static/gf-input.tag
M recommendation/web/templates/index.html
9 files changed, 39 insertions(+), 9 deletions(-)
Approvals:
Nschaaf: Looks good to me, approved
jenkins-bot: Verified
diff --git a/recommendation/api/external_data/fetcher.py
b/recommendation/api/external_data/fetcher.py
index 6d6fdf7..c68157a 100644
--- a/recommendation/api/external_data/fetcher.py
+++ b/recommendation/api/external_data/fetcher.py
@@ -111,5 +111,5 @@
def get_related_articles(source, seed):
- return
get('http://recommend-related-articles.wmflabs.org/types/related_articles/v1/articles',
- dict(source=source, seed=seed, count=500))
+ endpoint = configuration.get_config_value('endpoints', 'related_articles')
+ return get(endpoint, dict(source=source, seed=seed, count=500))
diff --git a/recommendation/api/types/translation/candidate_finders.py
b/recommendation/api/types/translation/candidate_finders.py
index ba73bf2..53a8d8b 100644
--- a/recommendation/api/types/translation/candidate_finders.py
+++ b/recommendation/api/types/translation/candidate_finders.py
@@ -118,6 +118,7 @@
def get_candidates(self, s, seed, n):
results = fetcher.get_related_articles(s, seed)
if len(results) == 0:
+ log.info('Failed related_articles search. Reverting to morelike.
Source: %s Seed: %s', s, seed)
return MorelikeCandidateFinder().get_candidates(s, seed, n)
articles = []
diff --git a/recommendation/data/labs_setup.sh
b/recommendation/data/labs_setup.sh
index 377b2d1..9042509 100755
--- a/recommendation/data/labs_setup.sh
+++ b/recommendation/data/labs_setup.sh
@@ -5,7 +5,7 @@
TMP_PATH='/tmp/recommendation'
apt-get update
-apt-get install -y git nginx npm python3 python3-pip
+apt-get install -y git nginx npm python3 python3-pip libpython3.4
pip3 install --upgrade pip
rm -rf ${TMP_PATH}
@@ -17,8 +17,8 @@
git clone https://gerrit.wikimedia.org/r/research/recommendation-api/wheels
${TMP_PATH}/wheels
git clone https://gerrit.wikimedia.org/r/research/recommendation-api
${TMP_PATH}/recommendation-api
-pip3 install --use-wheel --no-deps ${TMP_PATH}/wheels/wheels/*.whl
-pip3 install --no-deps ${TMP_PATH}/recommendation-api
+pip install --use-wheel --no-deps ${TMP_PATH}/wheels/wheels/*.whl
+pip install --no-deps ${TMP_PATH}/recommendation-api
ln -s /usr/bin/nodejs /usr/bin/node
cd ${TMP_PATH}
diff --git a/recommendation/data/recommendation.ini
b/recommendation/data/recommendation.ini
index 98f5217..b99b327 100644
--- a/recommendation/data/recommendation.ini
+++ b/recommendation/data/recommendation.ini
@@ -4,6 +4,7 @@
wikipedia = https://{source}.wikipedia.org/w/api.php
wikidata = https://www.wikidata.org/w/api.php
event_logger = https://meta.wikimedia.org/beacon/event
+related_articles =
https://recommend-related-articles.wmflabs.org/types/related_articles/v1/articles
[popular_pageviews]
query = ${endpoints:pageviews}/top/{source}.wikipedia/all-access/{date}
@@ -58,6 +59,7 @@
[gapfinder]
resource_path = /srv/recommendation/resources
+default_search = related_articles
[logging]
format = %(asctime)s %(name)s %(funcName)s():%(lineno)d %(levelname)s --
%(message)s
diff --git a/recommendation/data/recommendation.wsgi
b/recommendation/data/recommendation.wsgi
index a7c9b51..fc2e289 100644
--- a/recommendation/data/recommendation.wsgi
+++ b/recommendation/data/recommendation.wsgi
@@ -1,7 +1,7 @@
from flask import Flask
from recommendation.api.types.translation import translation
-from recommendation.api.types.related_articles import related_articles
+#from recommendation.api.types.related_articles import related_articles
from recommendation.api import api
from recommendation.web import gapfinder
from recommendation.utils import logger
@@ -12,7 +12,7 @@
app.register_blueprint(api.api.blueprint)
app.register_blueprint(translation.api.blueprint)
app.register_blueprint(translation.legacy.blueprint)
-app.register_blueprint(related_articles.api.blueprint)
+#app.register_blueprint(related_articles.api.blueprint)
app.register_blueprint(gapfinder.gapfinder)
app.config['RESTPLUS_VALIDATE'] = True
app.config['RESTPLUS_MASK_SWAGGER'] = False
diff --git a/recommendation/data/release.sh b/recommendation/data/release.sh
new file mode 100644
index 0000000..b39e89b
--- /dev/null
+++ b/recommendation/data/release.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+ETC_PATH='/etc/recommendation'
+SRV_PATH='/srv/recommendation'
+TMP_PATH='/tmp/recommendation'
+
+rm -rf ${TMP_PATH}
+mkdir -p ${TMP_PATH}
+
+git clone https://gerrit.wikimedia.org/r/research/recommendation-api
${TMP_PATH}/recommendation-api
+
+pip install --no-deps ${TMP_PATH}/recommendation-api
+
+cp ${TMP_PATH}/recommendation-api/recommendation/data/* ${ETC_PATH}
+
+systemctl restart recommendation.service
diff --git a/recommendation/web/gapfinder.py b/recommendation/web/gapfinder.py
index 02f4a85..8c94f77 100644
--- a/recommendation/web/gapfinder.py
+++ b/recommendation/web/gapfinder.py
@@ -13,6 +13,7 @@
s = request.args.get('s')
t = request.args.get('t')
seed = request.args.get('seed')
+ search = request.args.get('search')
pairs = language_pairs.get_language_pairs()
return render_template(
'index.html',
@@ -21,7 +22,9 @@
s=s,
t=t,
seed=seed,
- event_logger_url=configuration.get_config_value('endpoints',
'event_logger')
+ search=search,
+ event_logger_url=configuration.get_config_value('endpoints',
'event_logger'),
+ default_search=configuration.get_config_value('gapfinder',
'default_search')
)
diff --git a/recommendation/web/static/gf-input.tag
b/recommendation/web/static/gf-input.tag
index 04892f5..c253f07 100644
--- a/recommendation/web/static/gf-input.tag
+++ b/recommendation/web/static/gf-input.tag
@@ -39,6 +39,7 @@
self.target = '';
self.sourceLanguages = {};
self.targetLanguages = {};
+ self.search = '';
self.fetching = false;
self.sourceSelector = null;
self.targetSelector = null;
@@ -70,7 +71,7 @@
var seed;
if (this.seedArticle.value) {
- url += '&seed=' + encodeURIComponent(this.seedArticle.value);
+ url += '&search=' + self.search + '&seed=' +
encodeURIComponent(this.seedArticle.value);
seed = this.seedArticle.value;
}
@@ -320,6 +321,11 @@
self.origin = 'url_parameters';
}
+ self.search = window.translationAppGlobals.defaultSearch;
+ if (window.translationAppGlobals.search in ['morelike',
'related_articles']) {
+ self.search = window.translationAppGlobals.search;
+ }
+
// Check for cookies
var sourceLanguageCookieValue = getCookie('sourceLanguage');
var targetLanguageCookieValue = getCookie('targetLanguage');
diff --git a/recommendation/web/templates/index.html
b/recommendation/web/templates/index.html
index 60d550f..705caf2 100644
--- a/recommendation/web/templates/index.html
+++ b/recommendation/web/templates/index.html
@@ -61,6 +61,8 @@
s: '{{ s if s else '' }}',
t: '{{ t if t else '' }}',
seed: '{{ seed if seed else '' }}',
+ search: '{{ search if search else '' }}',
+ defaultSearch: '{{ default_search }}',
personalBlacklistKey: 'personal.blacklist',
globalBlacklistKey: 'not.notable.blacklist',
--
To view, visit https://gerrit.wikimedia.org/r/327197
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Id8ae58cd195e64be00d66cb5dab6a8ca571f1638
Gerrit-PatchSet: 2
Gerrit-Project: research/recommendation-api
Gerrit-Branch: master
Gerrit-Owner: Nschaaf <[email protected]>
Gerrit-Reviewer: Nschaaf <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits