mikefish commited on
Commit
53693ad
β€’
1 Parent(s): 6c07af8
Files changed (7) hide show
  1. README.md +0 -12
  2. app.py +115 -53
  3. medical_secrets.txt +90 -0
  4. reference.md +0 -122
  5. requirements.txt +0 -0
  6. secrets.txt +30 -0
  7. todo.txt +6 -0
README.md DELETED
@@ -1,12 +0,0 @@
1
- ---
2
- title: CharacterMaker
3
- emoji: πŸ‘€
4
- colorFrom: pink
5
- colorTo: purple
6
- sdk: gradio
7
- sdk_version: 3.36.1
8
- app_file: app.py
9
- pinned: false
10
- ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
app.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import gradio as gr
2
  from langchain.chains import LLMChain
3
  from langchain.chains import SimpleSequentialChain
@@ -10,11 +11,33 @@ import os
10
  import base64
11
  import requests
12
  import json
 
 
 
13
 
 
14
  openai.api_key = os.getenv("OPENAI_API_KEY")
15
 
16
- def getAndParseQuickStart(text):
17
- print("Asking AI for a character of " + text)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  prompt = """
19
  Please generate a character based on the following description assuming this is a real person,
20
  make sure any dialog is accurate as to how this specific character sounds. The dialog should give a good indication
@@ -148,13 +171,40 @@ def generateSpeakingStyle(text):
148
  ]
149
 
150
  with gr.Blocks() as demo:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  with gr.Row():
152
  quickStart = gr.TextArea(label="Quick Start", info="Use AI to fill out all fields based on your description.")
153
- generate = gr.Button("Generate")
154
- quickStartResult = gr.TextArea(label="result", interactive=False)
155
 
156
  with gr.Row():
157
  with gr.Column(scale=1, min_width=600):
 
 
158
  charName = gr.Textbox(label="Name", interactive=True)
159
  personality = gr.Textbox(label="Personality", interactive=True)
160
  body = gr.Textbox(label="Physical Description", interactive=True)
@@ -168,11 +218,11 @@ with gr.Blocks() as demo:
168
  description = gr.Textbox(label="Description", interactive=True)
169
  attributes = gr.Textbox(label="Attributes", interactive=True)
170
  with gr.Row():
171
- personalityProfile = gr.Textbox(label="Personality Profile", interactive=True)
172
- generatePersonality = gr.Button("Analyze")
173
 
174
  with gr.Accordion("Speaking Traits"):
175
- genProfile = gr.Button("Generate Speaking Style", interactive=True)
176
  with gr.Column(scale=1, min_width=600):
177
  with gr.Row():
178
  formality = gr.Dropdown(["Very formal", "Formal", "Neutral", "Informal", "Very informal"], label="Formality", interactive=True)
@@ -210,20 +260,32 @@ with gr.Blocks() as demo:
210
  cultural_references = gr.Dropdown(["Frequently uses cultural references", "Occasionally uses cultural references", "Balanced", "Rarely uses cultural references", "Never uses cultural references"], label="Cultural References", interactive=True)
211
  storytelling_ability = gr.Dropdown(["Frequent storyteller", "Occasional storyteller", "Balanced", "Rarely tells stories", "Never tells stories"], label="Storytelling Ability", interactive=True)
212
  with gr.Column(scale=1, min_width=600):
213
- situation = gr.TextArea(label="Situation", interactive=True)
214
- starting_message = gr.TextArea(label="Starting message", interactive=True)
215
- sample_starters = gr.CheckboxGroup(["This year is flying by so fast.",
216
- "It's quite sunny outside today.",
217
- "People seem to be in a hurry all the time.",
218
- "I hear birds chirping. It must be spring already.",
219
- "The city looks different at night."],
220
- label="Example conversation starters", info="These are simple statements designed to evoke a unique response without adding additional context. ", interactive=True),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
221
  with gr.Row():
222
  with gr.Column(scale=1):
223
- addUser = gr.Button("{{user}} >>")
224
- addBot = gr.Button("{{char}} >>")
225
- with gr.Column(scale=6):
226
- examples = gr.TextArea(label="Example chats", value="<START>\n")
227
 
228
  def test():
229
  print("trying....")
@@ -231,7 +293,11 @@ with gr.Blocks() as demo:
231
  state.inputs["charName"] = "New Name"
232
  demo.update(state)
233
 
234
- generate.click(getAndParseQuickStart, inputs=[quickStart], outputs=[
 
 
 
 
235
  quickStartResult,
236
  charName,
237
  personality,
@@ -245,7 +311,7 @@ with gr.Blocks() as demo:
245
  personalityProfile,
246
  attributes
247
  ])
248
- createJSON = gr.Button("Create JSON")
249
  def makePersonality(text):
250
  print("Asking AI for a profile")
251
  prompt = "Here are the details for you to analyze. Remember to return in the specified format: " + text
@@ -261,12 +327,7 @@ with gr.Blocks() as demo:
261
  return response_content
262
 
263
  generatePersonality.click(makePersonality, inputs=[quickStartResult], outputs=[personalityProfile])
264
- def insertUser(text):
265
- return text + "\n{{user}}"
266
- def insertBot(text):
267
- return text + "\n{{char}}"
268
- addUser.click(insertUser, inputs=[examples], outputs=examples)
269
- addBot.click(insertBot, inputs=[examples], outputs=examples)
270
 
271
  genProfile.click(generateSpeakingStyle, inputs=[quickStartResult], outputs=[
272
  formality,
@@ -341,11 +402,11 @@ with gr.Blocks() as demo:
341
  ### Merging things into description
342
 
343
  description_unwrapped = f"""
