Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import torch | |
| from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline | |
| # Load tokenizer và model | |
| print("Đang tải model...") | |
| model_name = "cochi1706/codingassistant" | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| model = AutoModelForCausalLM.from_pretrained(model_name) | |
| # Xác định device cho pipeline (0 cho cuda, -1 cho cpu) | |
| device = 0 if torch.cuda.is_available() else -1 | |
| # Set padding token nếu chưa có | |
| if tokenizer.pad_token is None: | |
| tokenizer.pad_token = tokenizer.eos_token | |
| # Tạo pipeline để sinh text | |
| text_generator = pipeline( | |
| "text-generation", | |
| model=model, | |
| tokenizer=tokenizer, | |
| device=device, | |
| max_length=520, | |
| do_sample=True, | |
| temperature=0.7 | |
| ) | |
| model.eval() | |
| print(f"Model đã sẵn sàng! Device: {device}") | |
| def respond( | |
| message, | |
| history=None | |
| ): | |
| """ | |
| Tạo phản hồi từ model coding assistant sử dụng pipeline | |
| """ | |
| # Xử lý message - có thể là dict hoặc string | |
| if isinstance(message, dict): | |
| user_message = message.get("content", "") | |
| else: | |
| user_message = str(message) if message else "" | |
| # Nếu không có message, trả về thông báo lỗi | |
| if not user_message: | |
| return "Xin lỗi, tôi không nhận được câu hỏi của bạn." | |
| # Sử dụng pipeline để generate text | |
| generated = text_generator(user_message, num_return_sequences=1) | |
| # Lấy câu trả lời từ kết quả | |
| answer = generated[0]['generated_text'] | |
| # Đảm bảo trả về string không rỗng | |
| if not answer or len(answer.strip()) == 0: | |
| answer = "Xin lỗi, tôi không thể tạo phản hồi." | |
| return answer | |
| """ | |
| Chatbot hỗ trợ lập trình sử dụng Qwen3 fine-tuned model | |
| """ | |
| chatbot = gr.ChatInterface( | |
| respond, | |
| title="🤖 Coding Assistant", | |
| description="Chatbot hỗ trợ lập trình", | |
| type="messages" | |
| ) | |
| demo = chatbot | |
| if __name__ == "__main__": | |
| demo.launch() |