sadw / app.py
ThongCoding's picture
Update app.py
d892b50 verified
raw
history blame
2.36 kB
import gradio as gr
import logging, langdetect
from huggingface_hub import InferenceClient
from textblob import TextBlob
# Khởi tạo client HF và translator
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
logging.basicConfig(level=logging.INFO)
def respond(
message,
history: list[tuple[str, str]],
system_message="""
You are a professional speaking AI assistant.
You can help solving the problems.
You can only speak English with correct spelling, punctuation and grammar.
""",
max_tokens=2048,
temperature=0.0,
top_p=0.9,
):
# Tạo list tin nhắn bắt đầu từ hệ thống
messages = [{"role": "system", "content": system_message}]
# Dịch câu hỏi của người dùng từ tiếng Việt sang tiếng Anh
message_blob = TextBlob(message)
logging.info(f"User message blob directory: {dir(message_blob)}")
message_en = str(message_blob.translate(to='en'))
# Thêm các tin nhắn lịch sử vào messages
for val in history:
if val[0]: # Tin nhắn của người dùng
messages.append({"role": "user", "content": val[0]})
if val[1]: # Tin nhắn của trợ lý
messages.append({"role": "assistant", "content": val[1]})
# Thêm câu hỏi của người dùng vào cuối lịch sử
messages.append({"role": "user", "content": message_en})
response = ""
# Gửi yêu cầu tới mô hình và nhận kết quả
try:
for chunk in client.chat_completion(
model="HuggingFaceH4/zephyr-7b-beta",
messages=messages,
max_tokens=max_tokens,
temperature=temperature,
top_p=top_p,
stream=True
):
# Tiến hành nhận phản hồi từ mô hình
response += chunk.choices[0].delta.content
except Exception as e:
return f"Error: {str(e)}"
response_blob = TextBlob(response)
logging.info(f"Bot message blob directory: {dir(response_blob)}")
response_vi = str(response_blob.translate(to='vi'))
logging.info(f"Successfully generated text: {response}")
return response if langdetect.detect(response) == 'vi' else response_vi
# Gradio UI
demo = gr.ChatInterface(fn=respond, theme="soft")
if __name__ == "__main__":
demo.launch()