Hunyuan-Large / app.py
hunyuan-t's picture
Update app.py
99f8eb2 verified
raw
history blame
2.66 kB
import os
import gradio as gr
import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.hunyuan.v20230901 import hunyuan_client, models
from datetime import datetime
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:
print_now('req')
default_system ='You are a helpful assistant.'
messages = [{"Role": "system", "Content": default_system}]
secret_id = os.getenv('SECRET_ID')
secret_key = os.getenv('SECRET_KEY')
cred = credential.Credential(secret_id, secret_key)
httpProfile = HttpProfile()
httpProfile.endpoint = "hunyuan.tencentcloudapi.com"
clientProfile= ClientProfile()
clientProfile.httpProfile = httpProfile
client = hunyuan_client.HunyuanClient(cred, "", clientProfile)
req = models.ChatCompletionsRequest()
print_now('res')
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})
params = {
"Model": "hunyuan-large",
"Messages": messages,
"Stream": True,
"StreamModeration": True,
"EnableEnhancement": False,
}
req.from_json_string(json.dumps(params))
resp= client.ChatCompletions(req)
response = ""
isFirst = True
for event in resp:
data = json.loads(event['data'])
token = data['Choices'][0]['Delta']['Content']
response += token
if isFirst:
print(event)
print_now('first')
isFirst = False
yield response
except TencentCloudSDKException as err:
raise gr.Error(f"腾讯云SDK异常: {err}")
except Exception as e:
raise gr.Error(f"发生错误: {str(e)}")
print_now('end')
demo = gr.ChatInterface(respond,
title="Hunyuan-Large"
)
if __name__ == "__main__":
print_now('init')
demo.queue(default_concurrency_limit=40)
demo.launch(max_threads=40)