generate content endpoint
This commit is contained in:
parent
83ff7d9144
commit
6fa42c9a0a
@ -3,6 +3,7 @@ import json
|
|||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from requests_oauthlib import OAuth1Session
|
from requests_oauthlib import OAuth1Session
|
||||||
from flask import Blueprint, current_app, request, jsonify
|
from flask import Blueprint, current_app, request, jsonify
|
||||||
|
from nltk import sent_tokenize
|
||||||
from ayct_backend.models import *
|
from ayct_backend.models import *
|
||||||
from ayct_backend.firebase import verify_token
|
from ayct_backend.firebase import verify_token
|
||||||
|
|
||||||
@ -162,3 +163,44 @@ def get_twitter_campaign_details(campaign_id):
|
|||||||
"twitter_account_id": twitter_campaign.twitter_account_id,
|
"twitter_account_id": twitter_campaign.twitter_account_id,
|
||||||
"posts": posts
|
"posts": posts
|
||||||
}), 200
|
}), 200
|
||||||
|
|
||||||
|
@campaign.route('/generate', methods=['POST'])
|
||||||
|
def generate_content():
|
||||||
|
decoded_token = verify_token(request.headers)
|
||||||
|
if not decoded_token:
|
||||||
|
return "Not authorised!", 401
|
||||||
|
|
||||||
|
content_type = request.headers.get('Content-Type')
|
||||||
|
if content_type != 'application/json':
|
||||||
|
return "Content-type not supported!", 400
|
||||||
|
|
||||||
|
request_json = request.json
|
||||||
|
if 'user_input' not in request_json:
|
||||||
|
return "Invalid request!", 400
|
||||||
|
|
||||||
|
core_url = 'http://s415366.projektstudencki.pl/generate'
|
||||||
|
payload = {
|
||||||
|
"data": request_json['user_input'],
|
||||||
|
"length": 420
|
||||||
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = requests.post(core_url, headers={"Content-Type":"application/json"}, data=json.dumps(payload))
|
||||||
|
except:
|
||||||
|
return 'Failed to generate content!', 400
|
||||||
|
|
||||||
|
generated_content = response.content.decode("utf-8").replace('<|endoftext|>', '').replace(' ', ' ')
|
||||||
|
content_sentences = sent_tokenize(generated_content)
|
||||||
|
trimmed_content = ''
|
||||||
|
|
||||||
|
for sentence in content_sentences:
|
||||||
|
if len(trimmed_content) + len(sentence) < 270:
|
||||||
|
trimmed_content += ' '
|
||||||
|
trimmed_content += sentence
|
||||||
|
|
||||||
|
if len(trimmed_content) < 1:
|
||||||
|
trimmed_content = generated_content[:270]
|
||||||
|
|
||||||
|
return jsonify({
|
||||||
|
"content": trimmed_content
|
||||||
|
}), 200
|
||||||
|
Loading…
Reference in New Issue
Block a user