rodrigomasini commited on
Commit
1758669
·
verified ·
1 Parent(s): 123218a

Update archives/modified_version.py

Browse files
Files changed (1) hide show
  1. archives/modified_version.py +23 -15
archives/modified_version.py CHANGED
@@ -6,6 +6,10 @@ from sentence_transformers import SentenceTransformer
6
  from utils import get_init, parse_instructions
7
  import re
8
 
 
 
 
 
9
  # from urllib.parse import quote_plus
10
  # from pymongo import MongoClient
11
 
@@ -15,27 +19,31 @@ import re
15
  # db = client.recurrentGPT_db
16
  # log = db.log
17
 
18
- _CACHE = {}
 
19
 
 
20
 
21
- # Build the semantic search model
 
22
  embedder = SentenceTransformer('multi-qa-mpnet-base-cos-v1')
23
 
24
- def init_prompt(novel_type, description):
 
25
  if description == "":
26
  description = ""
27
  else:
28
  description = " about " + description
29
  return f"""
30
- Please write a {novel_type} novel{description} with 50 chapters. Follow the format below precisely:
31
- Begin with the name of the novel.
32
- Next, write an outline for the first chapter. The outline should describe the background and the beginning of the novel.
33
- Write the first three paragraphs with their indication of the novel based on your outline. Write in a novelistic style and take your time to set the scene.
34
  Write a summary that captures the key information of the three paragraphs.
35
- Finally, write three different instructions for what to write next, each containing around five sentences. Each instruction should present a possible, interesting continuation of the story.
36
  The output format should follow these guidelines:
37
- Name: <name of the novel>
38
- Outline: <outline for the first chapter>
39
  Paragraph 1: <content for paragraph 1>
40
  Paragraph 2: <content for paragraph 2>
41
  Paragraph 3: <content for paragraph 3>
@@ -46,14 +54,14 @@ Instruction 3: <content for instruction 3>
46
  Make sure to be precise and follow the output format strictly.
47
  """
48
 
49
- def init(novel_type, description, request: gr.Request):
50
- if novel_type == "":
51
- novel_type = "Science Fiction"
52
  global _CACHE
53
  cookie = request.headers['cookie']
54
  cookie = cookie.split('; _gat_gtag')[0]
55
  # prepare first init
56
- init_paragraphs = get_init(text=init_prompt(novel_type,description))
57
  # print(init_paragraphs)
58
  start_input_to_human = {
59
  'output_paragraph': init_paragraphs['Paragraph 3'],
@@ -64,7 +72,7 @@ def init(novel_type, description, request: gr.Request):
64
 
65
  _CACHE[cookie] = {"start_input_to_human": start_input_to_human,
66
  "init_paragraphs": init_paragraphs}
67
- written_paras = f"""Title: {init_paragraphs['name']}
68
  Outline: {init_paragraphs['Outline']}
69
  Paragraphs:
70
  {start_input_to_human['input_paragraph']}"""
 
6
  from utils import get_init, parse_instructions
7
  import re
8
 
9
+ ###################################################################################################################################################################
10
+ ###################################################################################################################################################################
11
+ # TODO: add user database
12
+
13
  # from urllib.parse import quote_plus
14
  # from pymongo import MongoClient
15
 
 
19
  # db = client.recurrentGPT_db
20
  # log = db.log
21
 
22
+ ###################################################################################################################################################################
23
+ ###################################################################################################################################################################
24
 
25
+ _CACHE = {}
26
 
27
+ # TODO : try with different embedding models
28
+ ## Build the semantic search model
29
  embedder = SentenceTransformer('multi-qa-mpnet-base-cos-v1')
30
 
31
+ # TODO: make a prompt class
32
+ def init_prompt(text_type, description, structure, units, tone):
33
  if description == "":
34
  description = ""
35
  else:
36
  description = " about " + description
37
  return f"""
38
+ Please write a {text_type} about {description} with {units} {structure}. Follow the format below precisely:
39
+ Begin with the title of the {text_type}.
40
+ Next, write an outline for the first {structure}. The outline should describe the {description} and the beginning of the {text_type}.
41
+ Write the first three paragraphs with their indication of the {text_type} based on your outline. Write in a {tone} style and take your time to set the context.
42
  Write a summary that captures the key information of the three paragraphs.
43
+ Finally, write three different instructions for what to write next, each containing around five sentences. Each instruction should present a possible, interesting continuation of the {text_type}.
44
  The output format should follow these guidelines:
45
+ Name: <name of the {text_type}>
46
+ Outline: <outline for the first {structure}>
47
  Paragraph 1: <content for paragraph 1>
48
  Paragraph 2: <content for paragraph 2>
49
  Paragraph 3: <content for paragraph 3>
 
54
  Make sure to be precise and follow the output format strictly.
55
  """
56
 
57
+ def init(text_type, description, request: gr.Request):
58
+ if tex_type == "":
59
+ text_type = "Linkedin post"
60
  global _CACHE
61
  cookie = request.headers['cookie']
62
  cookie = cookie.split('; _gat_gtag')[0]
63
  # prepare first init
64
+ init_paragraphs = get_init(text=init_prompt(text_type, description, structure, units, tone))
65
  # print(init_paragraphs)
66
  start_input_to_human = {
67
  'output_paragraph': init_paragraphs['Paragraph 3'],
 
72
 
73
  _CACHE[cookie] = {"start_input_to_human": start_input_to_human,
74
  "init_paragraphs": init_paragraphs}
75
+ written_paras = f"""Title: {init_paragraphs['name']}
76
  Outline: {init_paragraphs['Outline']}
77
  Paragraphs:
78
  {start_input_to_human['input_paragraph']}"""