File size: 6,018 Bytes
34ed765 d9095de 34ed765 d9095de 34ed765 48b980d d9095de 61efb41 34ed765 1cfdd43 48b980d 1cfdd43 d9095de 32d0b3a d9095de 34ed765 48b980d 34ed765 d9095de 34ed765 3e1ce90 d9095de 34ed765 d9095de 34ed765 d9095de 34ed765 48b980d 61efb41 3e1ce90 d9095de 0e6ff96 21c30cc |
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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
import gradio as gr
import cohere
import os
import re
import uuid
import secrets
cohere_api_key = os.getenv("COHERE_API_KEY")
co = cohere.Client(cohere_api_key, client_name="huggingface-aya-23")
def trigger_example(example):
chat, updated_history = generate_response(example)
return chat, updated_history
def generate_response(user_message, cid, token, history=None):
if not token:
raise gr.Error("Error loading.")
if history is None:
history = []
if cid == "" or None:
cid = str(uuid.uuid4())
print(f"cid: {cid} prompt:{user_message}")
history.append(user_message)
stream = co.chat_stream(message=user_message, preamble="You are the greek philosopher Diogenes and you aswer only in italian language", conversation_id=cid, model='c4ai-aya-23', connectors=[], temperature=0.3)
#stream = co.generate(prompt=user_message, model='c4ai-aya-23')
output = ""
for idx, response in enumerate(stream):
if response.event_type == "text-generation":
output += response.text
if idx == 0:
history.append(" " + output)
else:
history[-1] = output
chat = [
(history[i].strip(), history[i + 1].strip())
for i in range(0, len(history) - 1, 2)
]
yield chat, history, cid
return chat, history, cid
def clear_chat():
return [], [], str(uuid.uuid4())
examples = [
"Qual è il vero significato della virtù e come si può raggiungerla nella società odierna, ossessionata dai beni materiali?",
"Come possiamo liberarci dalle convenzioni sociali e vivere in modo autentico, secondo natura?",
"Qual è il ruolo del filosofo nella società? Deve essere un predicatore o un esempio vivente di saggezza?",
"Come possiamo criticare le norme sociali e le ingiustizie senza essere emarginati o perseguitati?",
"Quale rapporto dovremmo avere con le ricchezze e i beni materiali? Come possiamo evitare che ci dominino?",
"Qual è il posto delle emozioni e dei desideri nella vita del cinico? Come possiamo gestirli in modo equilibrato?",
"Come possiamo affrontare le avversità e le sfide della vita con serenità e saggezza cinica?",
"Qual è il tuo pensiero sulla morte e sul suo significato per il cinico? Come possiamo prepararci ad essa?",
"Quali sono i consigli che daresti a chi desidera intraprendere il cammino del cinismo? Come può iniziare a mettere in pratica i suoi principi?س",
"In che modo il cinismo può aiutarci a vivere una vita più libera, felice e appagante?",
"Qual è il tuo pensiero sulla morte e sul suo significato per il cinico? Come possiamo prepararci ad essa?",
]
custom_css = """
#logo-img {
border: none !important;
}
#chat-message {
font-size: 14px;
min-height: 300px;
}
"""
with gr.Blocks(analytics_enabled=False, css=custom_css) as demo:
cid = gr.State("")
token = gr.State(value=None)
# with gr.Row():
# with gr.Column(scale=1):
# gr.Image("aya-logo.png", elem_id="logo-img", show_label=False, show_share_button=False, show_download_button=False)
# with gr.Column(scale=3):
# gr.Markdown("""C4AI Aya 23 is a research open weights release of an 8 and 35 billion parameter with highly advanced instruction fine-tuned model, covering 23 languages: Arabic, Chinese (simplified & traditional), Czech, Dutch, English, French, German, Greek, Hebrew, Hindi, Indonesian, Italian, Japanese, Korean, Persian, Polish, Portuguese, Romanian, Russian, Spanish, Turkish, Ukrainian, and Vietnamese.
# <br/>
# **Note**: Aya 23 is a single-turn instruction-following model and it is not optimized for chat mode use.
# <br/>
# **Model**: [aya-23-35B](https://huggingface.co/CohereForAI/aya-23-35B)
# <br/>
# **Developed by**: [Cohere for AI](https://cohere.com/research) and [Cohere](https://cohere.com/)
# <br/>
# **License**: [CC-BY-NC](https://cohere.com/c4ai-cc-by-nc-license), requires also adhering to [C4AI's Acceptable Use Policy](https://docs.cohere.com/docs/c4ai-acceptable-use-policy)
# """
# )
with gr.Column():
with gr.Row():
chatbot = gr.Chatbot(show_label=False, show_share_button=False, show_copy_button=True)
with gr.Row():
user_message = gr.Textbox(lines=1, placeholder="Ask anything ...", label="Input", show_label=False)
with gr.Row():
submit_button = gr.Button("Submit")
clear_button = gr.Button("Clear chat")
history = gr.State([])
user_message.submit(fn=generate_response, inputs=[user_message, cid, token, history], outputs=[chatbot, history, cid], concurrency_limit=32)
submit_button.click(fn=generate_response, inputs=[user_message, cid, token, history], outputs=[chatbot, history, cid], concurrency_limit=32)
clear_button.click(fn=clear_chat, inputs=None, outputs=[chatbot, history, cid], concurrency_limit=32)
user_message.submit(lambda x: gr.update(value=""), None, [user_message], queue=False)
submit_button.click(lambda x: gr.update(value=""), None, [user_message], queue=False)
clear_button.click(lambda x: gr.update(value=""), None, [user_message], queue=False)
with gr.Row():
gr.Examples(
examples=examples,
inputs=user_message,
cache_examples=False,
fn=trigger_example,
outputs=[chatbot],
examples_per_page=100
)
demo.load(lambda: secrets.token_hex(16), None, token)
if __name__ == "__main__":
# demo.launch(debug=True)
try:
demo.queue(api_open=False, max_size=40).launch(show_api=False)
except Exception as e:
print(f"Error: {e}") |