344
- {charName} is a {age}-year-old {sexuality} {sex}.\n
345
- {description}.\n
346
- {charName} is {body}.\n
347
- {charName} likes {likes}.\n
348
- {charName} hates {hates}.\n
349
  """
350
  speech_unwrapped = f"""
351
  {charName} speaks with a unique style:
@@ -371,14 +432,32 @@ with gr.Blocks() as demo:
371
  {"They " + cultural_references + "." if cultural_references!="Balanced" else ""}
372
  {"They " + storytelling_ability + "." if storytelling_ability!="Balanced" else ""}
373
  """
374
-
375
  output = f"""{{"name": "{charName}",
376
  "personality": "{personality}",
377
  "description": "{description_unwrapped}",
 
 
378
  "speech_style": "{speech_unwrapped}"
379
  }}"""
380
- print(output)
381
- return output
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
382
 
383
 
384
  createJSON.click(createJSONfile, inputs=[
@@ -426,24 +505,6 @@ with gr.Blocks() as demo:
426
 
427
 
428
 
429
- instruction_prompt = """
430
- You are an AI bot that creates profiles of characters based on a simple input. You generate and give detailed characters in the following format:
431
- Name: descriptors
432
- Mind: descriptors (comma separated properties)
433
- Personality: descriptors (comma separated properties, at least 8 traits)
434
- Body: descriptors (comma separated properties, at least 8 traits)
435
- Likes: descriptors (comma separated properties, at least 8 traits)
436
- Hates: descriptors (comma separated properties, at least 8 traits)
437
- Attributes: descriptors (comma separated properties, at least 8 traits)
438
- Clothes: descriptors (comma separated properties)
439
- Sex: descriptor (Male, Female, or Other)
440
- Sexuality: descriptor (Gay, Straight, Bi, or Asexual)
441
- Age: descriptor (as an integer, no additional text)
442
- Description: descriptor (3 sentences)
443
- Personality_Summary: descriptor
444
-
445
- """
446
-
447
  prompt_chat_test = """
448
  Scenario: descriptor (Minimum 4 sentences)
449
  First_Message: descriptor (do not include any quotation marks. At least 3 sentences)
