Skip to main content
Glama

TAPD Data Fetcher

test_data_vectorizer.py3.28 kB
#!/usr/bin/env python3 """ 测试完整版 data_vectorizer 工具功能 """ import asyncio import json import os import sys sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from mcp_tools.data_vectorizer import vectorize_tapd_data, search_tapd_data, get_vector_db_info async def test_data_vectorizer(): """测试完整版向量化工具""" print("=== 测试完整版 data_vectorizer 工具 ===\n") # 1. 检查数据文件是否存在 data_file = "local_data/msg_from_fetcher.json" if not os.path.exists(data_file): print(f"⚠️ 数据文件不存在: {data_file}") print("请先运行 tapd_data_fetcher.py 获取数据") return False print(f"✅ 数据文件存在: {data_file}\n") # 2. 测试数据库信息获取 print("📊 测试数据库信息获取...") try: db_info = await get_vector_db_info() print(f"数据库状态: {db_info['status']}") print(f"信息: {db_info['message']}") if db_info['status'] == 'not_found': print("需要先进行向量化\n") else: print(f"统计信息: {json.dumps(db_info.get('stats', {}), ensure_ascii=False, indent=2)}\n") except Exception as e: print(f"❌ 获取数据库信息失败: {e}\n") # 3. 测试向量化功能 print("🔄 测试向量化功能...") try: result = await vectorize_tapd_data(chunk_size=5) # 使用较小的分片测试 print(f"向量化状态: {result['status']}") print(f"信息: {result['message']}") if result['status'] == 'success': stats = result.get('stats', {}) print(f"统计信息: {json.dumps(stats, ensure_ascii=False, indent=2)}") print() except Exception as e: print(f"❌ 向量化失败: {e}\n") return False # 4. 测试搜索功能 print("🔍 测试搜索功能...") test_queries = [ "登录功能相关的需求", "高优先级的缺陷", "用户界面问题" ] for query in test_queries: try: print(f"\n查询: {query}") result = await search_tapd_data(query, top_k=3) print(f"搜索状态: {result['status']}") if result['status'] == 'success': results = result.get('results', []) print(f"找到 {len(results)} 个相关结果") for i, item in enumerate(results[:2], 1): # 只显示前2个结果 print(f" 结果 {i}: 相关度 {item['relevance_score']:.3f}") chunk_info = item.get('chunk_info', {}) print(f" 类型: {chunk_info.get('item_type')}, 条目数: {chunk_info.get('item_count')}") else: print(f"搜索失败: {result['message']}") except Exception as e: print(f"❌ 搜索失败: {e}") print("\n=== 完整版 data_vectorizer 测试完成 ===") return True if __name__ == "__main__": success = asyncio.run(test_data_vectorizer()) if success: print("\n✅ 所有测试通过!完整版向量化工具工作正常。") else: print("\n❌ 部分测试失败,请检查配置和数据。")

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OneCuriousLearner/MCPAgentRE'

If you have feedback or need assistance with the MCP directory API, please join our Discord server