Spaces:
Sleeping
Sleeping
#!/usr/bin/env python3 | |
""" | |
测试脚本:验证 Hugging Face 缓存目录修复是否有效 | |
""" | |
import os | |
import sys | |
import tempfile | |
# 添加 src 目录到 Python 路径 | |
sys.path.insert(0, 'src') | |
print(f"Python path: {sys.path[:3]}") | |
def test_cache_setup(): | |
"""测试缓存目录设置""" | |
print("=== 测试缓存目录设置 ===") | |
# 测试本地环境 | |
print("\n1. 测试本地环境(无 SPACE_ID):") | |
if 'SPACE_ID' in os.environ: | |
del os.environ['SPACE_ID'] | |
if 'HF_SPACE_ID' in os.environ: | |
del os.environ['HF_SPACE_ID'] | |
try: | |
print(" 正在导入 setup_hf_cache...") | |
from demo.path_utils import setup_hf_cache | |
print(" 导入成功,正在调用 setup_hf_cache...") | |
cache_dir = setup_hf_cache() | |
print(f" 缓存目录: {cache_dir}") | |
print(" ✅ 本地环境测试通过") | |
except Exception as e: | |
print(f" ❌ 本地环境测试失败: {e}") | |
import traceback | |
traceback.print_exc() | |
# 测试 Hugging Face Spaces 环境 | |
print("\n2. 测试 Hugging Face Spaces 环境(有 SPACE_ID):") | |
os.environ['SPACE_ID'] = 'test_space_123' | |
try: | |
cache_dir = setup_hf_cache() | |
print(f" 缓存目录: {cache_dir}") | |
if cache_dir and os.path.exists(cache_dir): | |
print(" ✅ Hugging Face Spaces 环境测试通过") | |
else: | |
print(" ❌ 缓存目录不存在") | |
except Exception as e: | |
print(f" ❌ Hugging Face Spaces 环境测试失败: {e}") | |
import traceback | |
traceback.print_exc() | |
def test_embedder_initialization(): | |
"""测试 embedder 初始化""" | |
print("\n=== 测试 Embedder 初始化 ===") | |
# 设置 Hugging Face Spaces 环境 | |
os.environ['SPACE_ID'] = 'test_space_456' | |
try: | |
from demo.path_utils import setup_hf_cache | |
from langchain_community.embeddings import HuggingFaceEmbeddings | |
cache_dir = setup_hf_cache() | |
print(f"使用缓存目录: {cache_dir}") | |
# 尝试初始化 embedder | |
print("正在初始化 HuggingFaceEmbeddings...") | |
embedder = HuggingFaceEmbeddings( | |
model_name="sentence-transformers/all-MiniLM-L6-v2", | |
cache_folder=cache_dir | |
) | |
print("✅ Embedder 初始化成功") | |
# 测试简单的嵌入 | |
test_text = "This is a test sentence." | |
print("正在测试嵌入...") | |
embedding = embedder.embed_query(test_text) | |
print(f"✅ 嵌入测试成功,向量维度: {len(embedding)}") | |
except Exception as e: | |
print(f"❌ Embedder 初始化失败: {e}") | |
import traceback | |
traceback.print_exc() | |
def test_sentence_transformer(): | |
"""测试 SentenceTransformer""" | |
print("\n=== 测试 SentenceTransformer ===") | |
# 设置 Hugging Face Spaces 环境 | |
os.environ['SPACE_ID'] = 'test_space_789' | |
try: | |
from demo.path_utils import setup_hf_cache | |
from sentence_transformers import SentenceTransformer | |
cache_dir = setup_hf_cache() | |
print(f"使用缓存目录: {cache_dir}") | |
# 尝试初始化 SentenceTransformer | |
print("正在初始化 SentenceTransformer...") | |
model = SentenceTransformer( | |
"nomic-ai/nomic-embed-text-v1", | |
trust_remote_code=True, | |
cache_folder=cache_dir | |
) | |
print("✅ SentenceTransformer 初始化成功") | |
# 测试简单的嵌入 | |
test_text = "This is a test sentence." | |
print("正在测试嵌入...") | |
embedding = model.encode(test_text) | |
print(f"✅ 嵌入测试成功,向量维度: {len(embedding)}") | |
except Exception as e: | |
print(f"❌ SentenceTransformer 初始化失败: {e}") | |
import traceback | |
traceback.print_exc() | |
if __name__ == "__main__": | |
print("开始测试 Hugging Face 缓存目录修复...") | |
test_cache_setup() | |
test_embedder_initialization() | |
test_sentence_transformer() | |
print("\n=== 测试完成 ===") |