Spaces:
Sleeping
Sleeping
Update helpers.py
Browse files- helpers.py +28 -19
helpers.py
CHANGED
|
@@ -21,30 +21,39 @@ if "GOOGLE_API_KEY" not in os.environ:
|
|
| 21 |
os.environ["GOOGLE_API_KEY"] = "AIzaSyDJ4vIKuIBIPNHATLxnoHlagXWbsAz-vRs"
|
| 22 |
key = "AIzaSyDJ4vIKuIBIPNHATLxnoHlagXWbsAz-vRs"
|
| 23 |
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
href = link.get('href')
|
| 31 |
-
if href.startswith(
|
| 32 |
-
urls.
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
# for page_url in url:
|
| 36 |
-
# loader = WebBaseLoader(web_paths=[page_url])
|
| 37 |
-
# async for doc in loader.alazy_load():
|
| 38 |
-
# docs.append(doc)
|
| 39 |
|
| 40 |
-
#
|
| 41 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
|
| 43 |
-
|
|
|
|
| 44 |
|
| 45 |
# Ví dụ sử dụng
|
| 46 |
-
|
| 47 |
-
# print(nct_urls)
|
| 48 |
|
| 49 |
def log_message(messages, filename="chat_log.txt"):
|
| 50 |
"""Ghi lịch sử tin nhắn vào file log"""
|
|
|
|
| 21 |
os.environ["GOOGLE_API_KEY"] = "AIzaSyDJ4vIKuIBIPNHATLxnoHlagXWbsAz-vRs"
|
| 22 |
key = "AIzaSyDJ4vIKuIBIPNHATLxnoHlagXWbsAz-vRs"
|
| 23 |
|
| 24 |
+
def get_web_documents(base_url='https://nct.neu.edu.vn/'):
|
| 25 |
+
"""Lấy tất cả URL từ trang web và trích xuất nội dung văn bản"""
|
| 26 |
+
|
| 27 |
+
# Bước 1: Lấy danh sách URL
|
| 28 |
+
response = requests.get(base_url)
|
| 29 |
+
if response.status_code != 200:
|
| 30 |
+
print(f"Không thể truy cập {base_url}")
|
| 31 |
+
return []
|
| 32 |
+
|
| 33 |
+
soup = BeautifulSoup(response.text, 'html.parser')
|
| 34 |
+
|
| 35 |
+
urls = set() # Dùng set để tránh trùng lặp
|
| 36 |
+
for link in soup.find_all('a', href=True):
|
| 37 |
href = link.get('href')
|
| 38 |
+
if href.startswith(base_url): # Chỉ lấy URL nội bộ
|
| 39 |
+
urls.add(href)
|
| 40 |
+
|
| 41 |
+
print(f"Tìm thấy {len(urls)} URL hợp lệ.")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
|
| 43 |
+
# Bước 2: Tải nội dung từ các URL
|
| 44 |
+
docs = []
|
| 45 |
+
for page_url in urls:
|
| 46 |
+
try:
|
| 47 |
+
loader = WebBaseLoader(web_paths=[page_url])
|
| 48 |
+
docs.extend(loader.load()) # Đồng bộ, không cần async
|
| 49 |
+
except Exception as e:
|
| 50 |
+
print(f"Lỗi khi tải {page_url}: {e}")
|
| 51 |
|
| 52 |
+
print(f"Tải thành công {len(docs)} trang.")
|
| 53 |
+
return docs
|
| 54 |
|
| 55 |
# Ví dụ sử dụng
|
| 56 |
+
documents = get_web_documents("https://nct.neu.edu.vn/")
|
|
|
|
| 57 |
|
| 58 |
def log_message(messages, filename="chat_log.txt"):
|
| 59 |
"""Ghi lịch sử tin nhắn vào file log"""
|