@@ -496,5 +557,6 @@ Global 5/SLOAN: Reserved/Social, Calm/Limbic, Organized/Unstructured, Accommodat
496
  Please return the result codes in this format: "MBTI - Enneagram - Instinctual Variant - Tritype - Socionics - SLOAN". For example: INTJ - 3w4 - sp/sx - 358 - LIE - RCOEI". Do not explain or add other text or context.
497
  """
498
 
 
499
  inst = demo.launch()
500
 
 
1
+ from ast import Interactive
2
  import gradio as gr
3
  from langchain.chains import LLMChain
4
  from langchain.chains import SimpleSequentialChain
 
11
  import base64
12
  import requests
13
  import json
14
+ import re
15
+ import codecs
16
+ import random
17
 
18
+ ## Remember to set $env:OPENAI_API_KEY="keyhere"
19
  openai.api_key = os.getenv("OPENAI_API_KEY")
20
 
21
+ def getAndParseQuickStart(text, count):
22
+ print("Asking AI for a character of " + text + " with trait count:")
23
+ print(count)
24
+ instruction_prompt = f"""
25
+ You are an AI bot that creates profiles of characters based on a simple input. You generate and give detailed characters in the following format:
26
+ Name: descriptors
27
+ Mind: descriptors (comma separated properties)
28
+ Personality: descriptors (comma separated properties, at least {count} traits)
29
+ Body: descriptors (comma separated properties, at least {count} traits)
30
+ Likes: descriptors (comma separated properties, at least {count} traits)
31
+ Hates: descriptors (comma separated properties, at least {count} traits)
32
+ Attributes: descriptors (comma separated properties, at least {count} traits)
33
+ Clothes: descriptors (comma separated properties)
34
+ Sex: descriptor (choose from: Male, Female, or Other)
35
+ Sexuality: descriptor (choose from: Gay, Straight, Bi, or Asexual)
36
+ Age: descriptor (as an integer, no additional text)
37
+ Description: descriptor (3 sentences, do not repeat any previous information)
38
+ Personality_Summary: descriptor
39
+
40
+ """
41
  prompt = """
42
  Please generate a character based on the following description assuming this is a real person,
43
  make sure any dialog is accurate as to how this specific character sounds. The dialog should give a good indication
 
171
  ]
172
 
173
  with gr.Blocks() as demo:
174
+ gr.Markdown(
175
+ """
176
+ **Character Maker v0.1**
177
+ 1. Give a general description or starting point and click (1) Generate Quick Start (ex. "J from Men in Black but he is a cat")
178
+ 2. Edit response fields as needed
179
+ 3. Click (2) Analyze to create a personality profile
180
+ 4. Click (3) Generate Speaking Style
181
+ 5. Edit any fields as you want
182
+ 6. Click (4) Create JSON
183
+ 7. Copy JSON from the top Results box
184
+ """)
185
+
186
+ numTraits = 1
187
+ def updateTraitCount(text):
188
+ numTraits = text
189
+ print (numTraits)
190
+ def generateMedicalSecrets(count):
191
+ with open('medical_secrets.txt', 'r') as file:
192
+ lines = file.readlines()
193
+ selected_lines = random.sample(lines, count)
194
+ codes = [re.search(r'\((.*?)\)', line).group(1) for line in selected_lines]
195
+ codes_string = ', '.join(codes)
196
+ print(codes)
197
+ return "medical conditions: " + codes_string
198
+
199
  with gr.Row():
200
  quickStart = gr.TextArea(label="Quick Start", info="Use AI to fill out all fields based on your description.")
201
+ generate = gr.Button("1. Generate Quick Start")
202
+ quickStartResult = gr.TextArea(label="result", interactive=False, show_copy_button=True)
203
 
204
  with gr.Row():
205
  with gr.Column(scale=1, min_width=600):
206
+ trait_count = gr.Slider(4, 20, label="Minimum number of traits for each category", interactive=True, step=1.0, value=8)
207
+ trait_count.change(updateTraitCount, inputs=[trait_count])
208
  charName = gr.Textbox(label="Name", interactive=True)
209
  personality = gr.Textbox(label="Personality", interactive=True)
210
  body = gr.Textbox(label="Physical Description", interactive=True)
 
