File size: 4,763 Bytes
815d041
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
 🎭 AI Friends Talk

Cuộc nói chuyện vui vẻ giữa 3 người bạn AI với tính cách khác nhau!

## 👥 Nhân vật

- **🎭 Alex** (Groq llama3-70b-8192): Dí dỏm, châm biếm, thích chơi chữ
- **🌟 Blake** (Gemini 2.0 Flash): Lạc quan, nhiệt tình, thích chia sẻ
- **🧠 Charlie** (Gemini 1.5 Flash): Triết lý, suy nghĩ sâu sắc, là người hòa giải

## 🚀 Cách sử dụng

### 1. Cài đặt dependencies
```bash

pip install -r requirements_ai_talk.txt

```

### 2. Cấu hình API keys
1. Copy file `.env.example` thành `.env`
2. Thêm API keys của bạn:
   - `GROQ_API_KEY`: Tạo tại https://console.groq.com/
   - `GOOGLE_API_KEY`: Tạo tại https://ai.google.dev/gemini-api

### 3. Chạy ứng dụng
```bash

python AI_Talk.py

```

### 4. Sử dụng giao diện
1. Chọn ngôn ngữ mong muốn (English/Tiếng Việt/Deutsch)
2. Chọn chủ đề từ danh sách hoặc tạo chủ đề riêng
3. Click "🚀 Start New Conversation" để bắt đầu
4. Nhập tin nhắn của bạn và click "📝 Add Your Message" để tham gia cuộc trò chuyện
5. Click "💬 Continue Conversation" để 3 bạn AI tiếp tục trò chuyện
6. Lặp lại bước 4-5 để cuộc trò chuyện tiếp diễn!

## 🎯 Tính năng

- **3 AI khác nhau**: Mỗi nhân vật có tính cách riêng biệt
- **Đa ngôn ngữ**: Hỗ trợ 3 ngôn ngữ với cờ quốc gia đẹp mắt (🇺🇸 English, 🇻🇳 Tiếng Việt, 🇩🇪 Deutsch)
- **Chủ đề đa dạng**: Dropdown chủ đề gợi ý + textbox tùy chỉnh chủ đề riêng
- **Giao diện premium**: Thiết kế gradient đẹp mắt, animation, không có khoảng trống
- **Hero section**: Phần giới thiệu có hình ảnh chuyển động, thông tin nhân vật
- **Tương tác người dùng**: Hộp chat để bạn người sử dụng tham gia cuộc trò chuyện
- **Status feedback**: Thông báo trạng thái real-time với màu sắc đẹp mắt
- **Responsive design**: Tối ưu cho mọi thiết bị
- **Tương thích Hugging Face**: Có thể deploy trực tiếp lên Spaces

## 🎭 Chủ đề mẫu

### Tiếng Việt:
- "Hot dog có phải là sandwich không?"
- "Nếu người ngoài hành tinh đến Trái Đất, điều gì sẽ khiến họ bối rối nhất?"
- "Ngũ cốc có phải là soup không?" 
- "Siêu năng lực nào sẽ vô dụng nhất trong đời sống hàng ngày?"
- "Nếu động vật biết nói chuyện, loài nào sẽ bất lịch sự nhất?"

### English:
- "Whether hot dogs are sandwiches or not"
- "If aliens visited Earth, what would confuse them most about humans?"
- "The eternal debate: Is cereal soup?"
- "Which superpower would be most useless in daily life?"
- "If animals could talk, which would be the rudest?"

### Deutsch:
- "Sind Hotdogs Sandwiches oder nicht?"
- "Wenn Außerirdische die Erde besuchen würden, was würde sie am meisten verwirren?"
- "Die ewige Debatte: Ist Müsli eine Suppe?"
- "Welche Superkraft wäre im Alltag am nutzlosesten?"
- "Wenn Tiere sprechen könnten, welche wären am unhöflichsten?"
  
Bổ sung thêm chủ đề để làm phong phú thêm nội dung trò chuyện

## 🔧 Cấu trúc code

- **AITalk class**: Quản lý cuộc trò chuyện và API calls
- **Character personalities**: Mỗi AI có system prompt riêng
- **Gradio interface**: Giao diện web tương tác
- **Error handling**: Xử lý lỗi API gracefully

## 🌐 Deploy lên Hugging Face Spaces

1. Tạo Space mới trên https://huggingface.co/spaces
2. Upload các file: `AI_Talk_Gradio.py`, `requirements_ai_talk.txt`
3. API keys file `.env`
4. Space sẽ tự động chạy!

## 📝 Ghi chú

- Dựa trên cấu trúc của `day1.ipynb`, `AI_Talk.py`.
- Sử dụng OpenAI-compatible interface cho Gemini
- Conversation context được giới hạn 10 tin nhắn gần nhất để tối ưu hiệu suất
- Mỗi response được giới hạn 150 tokens để giữ cuộc trò chuyện sống động

## 🐛 Troubleshooting

- **API Key errors**: Kiểm tra file `.env` và keys hợp lệ
- **Model not available**: Một số model có thể bị giới hạn khu vực
- **Rate limiting**: Đợi một chút giữa các request
- **Connection errors**: Kiểm tra kết nối internet

Chúc bạn có những cuộc trò chuyện vui vẻ! 🎉

- Có banner phía dưới vừa đủ để che phần nội dung 'Build with Gradio', có thiết kế đẹp mắt phù hợp với ngữ cảnh.
- Nút 'Continue' và 'Clear' đặt lại phía dưới của conversation, chia làm 2 cột.