fantaxy commited on
Commit
03e983f
β€’
1 Parent(s): 3e49f35

Upload app-fanta-backup.py

Browse files
Files changed (1) hide show
  1. app-fanta-backup.py +123 -0
app-fanta-backup.py ADDED
@@ -0,0 +1,123 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+
3
+ import gradio as gr
4
+ from huggingface_hub import InferenceClient
5
+ import os
6
+ import requests
7
+
8
+ # μΆ”λ‘  API ν΄λΌμ΄μ–ΈνŠΈ μ„€μ •
9
+ hf_client = InferenceClient("CohereForAI/c4ai-command-r-plus-08-2024", token= os.getenv("HF_TOKEN"))
10
+
11
+ def respond(
12
+ message,
13
+ history: list[tuple[str, str]],
14
+ system_message="",
15
+ max_tokens=7860,
16
+ temperature=0.8,
17
+ top_p=0.9,
18
+ ):
19
+
20
+ system_prefix = """
21
+ You are 'FantasyAI✨', an advanced AI storyteller specialized in creating immersive fantasy narratives. Your purpose is to craft rich, detailed fantasy stories that incorporate classical and innovative elements of the genre. Your responses should start with 'FantasyAI✨:' and focus on creating engaging, imaginative content that brings fantasy worlds to life.
22
+ Guidelines for fantasy novel generation:
23
+ 1) Start by establishing the setting, magical system, and key characters
24
+ 2) Write over 3000 characters of fantasy fiction
25
+ 3) Include vivid descriptions of:
26
+ - Magical phenomena and systems
27
+ - Fantastic creatures and beings
28
+ - Mythical locations and landscapes
29
+ - Character development and interactions
30
+ - Epic battles and conflicts
31
+ - Ancient prophecies and legends
32
+ Include the following elements as appropriate:
33
+ - Magic spells and rituals
34
+ - Mythical creatures (dragons, unicorns, phoenixes)
35
+ - Magical artifacts and relics
36
+ - Ancient civilizations and their ruins
37
+ - Heroic quests and adventures
38
+ - Political intrigue in fantasy realms
39
+ - Magical combat and warfare
40
+ - Prophecies and destinies
41
+ - Fantasy races (elves, dwarves, etc.)
42
+ - Mystical powers and abilities
43
+ - Ancient languages and runes
44
+ - Supernatural phenomena
45
+ - Epic battles between good and evil
46
+ - Character growth and development
47
+ - World-building details
48
+ - Cultural elements of fantasy societies
49
+ - Magical technology and innovations
50
+ - Religious and spiritual systems
51
+ - Environmental magic and nature
52
+ - Legendary weapons and armor
53
+ Incorporate various fantasy subgenres:
54
+ - High Fantasy
55
+ - Dark Fantasy
56
+ - Sword and Sorcery
57
+ - Epic Fantasy
58
+ - Urban Fantasy
59
+ - Historical Fantasy
60
+ - Mythic Fantasy
61
+ μ΅œλŒ€ν•œ 길게 7860 ν† ν°κΉŒμ§€ μž‘μ„±ν•˜λΌ.
62
+ λ‹€μŒ μ œμ‹œν•˜λŠ” "[인용문]"을 상황에 맞게 μΆ”κ°€ν•˜μ—¬ μ†Œμ„€ μž‘μ„±μ‹œ λ”μš± ν’λΆ€ν•˜κ³  λͺ°μž…감 μžˆλŠ” ν‘œν˜„μ„ μš”μ²­(좜λ ₯)받은 μ–Έμ–΄λ‘œ ν‘œν˜„ν•˜λΌ.
63
+ [인용문]
64
+ "κ³ λŒ€μ˜ λ§ˆλ²•μ΄ κΉ¨μ–΄λ‚˜λ©° λŒ€μ§€κ°€ μšΈλ¦¬λŠ” μ†Œλ¦¬κ°€ λ“€λ Έλ‹€..."
65
+ "용의 숨결이 ν•˜λŠ˜μ„ κ°€λ₯΄λ©°, ꡬ름을 λΆˆνƒœμ› λ‹€..."
66
+ "μ‹ λΉ„ν•œ λ£¬λ¬Έμžκ°€ λΉ›λ‚˜λ©° 곡쀑에 λ– μ˜¬λžλ‹€..."
67
+ "μ—˜ν”„λ“€μ˜ λ…Έλž˜κ°€ μˆ²μ„ 울리자 λ‚˜λ¬΄λ“€μ΄ μΆ€μΆ”κΈ° μ‹œμž‘ν–ˆλ‹€..."
68
+ "μ˜ˆμ–Έμ˜ 말씀이 λ©”μ•„λ¦¬μΉ˜λ©° 운λͺ…μ˜ 싀이 움직이기 μ‹œμž‘ν–ˆλ‹€..."
69
+ "λ§ˆλ²•μ‚¬μ˜ μ§€νŒ‘μ΄μ—μ„œ λ²ˆμ©μ΄λŠ” 빛이 어둠을 κ°€λ₯΄λ©°..."
70
+ "κ³ λŒ€ λ“œμ›Œν”„μ˜ λŒ€μž₯κ°„μ—μ„œ μ „μ„€μ˜ 검이 λ§Œλ“€μ–΄μ§€κ³  μžˆμ—ˆλ‹€..."
71
+ "μˆ˜μ •κ΅¬μŠ¬ 속에 λΉ„μΉœ 미래의 ν™˜μ˜μ΄ μ„œμ„œνžˆ λͺ¨μŠ΅μ„ λ“œλŸ¬λƒˆλ‹€..."
72
+ "μ‹ μ„±ν•œ 결계가 깨어지며 λ΄‰μΈλœ 악이 깨어났닀..."
73
+ "μ˜μ›…μ˜ 발걸음이 운λͺ…μ˜ 길을 따라 울렀 νΌμ‘Œλ‹€..."
74
+ """
75
+
76
+ messages = [{"role": "system", "content": f"{system_prefix} {system_message}"}]
77
+ for val in history:
78
+ if val[0]:
79
+ messages.append({"role": "user", "content": val[0]})
80
+ if val[1]:
81
+ messages.append({"role": "assistant", "content": val[1]})
82
+ messages.append({"role": "user", "content": message})
83
+
84
+ response = ""
85
+ for message in hf_client.chat_completion(
86
+ messages,
87
+ max_tokens=max_tokens,
88
+ stream=True,
89
+ temperature=temperature,
90
+ top_p=top_p,
91
+ ):
92
+ token = message.choices[0].delta.content
93
+ if token is not None:
94
+ response += token.strip("")
95
+ yield response
96
+
97
+ demo = gr.ChatInterface(
98
+ respond,
99
+ additional_inputs=[
100
+ gr.Textbox(label="System Message", value="Write(output) in ν•œκ΅­μ–΄."),
101
+ gr.Slider(minimum=1, maximum=8000, value=7000, label="Max Tokens"),
102
+ gr.Slider(minimum=0, maximum=1, value=0.7, label="Temperature"),
103
+ gr.Slider(minimum=0, maximum=1, value=0.9, label="Top P"),
104
+ ],
105
+ examples=[
106
+ ["νŒνƒ€μ§€ μ†Œμ„€μ˜ ν₯미둜운 μ†Œμž¬ 10가지λ₯Ό μ œμ‹œν•˜λΌ"],
107
+ ["계속 μ΄μ–΄μ„œ μž‘μ„±ν•˜λΌ"],
108
+ ["Translate into English"],
109
+ ["λ§ˆλ²• μ‹œμŠ€ν…œμ— λŒ€ν•΄ 더 μžμ„Ένžˆ μ„€λͺ…ν•˜λΌ"],
110
+ ["μ „νˆ¬ μž₯면을 더 극적으둜 λ¬˜μ‚¬ν•˜λΌ"],
111
+ ["μƒˆλ‘œμš΄ νŒνƒ€μ§€ 쒅쑱을 μΆ”κ°€ν•˜λΌ"],
112
+ ["κ³ λŒ€ μ˜ˆμ–Έμ— λŒ€ν•΄ 더 μžμ„Ένžˆ μ„€λͺ…ν•˜λΌ"],
113
+ ["주인곡의 λ‚΄λ©΄ λ¬˜μ‚¬λ₯Ό μΆ”κ°€ν•˜λΌ"],
114
+ ],
115
+ title="Fantasy Novel AI Generation",
116
+ description="Fantasy Novel Generator: Create immersive fantasy worlds and epic adventures. Web(https://fantasy-novel-gen.hf.space)",
117
+ theme="Nymbo/Nymbo_Theme",
118
+ cache_examples=False,
119
+ css="""footer {visibility: hidden}"""
120
+ )
121
+
122
+ if __name__ == "__main__":
123
+ demo.launch(auth=("gini","pick"))