Spaces:
Sleeping
Sleeping
File size: 2,092 Bytes
8b05818 eb4ecfd 8b05818 abc08ee 8b05818 dde908c 8b05818 abc08ee 8b05818 abc08ee 4a11709 abc08ee dde908c abc08ee 8b05818 abc08ee 8b05818 abc08ee 8b05818 abc08ee 369006f 8b05818 4a11709 abc08ee 75b947c abc08ee 75b947c abc08ee 75b947c abc08ee 8b05818 abc08ee 8b05818 abc08ee 8b05818 abc08ee |
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 |
import gradio as gr
from huggingface_hub import InferenceClient
from deep_translator import GoogleTranslator
# Khởi tạo client HF và translator
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
translator_vi2en = GoogleTranslator(source='vi', target='en')
translator_en2vi = GoogleTranslator(source='en', target='vi')
def respond(
message,
history: list[tuple[str, str]],
system_message,
max_tokens=128,
temperature=0.5,
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_en = translator_vi2en.translate(message)
# 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
token = chunk["choices"][0]["delta"]["content"]
response += token
except Exception as e:
return f"Error: {str(e)}"
# Dịch câu trả lời về tiếng Việt
try:
response_vi = translator_en2vi.translate(response)
except Exception:
response_vi = "(Không thể dịch câu trả lời về tiếng Việt)"
return response_vi
# Gradio UI
demo = gr.ChatInterface(fn=respond)
if __name__ == "__main__":
demo.launch()
|