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]}) pure_response = val[1].split("**End thinking**")[-1].strip() messages.append({"Role": "assistant", "Content": pure_response}) messages.append({"Role": "user", "Content": message}) completion = client.chat.completions.create( model="hunyuan-t1-latest", messages=messages, stream=True, extra_body={ "stream_moderation": True, "enable_enhancement": False, } ) response = "" is_reasoning_start = True is_reasoning_end = True for event in completion: if hasattr(event.choices[0].delta, 'reasoning_content'): if is_reasoning_start: response += '> **Start thinking**\n\n' is_reasoning_start = False token = event.choices[0].delta.reasoning_content# Wrap reasoning_content in a span with a lighter color response += token else: if is_reasoning_end: response += '> **End thinking**\n\n' is_reasoning_end = False token = event.choices[0].delta.content# Wrap content in a span with a normal color 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-T1", examples=example_prompts, chatbot=chatbot, description="当前体验demo为非联网Hunyuan-T1 最新推理模型,完整版联网/非联网能力即将在元宝上线,敬请期待!
The current demo is the latest reasoning model of Hunyuan-T1. The full version with browsing will be launched on Tencent Yuanbao soon. Stay tuned." ) if __name__ == "__main__": demo.queue(default_concurrency_limit=100) demo.launch(max_threads=100)