File size: 3,640 Bytes
60b9c68
 
 
ea350b5
f29c1b3
 
 
 
60b9c68
 
 
 
 
ea350b5
 
 
 
 
 
 
 
 
60b9c68
28b1af5
 
 
 
 
 
60b9c68
 
f29c1b3
282d19a
 
f29c1b3
60b9c68
 
 
 
 
 
f29c1b3
 
 
 
 
 
 
 
 
60b9c68
ea350b5
f29c1b3
20cbf02
 
 
 
60b9c68
 
 
 
 
 
1b51ba2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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.",
        "你是一个电影推荐助手",
        256,   # 生成约 200 字
        0.8,   # 中等创意
        0.85
    ],  
    [
        "Compose an engaging travel blog post about a recent trip to Hawaii, highlighting cultural experiences and must-see attractions.",
        "你是一个AI教授",
        128,   # 简短定义
        0.3,   # 高确定性
        0.9
    ],
    [
        "Why has online learning been able to spread rapidly in recent years?",
        "你是一个数学老师",
        64,    
        0.1,   
        0.95
    ],
    [
        "How many 'e' in Deeplearning?",
        "你是一个科幻作家",
        512,   
        1.2,   
        0.75
    ],
    [
        "Write a 3-line poem",
        "你是一个历史学者",
        384,   
        0.6,  
        0.88
    ]
]
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)