Spaces:
Sleeping
Sleeping
| from openai import OpenAI | |
| import gradio as gr | |
| import re | |
| import time | |
| client = OpenAI() | |
| assistant = client.beta.assistants.retrieve("asst_G71jWtWDGyurCE6g5C7ABzUx") | |
| thread = client.beta.threads.create() | |
| flightFileLink = 'https://winningchatbot.s3.ap-southeast-1.amazonaws.com/SG-AD-S003' | |
| tripFileLink= 'https://winningchatbot.s3.ap-southeast-1.amazonaws.com/SG-HR-W013' | |
| def chat(message, history): | |
| print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), message) | |
| response = client.beta.threads.messages.create( | |
| thread_id=thread.id, | |
| role="user", | |
| content=message | |
| ) | |
| run = client.beta.threads.runs.create_and_poll( | |
| thread_id=thread.id, | |
| assistant_id=assistant.id, | |
| ) | |
| if run.status == 'completed': | |
| messages = client.beta.threads.messages.list( | |
| thread_id=thread.id | |
| ) | |
| print(messages) | |
| reply = messages.data[0].content[0].text.value | |
| print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), reply) | |
| reply = re.sub(r'\【\d+\:\d+\†source\】', '', reply) | |
| try: | |
| fileId = messages.data[0].content[0].text.annotations[0].file_citation.file_id | |
| if 'file-akk9CVNRjnmc3vNk3sV203lN' in fileId: | |
| reply = reply+ f"\n\n【信息源: SG-AD-S003 韦立新加坡-出差订票和住宿管理方案-修订20240129.pdf】\n({flightFileLink})" | |
| if 'file-sHwZmYpPK67lsMX4uflSZXD1' in fileId: | |
| reply = reply+ f"\n\n【信息源: SG-AD-S004 SG-HR-W013 出差制度】\n({tripFileLink})" | |
| except: | |
| pass | |
| return reply | |
| else: | |
| print(run.status) | |
| return 'running' | |
| gr.ChatInterface( | |
| fn=chat, | |
| chatbot= gr.Chatbot(), | |
| textbox= gr.Textbox(placeholder="开始聊天", container=False, scale=7), | |
| multimodal = False, | |
| title="韦立 HR 聊天机器人 (GPT)", | |
| description="目前所搜集的数据可回答关于韦立的出差订票,住宿管理方案,和出差制度方面问题。", | |
| # theme="soft", | |
| examples=["副董事长应该订哪一类机票?", "新加坡的负责订票人员是谁", "在新加坡能订哪些酒店?"], | |
| cache_examples = False, # will cause hallucination if set to True | |
| autofocus = True, | |
| retry_btn = None, | |
| undo_btn = None, | |
| clear_btn = None, | |
| ).launch() | |