harrygens commited on
Commit
c054bb7
·
1 Parent(s): 6939921

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -22
app.py CHANGED
@@ -14,8 +14,6 @@ classAns = os.environ['classAns']
14
  defaultMsg = os.environ['defaultMsg']
15
  defaultMsgEnd = os.environ['defaultMsgEnd']
16
 
17
- mod = 3;
18
-
19
  def localRace(race):
20
  race = race
21
  return race
@@ -24,20 +22,12 @@ def localClass(cls):
24
  cls = cls
25
  return cls
26
 
27
- def trimMessages(messages):
28
- # Assuming messages is an array of objects with "role" and "content" properties
29
- content = {}
30
- for message in messages:
31
- if message["role"] == "assistant":
32
- if "Current Status:" in message["content"]:
33
- content = message["content"]
34
- start_index = message["content"].index("Current Status:") + len("Current Status:")
35
- end_index = message["content"].index("Wielding:")
36
- new_content = message["content"][:start_index] + message["content"][end_index:]
37
- message["content"] = new_content
38
- if content != {}:
39
- messages.append({"role": "assistant", "content": content})
40
- return messages
41
 
42
  def getChooseRole(msg):
43
  start_index = msg.index("As a") + len("As a")
@@ -65,21 +55,29 @@ def getChooseClass(msg):
65
 
66
  def chatbot(race, cls, input, localvar):
67
  #messages = messages or [{"role": "system", "content": initMsg}]
68
- localvar = localvar or {"messages": [{"role": "system", "content": "I choose as "+ race + " "+ cls +" in D&D world.\n" + initMsg}], "race": race, "class": cls, "status":""}
 
69
  messages = localvar['messages']
70
- if input:
71
- messages.append({"role": "user", "content": defaultMsg + "(I am an "+race+" "+cls+")( My Current status is as follows :" + localvar['status'] + ") " + defaultMsgEnd + ". \n" + input})
 
 
 
72
  chat = openai.ChatCompletion.create(
73
- model="gpt-3.5-turbo", messages=messages[-2:],
74
  max_tokens=2048,n=1,temperature=0.5,
75
  )
76
  reply = chat.choices[0].message.content
77
  logging.info("AI Reply:"+reply)
78
  if len(messages) == 1:
79
  localvar['status'] = reply
 
 
80
  messages.append({"role": "assistant", "content": reply})
81
  localvar['messages'] = messages
82
  return reply, printMessages(messages), localvar
 
 
83
 
84
  def printMessages(messages):
85
  delimiter = '\n'
@@ -89,7 +87,7 @@ def printMessages(messages):
89
 
90
  app = gr.Interface(fn=chatbot, inputs=[gr.Dropdown(["Orc", "Human", "Elf", "Dwarf", "Halfling", "Goliath", "Dragonborn"], value="Orc", label="Race", info="please choose your race:"),
91
  gr.Dropdown(["Warrior", "Mage", "Priest", "Assassin", "Thief", "Paladin", "Archer", "Guardian"], value="Warrior", label="Class", info="please choose the name of the class you wish to play as:"),
92
- gr.Textbox(lines=7, label="You ask and answer questions below, press submit to start", placeholder="", value="start"), "state"], #Type word 'start game'
93
- outputs=[gr.Textbox(label="DND Game Reply", placeholder="Waiting for you press submit to start play..."), gr.Textbox(label="History"), "state"], title="DND Game",#, gr.Textbox(label="History"),
94
  description="DND Game",theme="compact")
95
  app.launch(share=False)
 
14
  defaultMsg = os.environ['defaultMsg']
15
  defaultMsgEnd = os.environ['defaultMsgEnd']
16
 
 
 
17
  def localRace(race):
18
  race = race
19
  return race
 
22
  cls = cls
23
  return cls
24
 
25
+ def getStatus(msg):
26
+ if "Current Status:" in msg:
27
+ start_index = msg.index("Current Status:") + len("Current Status:")
28
+ end_index = msg.index("Description:")
29
+ new_content = msg[start_index:] + msg[:end_index]
30
+ return new_content
 
 
 
 
 
 
 
 
31
 
32
  def getChooseRole(msg):
33
  start_index = msg.index("As a") + len("As a")
 
55
 
56
  def chatbot(race, cls, input, localvar):
57
  #messages = messages or [{"role": "system", "content": initMsg}]
58
+ init = {"role": "system", "content": "I choose as "+ race + " "+ cls +" in D&D world.\n" + initMsg}
59
+ localvar = localvar or {"messages": [init], "race": race, "class": cls, "status":""}
60
  messages = localvar['messages']
61
+ if len(messages) == 1:
62
+ input = " "
63
+ if input:
64
+ message = [init, {"role": "user", "content": defaultMsg + "(I am an "+race+" "+cls+")( My Current status is as follows :" + localvar['status'] + ") " + defaultMsgEnd + ". \n" + input}]
65
+ messages.append(message)
66
  chat = openai.ChatCompletion.create(
67
+ model="gpt-3.5-turbo", messages=message,#messages[-2:]
68
  max_tokens=2048,n=1,temperature=0.5,
69
  )
70
  reply = chat.choices[0].message.content
71
  logging.info("AI Reply:"+reply)
72
  if len(messages) == 1:
73
  localvar['status'] = reply
74
+ else:
75
+ localvar['status'] = getStatus(reply)
76
  messages.append({"role": "assistant", "content": reply})
77
  localvar['messages'] = messages
78
  return reply, printMessages(messages), localvar
79
+ else:
80
+ return "please input words!", printMessages(messages), localvar
81
 
82
  def printMessages(messages):
83
  delimiter = '\n'
 
87
 
88
  app = gr.Interface(fn=chatbot, inputs=[gr.Dropdown(["Orc", "Human", "Elf", "Dwarf", "Halfling", "Goliath", "Dragonborn"], value="Orc", label="Race", info="please choose your race:"),
89
  gr.Dropdown(["Warrior", "Mage", "Priest", "Assassin", "Thief", "Paladin", "Archer", "Guardian"], value="Warrior", label="Class", info="please choose the name of the class you wish to play as:"),
90
+ gr.Textbox(lines=7, label="You ask and answer questions below", placeholder="Press submit button to start game"), "state"], #Type word 'start game'
91
+ outputs=[gr.Textbox(label="DND Game Reply", placeholder="Waiting for you press submit button to start play..."), gr.Textbox(label="History"), "state"], title="DND Game",#, gr.Textbox(label="History"),
92
  description="DND Game",theme="compact")
93
  app.launch(share=False)