218
  description = gr.Textbox(label="Description", interactive=True)
219
  attributes = gr.Textbox(label="Attributes", interactive=True)
220
  with gr.Row():
221
+ personalityProfile = gr.Textbox(label="Psychological Profile", interactive=True)
222
+ generatePersonality = gr.Button("2. Analyze Personality")
223
 
224
  with gr.Accordion("Speaking Traits"):
225
+ genProfile = gr.Button("3. Generate Speaking Style", interactive=True)
226
  with gr.Column(scale=1, min_width=600):
227
  with gr.Row():
228
  formality = gr.Dropdown(["Very formal", "Formal", "Neutral", "Informal", "Very informal"], label="Formality", interactive=True)
 
260
  cultural_references = gr.Dropdown(["Frequently uses cultural references", "Occasionally uses cultural references", "Balanced", "Rarely uses cultural references", "Never uses cultural references"], label="Cultural References", interactive=True)
261
  storytelling_ability = gr.Dropdown(["Frequent storyteller", "Occasional storyteller", "Balanced", "Rarely tells stories", "Never tells stories"], label="Storytelling Ability", interactive=True)
262
  with gr.Column(scale=1, min_width=600):
263
+ gr.Markdown("""**SECRETS**\n
264
+ Medical conditions : This will choose a random medical condition(s) that this character suffers from.
265
+ Conditions will be saved only as a medical diagnosis code to save on token space and so it can be a secret to YOU as well.
266
+ """)
267
+ with gr.Row():
268
+ conditions_count = gr.Slider(1, 10, label="Number of conditions", info="Choose between 1 and 10", interactive=True, step=1.0, value=1)
269
+ med_secret_button = gr.Button("5. Generate secret medical condition(s) (COMING SOON)", interactive=True)
270
+ med_secret = gr.Textbox(label="Secrets", interactive=True, type='password')
271
+ gr.Markdown("""Trauma : This will choose a random psychological event that affects how this character behaves.
272
+ Example: Experiencing discrimination
273
+ """)
274
+ with gr.Row():
275
+ secrets_count = gr.Slider(1, 10, label="Number of issues", info="Choose between 1 and 10", interactive=True, step=1.0)
276
+ secret_button = gr.Button("6. Generate secret issues(s) (COMING SOON)", interactive=False)
277
+ secret = gr.Textbox(label="Secrets", interactive=True, type='password')
278
+ situation = gr.TextArea(label="Situation (COMING SOON)", interactive=False)
279
+ starting_message = gr.TextArea(label="Starting message (COMING SOON)", interactive=False)
280
+ # sample_starters = gr.CheckboxGroup(["This year is flying by so fast.",
281
+ # "It's quite sunny outside today.",
282
+ # "People seem to be in a hurry all the time.",
283
+ # "I hear birds chirping. It must be spring already.",
284
+ # "The city looks different at night."],
285
+ # label="Example conversation starters", info="These are simple statements designed to evoke a unique response without adding additional context. ", interactive=True),
286
  with gr.Row():
287
  with gr.Column(scale=1):
288
+ examples = gr.TextArea(label="Example chats (COMING SOON)", value="<START>\n")
 
 
 
289
 
290
  def test():
291
  print("trying....")
 
293
  state.inputs["charName"] = "New Name"
294
  demo.update(state)
295
 
296
+ def genMedical(text):
297
+ return "none"
298
+
299
+ med_secret_button.click(generateMedicalSecrets, inputs=[conditions_count], outputs=[med_secret])
300
+ generate.click(getAndParseQuickStart, inputs=[quickStart, trait_count], outputs=[
301
  quickStartResult,
302
  charName,
303
  personality,
 
311
  personalityProfile,
312
  attributes
313
  ])
314
+ createJSON = gr.Button("4. Create JSON")
315
  def makePersonality(text):
316
  print("Asking AI for a profile")
317
  prompt = "Here are the details for you to analyze. Remember to return in the specified format: " + text
 
327
  return response_content
328
 
