conversationai / conversationai-moderator Goto Github PK
View Code? Open in Web Editor NEWA machine-assisted human-moderation toolkit.
License: Apache License 2.0
A machine-assisted human-moderation toolkit.
License: Apache License 2.0
The only way to view all the comments that are deferred, across all articles and all categories is to go to the Moderated tab of the All view /#/categories/all/moderated/deferred
. That view is not performant when there are a lot of comments in the database. In the NYT production system, the /services/moderatedCounts/categories/all
call that returns the commentIds for all the Moderated tabs eventually times out. So even though the product has a place to see all the deferred comments, it's not usable.
Ideally, the deferred tab of the All view renders all the deferred comments regardless of the scale of the comments in the database.
Since the deferred-all view is part of the Moderated-All tab (i.e. /#/categories/all/moderated
), rendering that tab requires rendering the comments for all the tabs and that means fetching the commentIds for what could be millions and millions of comments.
I'm not sure what the easiest fix is. We could change the /services/moderatedCounts/categories/all
endpoint to return a paginated list of commentIds instead of all the ids. I'm not sure how big of a change that would be on the frontend.
/#/categories/all/moderated/deferred
page/services/moderatedCounts/categories/all
endpoint returns every id in the database.Support sending comments to the SuggestCommentScore API when moderation actions are taken. Distinguish between individual and batch actions. Make sure to include the reason for rejection.
As a moderator, I want to search a string of text and see which comment(s) it appears in so that I can quickly find comments to resolve issues or questions. As a moderator, I want to search via email or username and find a commenter’s member ID so that I can follow-up on specific questions.
Details: Moderator currently supports search by ID, which we would want to keep.
Current fails:
Think about elastic search.
As a moderator, I want to see the status of all comments on a particular article at a glance so that I can understand what’s most pressing. As a moderator I want to switch automation on or off from this dashboard view so that I can quickly manage moderation across sensitive stories.
Details: Showing what’s new and what’s already been approved are the two most important statuses, but creating a high-level view of all the tabs would be great. The dashboard view should auto-refresh so that the most up-to-date numbers are being shown without disrupting a moderator’s workflow. Auto-refresh can be up to a few minutes behind, but should not refresh the browser, just the data displayed. The dashboard should also link to the articles in Scoop in order to facilitate turning comments on/off quickly.
Pictured here is a screenshot from CRNR’s dashboard which can be used as an example. This screenshot is not intended to influence design choices, only to give an example of what’s currently in use.
A number of React / Redux functions such as 'connect' and 'mergeProps' can do type munging (e.g., wrapping an object in a container with a subtly different type signature) that cause compile failures in later versions of the TypeScript compiler. As yet we haven't worked out the proper way to fix these issue
We are currently fixing them by casting the types to 'any', but this is far from satisfactory.
This issue is a placeholder to make it easier to find these workarounds. We'll add TODOs each time we do a workaround. Once we work out a proper way to fix this issue, we can return and fix the TODOs.
To help avoid bugs and broken builds, lets setup Travis integration.
Trying to run the local docker server and getting npm error
Expected behavior is to have a running local server
Building server
Step 1/7 : FROM gcr.io/google_appengine/nodejs
---> 6a09807598e8
Step 2/7 : RUN install_node v8.11.1 && apt update && apt dist-upgrade -y && apt install -y mysql-client
---> Using cache
---> 17970a2b50be
Step 3/7 : WORKDIR /app/
---> Using cache
---> 3edcee9a4b05
Step 4/7 : COPY . /app/
---> Using cache
---> ad612aeac03e
Step 5/7 : RUN npm cache verify && bin/install
---> Running in 406492d6e37f
npm ERR! stream.push() after EOF
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2019-07-03T19_39_56_468Z-debug.log
ERROR: Service 'server' failed to build: The command '/bin/sh -c npm cache verify && bin/install' returned a non-zero code: 1
docker-compose -f deployments/local/docker-compose.yml up -d
Hi, I got into trouble when trying to setup the local mysql. when I run the second commands(for the first line is ok, but not for the second):
mysql -uroot os_moderator < packages/backend-core/seed/initial-database.sql
./bin/osmod migrate
I got the error message below. Any help is appreciated.
conversationai-moderator-master/packages/backend-core/node_modules/passport-oauth2/lib/strategy.js:82
if (!options.clientID) { throw new TypeError('OAuth2Strategy requires a clientID option'); }
^
TypeError: OAuth2Strategy requires a clientID option
at Strategy.OAuth2Strategy (./conversationai-moderator-master/packages/backend-core/node_modules/passport-oauth2/lib/strategy.js:82:34)
at new Strategy (./conversationai-moderator-master/packages/backend-core/node_modules/passport-google-oauth20/lib/strategy.js:52:18)
at Object. (./conversationai-moderator-master/packages/backend-core/dist/domain/auth/providers/google.js:91:26)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (./conversationai-moderator-master/packages/backend-core/dist/domain/auth/providers/index.js:21:10)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
As a moderator, I want to auto-approve/reject comments based on word lists specific to a section so that auto-moderation can keep up with language as it pertains to specific topics.
Details: “Section” in this case means the sections identified in Moderator (often a combination of desks).
Several parts of the documentation... including the very first line of the Readme reference a file packages/config/index.js
Specifically: The configuration is found in packages/config/index.js. It is pretty self explanatory. All settings can be overridden via environment variables.
Not helpful as... well, that file isn't there, but it's mentioned many other places in the documentation.
I'm not sure if it will get generated after running some command or another, or if it's been moved.
As a new user, I'm trying to figure out what environment variables to set, and so not being able to find this file is a bit frustrating.
The file to exist.
No file is there and I'm confused.
Either update the docs to point to the new location of this file, OR specify how to get it generated.
I'm trying to figure out how to setup authentication
N/A
As a moderator manager, I want to be able to manage when comments are opened and closed on an article from the dashboard view, as well as set the default sort for the comments on an article, so that I can quickly manage multiple articles.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.