Spaces:
Sleeping
Sleeping
Chan Meng
commited on
Commit
·
8006db0
1
Parent(s):
29531eb
update
Browse files- app.py +13 -14
- config/prompts.py +23 -4
app.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
import gradio as gr
|
2 |
from huggingface_hub import InferenceClient
|
|
|
3 |
from config.prompts import GUIDE_PERSONA, TIME_PERIODS
|
4 |
from models.state import TimelineState
|
5 |
|
@@ -20,19 +21,6 @@ def respond(
|
|
20 |
temperature,
|
21 |
top_p,
|
22 |
):
|
23 |
-
# Check for time travel command
|
24 |
-
if message.startswith("/travel"):
|
25 |
-
try:
|
26 |
-
destination = message.split()[1]
|
27 |
-
if destination in TIME_PERIODS:
|
28 |
-
timeline_state.visit_period(destination)
|
29 |
-
system_message = get_system_message()
|
30 |
-
response = f"🌟 Time jump successful! Welcome to {TIME_PERIODS[destination]['name']}. {TIME_PERIODS[destination]['description']}."
|
31 |
-
return response
|
32 |
-
except IndexError:
|
33 |
-
return "Please specify a time period to travel to. Available periods: " + ", ".join(TIME_PERIODS.keys())
|
34 |
-
|
35 |
-
# Normal chat response
|
36 |
messages = [{"role": "system", "content": system_message}]
|
37 |
|
38 |
for val in history:
|
@@ -53,6 +41,17 @@ def respond(
|
|
53 |
):
|
54 |
token = message.choices[0].delta.content
|
55 |
response += token
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
yield response
|
57 |
|
58 |
demo = gr.ChatInterface(
|
@@ -70,7 +69,7 @@ demo = gr.ChatInterface(
|
|
70 |
),
|
71 |
],
|
72 |
title="TimeVoyager: Your Time Travel Guide",
|
73 |
-
description="
|
74 |
)
|
75 |
|
76 |
if __name__ == "__main__":
|
|
|
1 |
import gradio as gr
|
2 |
from huggingface_hub import InferenceClient
|
3 |
+
import re
|
4 |
from config.prompts import GUIDE_PERSONA, TIME_PERIODS
|
5 |
from models.state import TimelineState
|
6 |
|
|
|
21 |
temperature,
|
22 |
top_p,
|
23 |
):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
messages = [{"role": "system", "content": system_message}]
|
25 |
|
26 |
for val in history:
|
|
|
41 |
):
|
42 |
token = message.choices[0].delta.content
|
43 |
response += token
|
44 |
+
|
45 |
+
# Check for timeline shift marker
|
46 |
+
if '[TIMELINE_SHIFT:' in response:
|
47 |
+
match = re.search(r'\[TIMELINE_SHIFT:(\w+)\]', response)
|
48 |
+
if match:
|
49 |
+
period = match.group(1)
|
50 |
+
if period in TIME_PERIODS:
|
51 |
+
timeline_state.visit_period(period)
|
52 |
+
# Remove the marker from response
|
53 |
+
response = response.replace(match.group(0), '')
|
54 |
+
|
55 |
yield response
|
56 |
|
57 |
demo = gr.ChatInterface(
|
|
|
69 |
),
|
70 |
],
|
71 |
title="TimeVoyager: Your Time Travel Guide",
|
72 |
+
description="Chat with your time travel guide to explore different historical periods! Express your interest in any era, and they'll help you visit it."
|
73 |
)
|
74 |
|
75 |
if __name__ == "__main__":
|
config/prompts.py
CHANGED
@@ -1,7 +1,26 @@
|
|
1 |
-
GUIDE_PERSONA = """You are TimeVoyager, a friendly and knowledgeable time travel guide.
|
2 |
-
|
3 |
-
|
4 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
6 |
TIME_PERIODS = {
|
7 |
"ancient_egypt": {
|
|
|
1 |
+
GUIDE_PERSONA = """You are TimeVoyager, a friendly and knowledgeable time travel guide who can help travelers explore different time periods.
|
2 |
+
|
3 |
+
Current time period: {time_period}
|
4 |
+
|
5 |
+
Key responsibilities:
|
6 |
+
1. Help users explore and learn about different time periods
|
7 |
+
2. Detect when users express interest in visiting other time periods
|
8 |
+
3. When users want to visit a different era, respond in character and include [TIMELINE_SHIFT:<period>] at the start of your response
|
9 |
+
4. Make time travel feel magical and educational
|
10 |
+
|
11 |
+
Available time periods:
|
12 |
+
- Ancient Egypt (3000 BCE): The age of pyramids and pharaohs
|
13 |
+
- Renaissance Italy (1500 CE): The rebirth of art and learning
|
14 |
+
- Modern Day (2024 CE): The present time
|
15 |
+
|
16 |
+
Example time travel requests:
|
17 |
+
User: "I'd love to see the pyramids being built"
|
18 |
+
Response: "[TIMELINE_SHIFT:ancient_egypt] *A golden light surrounds us as we materialize in Ancient Egypt* Welcome to the age of pyramids! Before us stands..."
|
19 |
+
|
20 |
+
User: "Tell me about Da Vinci"
|
21 |
+
Response: "[TIMELINE_SHIFT:renaissance] *The air shimmers as we arrive in Renaissance Italy* Ah, you're interested in the great Leonardo..."
|
22 |
+
|
23 |
+
Stay in character and make each time period feel unique and engaging."""
|
24 |
|
25 |
TIME_PERIODS = {
|
26 |
"ancient_egypt": {
|