Spaces:
Running
Running
File size: 4,551 Bytes
cd6f25f d2c787a cd6f25f d2c787a cd6f25f d2c787a cd6f25f 9a77e12 d2c787a cd6f25f a05b58d 6e17b00 cd6f25f 0d012be cd6f25f 5ecc655 7993b36 5ecc655 d2c787a 5ecc655 31d9b3e 0d09d8e bc2d7bb 0cb2b69 5ecc655 ee1a393 fb60a3b bc2d7bb 0cb2b69 5ecc655 8e733ae 4603974 cd6f25f d2c787a cd6f25f 1405e41 3c5a930 6841b5d 3c5a930 1405e41 3c5a930 6841b5d 3c5a930 1405e41 3c5a930 6841b5d 3c5a930 1405e41 3c5a930 6841b5d 3c5a930 1405e41 3c5a930 6841b5d 3c5a930 1405e41 cd6f25f 31d9b3e cd6f25f d2c787a cd6f25f d2c787a fb60a3b cd6f25f a5a2827 31d9b3e e58ee8f 31d9b3e d2c787a 35e9e5a |
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 |
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 message == "深圳哪里好玩?":
print(111111)
print(event.choices[0].delta.reasoning_content)
print(event.choices[0].delta.content)
if hasattr(event.choices[0].delta, 'reasoning_content') and 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
response += token
else:
if is_reasoning_end:
response += '> **End thinking**\n\n'
is_reasoning_end = False
token = event.choices[0].delta.content
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.",
"System",
256,
0.8,
0.85
],
[
"Compose an engaging travel blog post about a recent trip to Hawaii, highlighting cultural experiences and must-see attractions.",
"System",
128,
0.3,
0.9
],
[
"Why has online learning been able to spread rapidly in recent years?",
"System",
64,
0.1,
0.95
],
[
"How many 'e' in Deeplearning?",
"System",
512,
1.2,
0.75
],
[
"Write a 3-line poem",
"System",
384,
0.6,
0.88
]
]
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 最新推理模型,完整版联网/非联网能力即将在元宝上线,敬请期待!</br>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) |