Spaces:
Running
Running
import os | |
import json | |
from datetime import datetime | |
import gradio as gr | |
from openai import OpenAI | |
def print_now(msg): | |
now = datetime.now() | |
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S.%f") | |
print(f"{msg}:{formatted_time}") | |
return formatted_time | |
def respond( | |
message, | |
history: list[tuple[str, str]], | |
system_message, | |
max_tokens, | |
temperature, | |
top_p, | |
): | |
try: | |
weekdays = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"] | |
now = datetime.now() | |
weekday_num = now.weekday() | |
weekday_chinese = weekdays[weekday_num] | |
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S") + " " + weekday_chinese | |
default_system = f"你是一个由腾讯开发的有用的人工智能助手,你的名字是“腾讯元宝”,简称“元宝”,你的英文名是“Tencent Yuanbao”,你乐于帮助大家解答问题。\n现在的时间是{formatted_time}" | |
messages = [{"Role": "system", "Content": default_system}] | |
client = OpenAI( | |
api_key=os.getenv('HUNYUAN_API_KEY'), | |
base_url="https://api.hunyuan.cloud.tencent.com/v1", | |
) | |
for val in history: | |
if val[0] and val[1]: | |
messages.append({"Role": "user", "Content": val[0]}) | |
messages.append({"Role": "assistant", "Content": val[1]}) | |
messages.append({"Role": "user", "Content": message}) | |
completion = client.chat.completions.create( | |
model="hunyuan-turbo", | |
messages=messages, | |
stream=True, | |
extra_body={ | |
"stream_moderation": True, | |
"enable_enhancement": False, | |
} | |
) | |
response = "" | |
for event in completion: | |
token = event.choices[0].delta.content | |
# if message.find('写一篇关于青春的五言绝句') != -1: | |
# print(11111111111) | |
# print(event) | |
response += token | |
yield response | |
except Exception as e: | |
raise gr.Error(f"发生错误: {str(e)}") | |
example_prompts = [ | |
["Write a short papragraph where the 1st letter of each sentence spells out the word 'CODE'. The message should appear natural and not obviously hide this pattern."], | |
["Compose an engaging travel blog post about a recent trip to Hawaii, highlighting cultural experiences and must-see attractions."], | |
["Why has online learning been able to spread rapidly in recent years?"], | |
["How many 'e' in Deeplearning?"], | |
["Write a 3-line poem"] | |
] | |
latex_delimiters = [ | |
{"left": "$$", "right": "$$", "display": True}, | |
{"left": "\\[", "right": "\\]", "display": True},{"left": "$", "right": "$", "display": False}, | |
{"left": "\\(", "right": "\\)", "display": False} | |
] | |
chatbot = gr.Chatbot(latex_delimiters=latex_delimiters, scale=9) | |
demo = gr.ChatInterface(respond, | |
title="Hunyuan TurboS", | |
examples=example_prompts, | |
chatbot=chatbot | |
) | |
if __name__ == "__main__": | |
demo.queue(default_concurrency_limit=100) | |
demo.launch(max_threads=100) |