Spaces:
Running
Running
import requests | |
import gradio as gr | |
key = "a8108953dbmsh2baabfa3db731fdp14177bjsnfebbe465261d" | |
system_message = '''Bạn là một trợ lý tư vấn chăm sóc sức khỏe tên là Dr.Hera. | |
Hãy hỏi rõ về triệu chứng khi người dùng gặp một vấn đề nào đó, | |
hãy cung cấp thông tin hoặc lời khuyên khi người dùng nói về một căn bệnh nào đó. | |
Lưu ý người dùng của bạn là một người Việt Nam không có kiến thức về y tế, | |
do đó bạn phải cung cấp các lời khuyên chính xác, ngắn gọn, đầy đủ đối với các câu hỏi liên quan đến sức khỏe. | |
Trả lời rằng bạn không thể hỗ trợ các vấn đề không liên quan đến sức khỏe khi nhận các câu hỏi không liên quan đến sức khỏe. | |
Chỉ được trả lời bằng Tiếng Việt. | |
Hãy làm câu trả lời hoàn chỉnh về mặt nội dung và cấu trúc.''' | |
def chatbotfnc(message, history): | |
url = "https://chatgpt-42.p.rapidapi.com/conversationgpt4-2" | |
# Thêm tin nhắn của người dùng vào lịch sử hội thoại | |
conversation_history = [ ] | |
for human, assistant in history: | |
conversation_history.append({"role": "user", "content": human }) | |
conversation_history.append({"role": "assistant", "content":assistant}) | |
conversation_history.append({"role": "user", "content": message}) | |
payload = { | |
"messages": conversation_history, | |
"system_prompt": system_message, | |
"temperature": 0.5, # Tăng độ sáng tạo để phản hồi tự nhiên hơn | |
"top_k": 40, # Giảm top_k để tăng tính ổn định trong câu trả lời | |
"top_p": 0.85, # Giảm top_p để câu trả lời tập trung hơn | |
"max_tokens": 1000, # Giới hạn số từ để tránh phản hồi dài quá mức | |
"web_access": False | |
} | |
headers = { | |
"x-rapidapi-key": key, | |
"x-rapidapi-host": "chatgpt-42.p.rapidapi.com", | |
"Content-Type": "application/json" | |
} | |
try: | |
response = requests.post(url, json=payload, headers=headers) | |
# response.raise_for_status() # Kiểm tra lỗi HTTP | |
result = response.json() | |
# Kiểm tra xem phản hồi có chứa khóa 'result' hay không | |
if 'result' in result: | |
hera_response = result['result'] | |
return hera_response | |
else: | |
return result['error'] | |
except requests.exceptions.RequestException as e : | |
return f"Lỗi kết nối hoặc HTTP: {e} " | |
def create_Chatbot_tab(chatkey="Fix bug key"): | |
Chatbot_tab = gr.ChatInterface(fn=chatbotfnc, examples=["Tôi bị đau dạ dày mạn tính vừa rồi tôi ăn xoài chua,tôi nên làm gì đây?", "Tôi khó thở vì covid tôi nên làm gì đây", "Tôi bị đau dạ dày lâu năm"], title="Bs.Hera", description = "Trợ lý ảo - tư vấn sức khỏe", theme = "soft", submit_btn = "Gửi", | |
stop_btn = "Tạm dừng") | |
return Chatbot_tab | |