language/main.py (24 lines of code) (raw):
from flask import Flask, redirect, render_template, request
from google.cloud import language
from google.cloud.language import enums
from google.cloud.language import types
app = Flask(__name__)
@app.route('/')
def homepage():
# Return a Jinja2 HTML template of the homepage.
return render_template('homepage.html')
@app.route('/run_language', methods=['GET', 'POST'])
def run_language():
# Create a Cloud Natural Language client
client = language.LanguageServiceClient()
# Retrieve inputted text from the form and create document object
text = request.form['text']
document = types.Document(content=text, type=enums.Document.Type.PLAIN_TEXT)
# Retrieve response from Natural Language API's analyze_entities() method
response = client.analyze_entities(document)
entities = response.entities
# Retrieve response from Natural Language API's analyze_sentiment() method
response = client.analyze_sentiment(document)
sentiment = response.document_sentiment
# Return a Jinja2 HTML template of the homepage and pass the 'text', 'entities',
# and 'sentiment' variables to the frontend. These contain information retrieved
# from the Natural Language API.
return render_template('homepage.html', text=text, entities=entities, sentiment=sentiment)
@app.errorhandler(500)
def server_error(e):
return """
An internal error occurred: <pre>{}</pre>
See logs for full stacktrace.
""".format(e), 500
if __name__ == '__main__':
# This is used when running locally. Gunicorn is used to run the
# application on Google App Engine. See entrypoint in app.yaml.
app.run(host='127.0.0.1', port=8080, debug=True)