TruyVanGemini / callAPI.py
AnhFeee's picture
update key
1a020d4 verified
Raw
History Blame Contribute Delete
3.19 kB
import google.generativeai as genai
import os
import time
# --- 1. Cấu hình API Key ---
# (Cách an toàn: Đặt biến môi trường 'GOOGLE_API_KEY')
try:
# Lấy key từ biến môi trường
genai.configure(api_key='AIzaSyCaqjB1VMjudlsYijdlLQfAuK9Pztyvc90')
except KeyError:
print("LỖI: Vui lòng đặt biến môi trường 'GOOGLE_API_KEY'")
# Hoặc để test nhanh (không khuyến khích):
# api_key = 'YOUR_API_KEY_HERE'
# genai.configure(api_key=api_key)
exit()
# --- 2. Tải file PDF lên API ---
# !!! THAY ĐỔI: Đặt đúng tên file PDF của bạn ở đây
file_path = 'C:\\Users\\anhph\\Desktop\\Python\\sotay.txt'
# !!!
uploaded_file = None
print(f"Đang kiểm tra file '{file_path}'...")
if not os.path.exists(file_path):
print(f"LỖI: Không tìm thấy file '{file_path}'.")
print("Vui lòng đặt file sotay.txt vào cùng thư mục với script này, hoặc sửa lại đường dẫn.")
exit()
try:
print(f"Đang tải file '{file_path}' lên máy chủ Gemini...")
# Tải file lên và nhận về một đối tượng File
uploaded_file = genai.upload_file(
path=file_path,
display_name="Sổ tay Sinh viên (Tạm thời)"
)
print(f"Đã tải file thành công: {uploaded_file.display_name} (ID: {uploaded_file.name})")
except Exception as e:
print(f"Lỗi khi tải file: {e}")
exit()
# --- 3. Khởi tạo Model ---
# Chúng ta sẽ dùng gemini-2.5-flash cho tốc độ và khả năng xử lý file
model = genai.GenerativeModel(model_name="models/gemini-2.0-flash-lite")
# --- 4. Bắt đầu Chatbot ---
print("\n" + "="*50)
print("🤖 CHATBOT SỔ TAY SINH VIÊN ĐÃ SẴN SÀNG!")
print(" (Gõ 'thoát' để kết thúc chương trình)")
print("="*50)
try:
while True:
# Nhận câu hỏi từ người dùng
question = input("Sinh viên hỏi: ")
if question.lower() == 'thoát':
print("Chatbot: Tạm biệt!")
break
if not question:
continue
print("Chatbot: Đang tìm kiếm trong Sổ tay...")
# Gửi cả file đã upload và câu hỏi cho model
# Model sẽ tự động đọc file để tìm thông tin trả lời
response = model.generate_content(
[uploaded_file, question], # Gửi file và prompt
request_options={'timeout': 600} # Tăng thời gian chờ xử lý
)
print(f"Chatbot (từ PDF): {response.text}\n")
except KeyboardInterrupt:
print("\nChatbot: Đã dừng.")
except Exception as e:
print(f"Đã xảy ra lỗi: {e}")
finally:
# --- 5. Dọn dẹp: Xóa file đã upload ---
if uploaded_file:
print(f"\nĐang xóa file '{uploaded_file.display_name}' khỏi máy chủ...")
try:
genai.delete_file(uploaded_file.name)
print("Đã xóa file thành công.")
except Exception as e:
print(f"Lỗi khi xóa file: {e}. Bạn có thể xóa thủ công qua API.")