329
  generatePersonality.click(makePersonality, inputs=[quickStartResult], outputs=[personalityProfile])
330
+
 
 
 
 
 
331
 
332
  genProfile.click(generateSpeakingStyle, inputs=[quickStartResult], outputs=[
333
  formality,
 
402
  ### Merging things into description
403
 
404
  description_unwrapped = f"""
405
+ {charName} is a {age}-year-old {sexuality} {sex}.
406
+ {description}.
407
+ {charName} is {body}.
408
+ {charName} likes {likes}.
409
+ {charName} hates {hates}.
410
  """
411
  speech_unwrapped = f"""
412
  {charName} speaks with a unique style:
 
432
  {"They " + cultural_references + "." if cultural_references!="Balanced" else ""}
433
  {"They " + storytelling_ability + "." if storytelling_ability!="Balanced" else ""}
434
  """
 
435
  output = f"""{{"name": "{charName}",
436
  "personality": "{personality}",
437
  "description": "{description_unwrapped}",
438
+ "attributes" : "{attributes}",
439
+ "psych_profile" : "{personalityProfile}",
440
  "speech_style": "{speech_unwrapped}"
441
  }}"""
442
+
443
+ output = output.replace('\n', '')
444
+ json_string = codecs.getdecoder("unicode_escape")(output)[0]
445
+
446
+ # Load the JSON string into a Python object
447
+ data = json.loads(json_string)
448
+
449
+ # Clean up the data
450
+ for key, value in data.items():
451
+ if isinstance(value, str):
452
+ # Remove leading/trailing white spaces, newlines and replace multiple spaces with a single space
453
+ cleaned_value = re.sub('\s+', ' ', value.strip())
454
+ data[key] = cleaned_value
455
+
456
+ # Convert the cleaned data back to a compact JSON string
457
+ cleaned_json_string = json.dumps(data, separators=(',', ':'))
458
+
459
+ print(cleaned_json_string)
460
+ return cleaned_json_string
461
 
462
 
463
  createJSON.click(createJSONfile, inputs=[
 
505
 
506
 
507
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
508
  prompt_chat_test = """
509
  Scenario: descriptor (Minimum 4 sentences)
510
  First_Message: descriptor (do not include any quotation marks. At least 3 sentences)
 
557
  Please return the result codes in this format: "MBTI - Enneagram - Instinctual Variant - Tritype - Socionics - SLOAN". For example: INTJ - 3w4 - sp/sx - 358 - LIE - RCOEI". Do not explain or add other text or context.
558
  """
559
 
560
+
561
  inst = demo.launch()
562
 
medical_secrets.txt ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Generalized anxiety disorder (F41.1)
2
+ Social anxiety disorder (F40.10)
3
+ Panic disorder (F41.0)
4
+ Arachnophobia (F40.210)
5
+ Social phobia (F40.230)
6
+ Fear of blood (F40.3)
7
+ Fear of heights (F40.2)
8
+ Claustrophobia (F40.291)
9
+ OCD (F42)
10
+ PTSD (F43.1)
11
+ Bipolar disorder (F31)
12
+ Schizophrenia (F20)
13
+ Borderline personality disorder (F60.3)
14
+ Antisocial personality disorder (F60.2)
15
+ Narcissistic personality disorder (F60.81)
16
+ Histrionic personality disorder (F60.4)
17
+ Paranoid personality disorder (F60.0)
18
+ Dependent personality disorder (F60.7)
19
+ Avoidant personality disorder (F60.6)
20
+ ADHD (F90.x)
21
+ Autism spectrum disorder (F84.0)
22
+ Dyslexia (F81.0)
23
+ Dyscalculia (F81.2)
24
+ Speech sound disorder (F80.0)
25
+ Stuttering (F98.5)
26
+ Dissociative amnesia (F44.0)
27
+ Dissociative fugue (F44.1)
28
+ Dissociative identity disorder (F44.81)
29
+ Somatic symptom disorder (F45.1)
30
+ Illness anxiety disorder (F45.21)
31
+ Anorexia nervosa (F50.0)
32
+ Bulimia nervosa (F50.2)
33
+ Binge eating disorder (F50.8)
34
+ Major depressive disorder, mild (F32.0)
35
+ Major depressive disorder, moderate (F32.1)
36
+ Major depressive disorder, severe (F32.2)
37
+ Major depressive disorder, severe and psychotic (F32.3)
38
+ Alcoholism (F10.2)
39
+ Opiod addiction (F11.2)
40
+ Weed addiction (F12.2)
41
+ Downer addiction (F13.2)
42
+ Cocain addiction (F14.2)
43
+ Uppers addiction (F15.2)
44
+ Hallucinogen addiction (F16.2)
45
+ Tobacco addiction (F17.2)
46
+ Gambling addiction (F63.0)
47
+ Type 1 diabetes (E10)
48
+ Type 2 diabetes (E11)
49
+ Asthma (J45)
50
+ Systemic lupus erythematosus (M32)
51
+ Rheumatoid arthritis (M05)
52
+ Multiple sclerosis (G35)
53
+ Fibromyalgia (M79.7)
54
+ Migraines (G43)
55
+ Chronic back pain (M54.5)
56
+ Insomnia (F51.0)
57
+ Sleep apnea (G47.3)
58
+ Narcolepsy (G47.4)
59
+ Hypothyroidism (E03)
60
+ Hashimoto's thyroiditis (E06.3)
61
+ GERD (K21.0)
62
+ Acid reflux (K21.0)
63
+ Irritable bowel syndrome (K58)
64
+ Food allergies - nuts (T78.0, nuts)
65
+ Food allergies - seafood (T78.0, seafood)
66
+ Food allergies - lactose (T78.0, lactose)
67
+ High blood pressure (I10)
68
+ Hypertension (I10)
69
+ Heart disease (I51.9)
70
+ Heart failure (I50)
71
+ Arrhythmias (I49.9)
72
+ Stroke (I64)
73
+ Transient ischemic attack (G45.9)
74
+ Epilepsy (G40)
75
+ Tonic-clonic seizures (G40)
76
+ Hearing loss (H91.9)
77
+ Tinnitus (H93.1)
78
+ Cataracts (H25)
79
+ Macular degeneration (H35.3)
80
+ Glaucoma (H40)
81
+ Eczema (L30.9)
82
+ Psoriasis (L40)
83
+ Osteoarthritis (M15)
84
+ Gout (M10)
85
+ Chronic kidney disease (N18)
86
+ Kidney stones (N20.0)
87
+ Anemia (D64.9)
88
+ Iron deficiency (D50)
89
+ B12 deficiency (D51.9)
90
+ Urinary incontinence (R32)
reference.md DELETED
@@ -1,122 +0,0 @@
1
- Emotional Distress:
2
- Death of a loved one
3
- Surviving childhood abuse
4
- Being abandoned by a parent
5
- Betrayal by a romantic partner
6
- Being bullied/excluded
7
- Long-term illness/disability
8
- Surviving a natural disaster
9
- Experiencing discrimination
10
- Combat trauma from war
11
- Witnessing domestic violence
12
- Rejection from a dream career
13
- Surviving sexual assault
14
- Growing up in poverty
15
- Being wrongly imprisoned
16
- Crippling social anxiety
17
- Major sports injury ending career
18
- Losing your family home
19
- Wrong mental illness diagnosis
20
- Sudden death of a spouse/child
21
- Betrayal by family/friend
22
- Failing at your life's passion
23
- Surviving a terrorist attack
24
- Causing a fatal accident
25
- Attempted suicide
26
- Life-changing disability
27
- Surviving a kidnapping
28
- Infertility issues
29
- Narcissistic parent upbringing
30
- Religious disillusionment
31
- Public humiliation from scandal
32
-
33
- Here is a list of potential internal, mental, and emotional conflicts that could create complexity for a fictional character:
34
-
35
- Self-doubt/lack of confidence
36
- Perfectionism/fear of failure
37
- Guilt over past mistakes/actions
38
- Self-destructive behaviors
39
- Addiction/substance abuse
40
- Anger issues/explosive temper
41
- Anxiety/panic attacks
42
- PTSD/trauma flashbacks
43
- Depression/ suicidal thoughts
44
- Eating disorder/body image issues
45
- Insecurity/low self-esteem
46
- Shame/embarrassment
47
- Grief/inability to move on
48
- Jealousy/envy of others' success
49
- Prejudice/close-minded thinking
50
- Chronic indecision/fear of commitment
51
- Imposter syndrome
52
- Resentment toward a parent/caregiver
53
- Feeling undeserving of love/relationships
54
- Manipulative/dishonest tendencies
55
- Obsessive thought patterns
56
- Difficulty expressing emotions
57
- Avoidant attachment style
58
- martyr complex
59
- excessive need to be liked/approved of
60
- religious/spiritual disillusionment
61
-
62
- medical disorder/condition on its own line:
63
-
64
- Generalized anxiety disorder
65
- Social anxiety
66
- Phobias
67
- OCD
68
- PTSD
69
- Major depressive disorder
70
- Bipolar disorder
71
- Alcoholism
72
- Drug addiction
73
- Opioid addiction
74
- Gambling addiction
75
- Anorexia nervosa
76
- Bulimia nervosa
77
- Type 1 diabetes
78
- Type 2 diabetes
79
- Asthma
80
- Systemic lupus erythematosus
81
- Rheumatoid arthritis
82
- Multiple sclerosis
83
- Fibromyalgia
84
- Migraines
85
- Chronic back pain
86
- Insomnia
87
- Sleep apnea
88
- Narcolepsy
89
- ADHD
90
- Hypothyroidism
91
- Hashimoto's thyroiditis
92
- GERD
93
- Acid reflux
94
- Irritable bowel syndrome
95
- Food allergies to nuts
96
- Food allergies to seafood
97
- Food allergies to lactose
98
- High blood pressure
99
- Hypertension
100
- Heart disease
101
- Heart failure
102
- Arrythmias
103
- Stroke
104
- Transient ischemic attack (TIA)
105
- Epilepsy
106
- Tonic-clonic seizures
107
- Hearing loss
108
- Tinnitus
109
- Cataracts
110
- Macular degeneration
111
- Glaucoma
112
- Eczema
113
- Psoriasis
114
- Osteoarthritis
115
- Rheumatoid arthritis
116
- Gout
117
- Chronic kidney disease
118
- Kidney stones
119
- Anemia
120
- Iron deficiency
121
- B12 deficiency
122
- Urinary incontinence
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
requirements.txt ADDED
Binary file (4.1 kB). View file
 
secrets.txt ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Death of a loved one
2
+ Surviving childhood abuse
3
+ Being abandoned by a parent
4
+ Betrayal by a romantic partner
5
+ Being bullied/excluded
6
+ Long-term illness/disability
7
+ Surviving a natural disaster
8
+ Experiencing discrimination
9
+ Combat trauma from war
10
+ Witnessing domestic violence
11
+ Rejection from a dream career
12
+ Surviving sexual assault
13
+ Growing up in poverty
14
+ Being wrongly imprisoned
15
+ Crippling social anxiety
16
+ Major sports injury ending career
17
+ Losing your family home
18
+ Wrong mental illness diagnosis
19
+ Sudden death of a spouse/child
20
+ Betrayal by family/friend
21
+ Failing at your life's passion
22
+ Surviving a terrorist attack
23
+ Causing a fatal accident
24
+ Attempted suicide
25
+ Life-changing disability
26
+ Surviving a kidnapping
27
+ Infertility issues
28
+ Narcissistic parent upbringing
29
+ Religious disillusionment
30
+ Public humiliation from scandal
todo.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ - Scenario and setting creator
2
+ - Chat sample creator and chooser
3
+ - add Secrets (DM codes?)
4
+ - create and save a JSON
5
+ - Testable playground?
6
+ - Add grammar and spelling variable