LRPG / prototype /test_conv.py
pizb's picture
Upload folder using huggingface_hub
0b75c79 verified
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()