made some changes

This commit is contained in:
Nick committed 2019-09-10 14:00:55 -06:00
1 parent 61d0cd77cc
commit fe4792df8f
30 files changed
+100 -20

No files matched your search

Binary file not shown.
Binary file not shown.
Binary file not shown.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
View File
Whitespace-only changes.
File renamed without changes.
@@ -7,7 +7,7 @@ import gpt2.src.model as model
from tensorflow.contrib import predictor
import gpt2.src.sample as sample
import gpt2.src.encoder as encoder
from utils import *
from story.utils import *
import pdb
pos_action_starts = ["You attack", "You tell", "You use", "You go"]
@@ -50,29 +50,29 @@ class StoryGenerator():
text = self.enc.decode(out[0])
return text
def generate_story_block(self, prompt):
block = self.generate(prompt)
block = cut_trailing_sentence(block)
block = story_replace(block)
return block
def generate_action_options(self, prompt, action_starts=pos_action_starts):
possible_actions = []
for phrase in action_starts:
action = phrase + self.generate(prompt + phrase)
action = first_sentence(action)
possible_actions.append(action)
return possible_actions
def generate_action_result(self, prompt, phrase):
action = phrase + self.generate(prompt + phrase)
action_result = cut_trailing_sentence(action)
action_result = story_replace(action_result)
action = first_sentence(action)
return action, action_result
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -7
View File
@@ -1,17 +1,11 @@
import datetime
from flask import g
from flask import session
import os
import googleapiclient.discovery
from utils import *
from story.utils import *
from google.cloud import storage
from google import cloud
import json
from flask import Flask, render_template, request, abort
from flask import Response
import requests
import pdb
import sys
from generator import StoryGenerator
import gpt2.src.encoder as encoder
+85
View File
@@ -0,0 +1,85 @@
from story.utils import *
class Story():
def __init__(self, story_start):
self.story_start = story_start
# list of actions. First action is the prompt length should always equal that of story blocks
self.actions = []
# list of story blocks first story block follows prompt and is intro story
self.results = []
def add_to_story(self, action, story_block):
self.actions.append(action)
self.results.append(story_block)
def latest_result(self):
if len(self.results) > 0:
return self.results[-1]
else:
return ""
def __str__(self):
story_list = [self.story_start]
for i in range(len(self.results)):
story_list.append(self.actions[i])
story_list.append(self.results[i])
return sum(story_list)
class UnconstrainedStoryGenerator():
def __init__(self, generator, story_start):
self.story = Story(story_start)
self.generator = generator
def act(self, action_choice):
result = self.generate_result(action_choice)
self.story.add_to_story(action_choice, result)
return result
def story_context(self):
return self.story.latest_result()
def generate_result(self, action):
block = self.generator.generate(self.story_context() + action)
block = cut_trailing_sentence(block)
block = story_replace(block)
return block
class ConstrainedStoryGenerator():
def __init__(self, generator, story_start):
self.story = Story(story_start)
self.generator = generator
self.possible_action_results = self.get_action_results()
self.action_phrases = ["You attack", "You tell", "You use", "You go"]
def act(self, action_choice):
action, result = self.possible_action_results[action_choice]
self.story.add_to_story(action, result)
self.possible_action_results = self.get_action_results()
return result, self.possible_action_results
def story_context(self):
return self.story.latest_result()
def get_action_results(self):
return [self.generate_action_result(self.story_context(), phrase) for phrase in self.action_phrases]
def generate_action_result(self, prompt, phrase):
action = phrase + self.generator.generate(prompt + phrase)
action_result = cut_trailing_sentence(action)
action, result = split_first_sentence(action_result)
result = story_replace(action_result)
action = action_replace(action)
return action, result
+6 -5
View File
@@ -52,18 +52,19 @@ def text_replace(text):
return text
def first_sentence(text):
def split_first_sentence(text):
first_period = text.find('.')
first_exclamation = text.find('!')
if first_exclamation < first_period and first_exclamation > 0:
text = text[0:first_exclamation+1]
split_point = first_exclamation+1
elif first_period > 0:
text = text[0:first_period+1]
split_point = first_period+1
else:
return text[0:20]
split_point = text[0:20]
return text
return text[0:split_point], text[split_point:]
def all_but_first(text):
first_period = text.find('.')