File size: 3,976 Bytes
0b75c79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import conversation as cs

def test_user_person_creation(topic, language):
  user_persona_answer = None
  previous_conversation = None
  
  for i in range(2):
    question = cs.make_user_persona(topic, user_persona_answer, previous_conversation, language)
    if i == 0:
      previous_conversation = f"Host: {question['response']}"
    else:
      previous_conversation = f"{previous_conversation}\nHost: {question['response']}\n"

    print(question["response"])
    user_persona_answer = input("Enter your answer: ")
    previous_conversation =  f"{previous_conversation}\nUser: {user_persona_answer}\nHost: "

    # if i == 4:
    if i == 1:
      user_persona = cs.summarize_user_persona(topic, previous_conversation, language)["response"]
      
  print("User Persona: ", user_persona)
  return user_persona
  

def test_create_scenario(topic, user_persona, language):
  result = cs.create_scenario(topic, user_persona, language)
  response = result["response"]
  print("Scenario Response:  ", response)
  print("Scenarios: ", result["scenarios"])
  return result["scenarios"], result["entire_story"]


def main():
  topic = 'harry potter'
  # topic = 'star wars'
  language = 'korean'
  # user_persona = test_user_person_creation(topic, language)
  user_persona = "์ดํ˜„๊ตฌ๋‹˜์€ ์Šฌ๋ฆฌ๋ฐ๋ฆฐ ๊ฐ€๋ฌธ์˜ ๋งˆ๋ฒ•์‚ฌ๋กœ, ์•ผ์‹ฌ์ฐจ๊ณ  ๊ตํ™œํ•˜๋ฉฐ, ์ž๊ธฐํ†ต์ œ๋ ฅ์ด ๊ฐ•ํ•œ ์„ฑ๊ฒฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ „๋žต์ ์ด๊ณ  ๊ณ„์‚ฐ์ ์ธ ๋ฉด๋ชจ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๋Š” ๋ชจ์Šต์„ ๋ณด์ž…๋‹ˆ๋‹ค."
  scenarios, entire_story = test_create_scenario(topic, user_persona, language)
  
  conversation = ""
  choice_result = ""
  total_choices = ""
  life = 10
  money = 10
  for i in range(len(scenarios)):
    this_round_story = f"{i}. {scenarios[i]["title"]}\n{scenarios[i]["story"]}\n\n"
    game_result = cs.play_game(topic, user_persona, language, entire_story, this_round_story, conversation, choice_result)
    print(f"{i+1}th Game Response: ", game_result["response"])
    selectable_choices = game_result["user_choices"]
    
    print(f"Round{i+1}: ", game_result["round_content"])
    print(f"Choices:\n", '\n'.join([f"{_choice_idx+1}: {choice}" for _choice_idx, choice in enumerate(selectable_choices)]))
    choice_idx = int(input(f"Select your choice_idx(1~{len(selectable_choices)}): "))
    choice_effect = game_result["choice_effects"][choice_idx-1]
    life_change = choice_effect["life"]
    money_change = choice_effect["money"]
    life += life_change
    money += money_change
    conversation += f"ํ˜ธ์ŠคํŠธ: {game_result["round_content"]}\nํ”Œ๋ ˆ์ด์–ด: {game_result["user_choices"][choice_idx-1]}\n"
    choice_result = f"์ƒ๋ช… ํฌ์ธํŠธ๊ฐ€ {str(life_change)+" ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค." if life_change >= 0 else str(life_change*(-1))+" ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค."}, ๋ˆ: {str(money_change)+" ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค." if money_change >= 0 else str(money_change*(-1))+" ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค."}\n"
    
    print("Conversation: ", conversation)
    print("Changed Life: ", life)
    print("Changed Money: ", money)
    print("Choice Result: ", choice_result)
    
    if life <= 0:
      choice_result += f" ๊ทธ ๊ฒฐ๊ณผ ์ƒ๋ช… ํฌ์ธํŠธ๊ฐ€ {life}์œผ๋กœ ๋–จ์–ด์ ธ ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค"
      bad_ending_scenario = cs.generate_bad_end(language, topic, user_persona, conversation, choice_result)["response"]
      print("Bad Ending Scenario: ", bad_ending_scenario)
      return
    if money <= 0:
      choice_result += f" ๊ทธ ๊ฒฐ๊ณผ ์†Œ์ง€ํ•œ ๋ˆ์ด {money}์œผ๋กœ ๋–จ์–ด์ ธ ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค"
      bad_ending_scenario = cs.generate_bad_end(language, topic, user_persona, conversation, choice_result)["response"]
      print("Bad Ending Scenario: ", bad_ending_scenario)
      return

  good_ending_scenario = cs.generate_good_end(language, topic, user_persona, entire_story, conversation)["response"]
  print("Good Ending Scenario: ", good_ending_scenario)
  return

if __name__ == "__main__":
  main()