File size: 3,097 Bytes
60b9c68
 
 
ea350b5
f29c1b3
 
 
 
60b9c68
 
 
 
 
ea350b5
 
 
 
 
 
 
 
 
60b9c68
28b1af5
 
 
 
 
 
60b9c68
 
f29c1b3
282d19a
 
f29c1b3
60b9c68
 
 
 
 
 
f29c1b3
 
 
 
 
 
 
 
 
60b9c68
ea350b5
f29c1b3
20cbf02
 
 
 
60b9c68
 
 
 
 
 
8e5d4b9
 
 
 
 
60b9c68
 
 
 
 
 
 
 
 
 
 
73bf890
60b9c68
 
 
ea350b5
 
28b1af5
 
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
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]})
                messages.append({"Role": "assistant", "Content": val[1]})
        
        messages.append({"Role": "user", "Content": message})
        completion = client.chat.completions.create(
            model="hunyuan-turbo",
            messages=messages,
            stream=True,
            extra_body={
            "stream_moderation": True,
            "enable_enhancement": False,
            }
        )
        response = ""

        for event in completion:
            token = event.choices[0].delta.content
            # if message.find('写一篇关于青春的五言绝句') != -1:
            #     print(11111111111)
            #     print(event)
            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."],
    ["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 TurboS",
    examples=example_prompts,
    chatbot=chatbot
)

if __name__ == "__main__":
    demo.queue(default_concurrency_limit=100)
    demo.launch(max_threads=100)