You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

114 lines
3.7 KiB

#!/usr/bin/env python3
"""
mem0 验证脚本 - 测试 DashScope 1024 维度配置
"""
import os
import sys
import asyncio
# 设置环境变量
os.environ['OPENAI_API_BASE'] = 'https://dashscope.aliyuncs.com/compatible-mode/v1'
os.environ['OPENAI_BASE_URL'] = 'https://dashscope.aliyuncs.com/compatible-mode/v1'
os.environ['MEM0_DASHSCOPE_API_KEY'] = 'sk-4111c9dba5334510968f9ae72728944e'
os.environ['OPENAI_API_KEY'] = 'sk-4111c9dba5334510968f9ae72728944e'
# 添加路径
sys.path.insert(0, '/root/.openclaw/workspace/skills/mem0-integration')
print("=" * 60)
print("🔍 mem0 验证测试 - DashScope 1024 维度配置")
print("=" * 60)
# 测试 1: 检查环境变量
print("\n[1/4] 检查环境变量...")
print(f" OPENAI_BASE_URL: {os.environ.get('OPENAI_BASE_URL')}")
print(f" OPENAI_API_KEY: {os.environ.get('OPENAI_API_KEY')[:10]}...")
print(f" ✅ 环境变量已设置")
# 测试 2: 导入 mem0_client
print("\n[2/4] 导入 mem0_client 模块...")
try:
from mem0_client import Mem0Client
print(" ✅ 模块导入成功")
except Exception as e:
print(f" ❌ 模块导入失败:{e}")
sys.exit(1)
# 测试 3: 初始化客户端
print("\n[3/4] 初始化 Mem0Client...")
try:
client = Mem0Client()
print(f" ✅ 客户端初始化成功")
print(f" - local_memory: {client.local_memory is not None}")
print(f" - qdrant_host: {client.config['qdrant']['host']}")
print(f" - embedder_model: {client.config['embedder']['config'].get('model')}")
print(f" - embedding_dims: {client.config['embedder']['config'].get('dimensions')}")
except Exception as e:
print(f" ❌ 初始化失败:{e}")
import traceback
traceback.print_exc()
sys.exit(1)
# 测试 4: 测试向量生成(验证 1024 维度)
print("\n[4/4] 测试向量生成(验证 1024 维度)...")
async def test_embedding():
try:
# 使用 DashScope API 直接测试
import httpx
api_key = os.environ.get('OPENAI_API_KEY')
api_base = os.environ.get('OPENAI_BASE_URL')
payload = {
"model": "text-embedding-v3",
"input": "测试文本 - 验证 1024 维度配置",
"dimensions": 1024
}
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
async with httpx.AsyncClient(timeout=30.0) as http:
response = await http.post(
f"{api_base}/embeddings",
json=payload,
headers=headers
)
if response.status_code == 200:
data = response.json()
embedding = data['data'][0]['embedding']
print(f" ✅ 向量生成成功")
print(f" - 维度:{len(embedding)}")
print(f" - 状态码:{response.status_code}")
if len(embedding) == 1024:
print(f" 🎉 维度验证通过!(1024)")
return True
else:
print(f" 维度不匹配!期望 1024,实际 {len(embedding)}")
return False
else:
print(f" ❌ API 请求失败:{response.status_code}")
print(f" 响应:{response.text[:200]}")
return False
except Exception as e:
print(f" ❌ 测试失败:{e}")
import traceback
traceback.print_exc()
return False
# 运行异步测试
result = asyncio.run(test_embedding())
print("\n" + "=" * 60)
if result:
print("✅ 所有测试通过!mem0 配置正确")
sys.exit(0)
else:
print(" 部分测试失败,请检查配置")
sys.exit(1)