Spaces:
Running
Running
File size: 3,022 Bytes
cd6f25f d2c787a cd6f25f d2c787a cd6f25f d2c787a cd6f25f d2c787a cd6f25f 0d012be cd6f25f 5ecc655 7993b36 5ecc655 d2c787a 5ecc655 da413e9 d14052c 5ecc655 d14052c 5ecc655 d14052c cd6f25f d2c787a cd6f25f d2c787a cd6f25f d2c787a cd6f25f f9eccf3 cd6f25f d2c787a cd6f25f |
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 |
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:
default_system ="You are Tencent's helpful AI assistant Hunyuan."
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-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'):
ifis_reasoning_start:
response += '> **开始思考**\n\n'
is_reasoning_start = False
token = event.choices[0].delta.reasoning_content# Wrap reasoning_content in a span with a lighter color
response += f'<span style="color: #999999;">{token}</span>'
else:if is_reasoning_end:
response += '> **结束思考**\n\n'
is_reasoning_end = False
token = event.choices[0].delta.content# Wrap content in a span with a normal color
response += f'<span style="color: #000000;">{token}</span>'
yield response
except Exception as e:
raise gr.Error(f"发生错误: {str(e)}")
example_prompts = [
["How to cook Kung Pao chicken the tastiest?"],
["Help me create an email expressing my greetings to an old friend."],
["写一篇关于青春的五言绝句"],
["一枚反面朝上的硬币,被翻转了15下后,它的上面是正面,这个说法正确吗?"]
]
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
)
if __name__ == "__main__":
demo.queue(default_concurrency_limit=40)
demo.launch(max_threads=40) |