Spaces:
Running
Running
File size: 2,971 Bytes
cd6f25f d2c787a cd6f25f d2c787a cd6f25f d2c787a cd6f25f d2c787a cd6f25f 0d012be cd6f25f 5ecc655 7993b36 5ecc655 d2c787a 5ecc655 da413e9 bc2d7bb 5ecc655 d14052c bc2d7bb 5ecc655 d14052c cd6f25f d2c787a cd6f25f b9b9bc5 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 91 |
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'):
if is_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."],
["εδΈη―ε
³δΊιζ₯ηδΊθ¨η»ε₯"],
["ιι
ΈδΉι
―θ½δΈζ°΄ζ··εε"]
]
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) |