Spaces:
Running
Running
| 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-turbo", | |
| messages=messages, | |
| stream=True, | |
| extra_body={ | |
| "stream_moderation": True, | |
| "enable_enhancement": False, | |
| } | |
| ) | |
| response = "" | |
| for event in completion: | |
| print(222222222222) | |
| print(event) | |
| print(type(event)) | |
| print(222222222222) | |
| data = json.loads(event['data']) | |
| if message.find('写一篇关于青春的五言绝句') != -1: | |
| print(11111111111) | |
| print(data) | |
| token = data['Choices'][0]['Delta']['Content'] | |
| response += token | |
| 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."], | |
| ["写一篇关于青春的五言绝句"], | |
| ["一枚反面朝上的硬币,被翻转了15下后,它的上面是正面,这个说法正确吗?"] | |
| ] | |
| 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=40) | |
| demo.launch(max_threads=40) |