test_search_final.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/usr/bin/env python3
  2. """
  3. 测试向量检索功能
  4. """
  5. import requests
  6. import json
  7. # 配置
  8. EMBEDDING_API_URL = "http://localhost:8084"
  9. def test_search():
  10. """测试搜索功能"""
  11. print("=" * 60)
  12. print("测试向量检索功能")
  13. print("=" * 60)
  14. print()
  15. # 测试查询
  16. queries = [
  17. "数学",
  18. "口算题",
  19. "一年级",
  20. ]
  21. for query in queries:
  22. print("-" * 60)
  23. print(f"查询: {query}")
  24. print("-" * 60)
  25. url = f"{EMBEDDING_API_URL}/api/v1/search"
  26. try:
  27. response = requests.post(
  28. url,
  29. json={"query": query, "topK": 5},
  30. headers={"Content-Type": "application/json"},
  31. timeout=30,
  32. )
  33. if response.status_code != 200:
  34. print(f"❌ HTTP错误: {response.status_code}")
  35. print(f" {response.text}")
  36. continue
  37. results = response.json()
  38. print(f"✅ 找到 {len(results)} 个结果:\n")
  39. for i, result in enumerate(results, 1):
  40. print(f" 结果 {i}:")
  41. print(f" 文档ID: {result.get('docId')}")
  42. print(f" 文件名: {result.get('metadata', {}).get('file_name')}")
  43. print(f" 相似度: {result.get('score'):.4f}")
  44. print(f" 文件类型: {result.get('metadata', {}).get('file_type')}")
  45. content = result.get('content', '')
  46. if len(content) > 100:
  47. content = content[:100] + "..."
  48. print(f" 内容片段: {content}")
  49. print()
  50. except Exception as e:
  51. print(f"❌ 调用异常: {e}")
  52. import traceback
  53. traceback.print_exc()
  54. print()
  55. print("=" * 60)
  56. if __name__ == "__main__":
  57. test_search()