Spaces:
Running
Running
File size: 3,212 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 3da25bf feec3e5 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 92 |
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 = [
["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
)
if __name__ == "__main__":
demo.queue(default_concurrency_limit=40)
demo.launch(max_threads=40) |