nevamind-ai--memu
75c67150d0
build / build (3.13) (push) Has been cancelled
release-please / release-please (push) Has been cancelled
release-please / build wheels (macos-aarch64) (push) Has been cancelled
release-please / build wheels (macos-x86_64) (push) Has been cancelled
release-please / build wheels (windows-x86_64) (push) Has been cancelled
release-please / build wheels (linux-aarch64) (push) Has been cancelled
release-please / build wheels (linux-x86_64) (push) Has been cancelled
release-please / build sdist (push) Has been cancelled
release-please / publish release artifacts (push) Has been cancelled
98 行
3.0 KiB
Python
98 行
3.0 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Quick test script to verify LazyLLM backend configuration and basic functionality.
|
|
|
|
Usage:
|
|
export MEMU_QWEN_API_KEY=your_api_key
|
|
python examples/test_lazyllm.py
|
|
"""
|
|
|
|
import asyncio
|
|
import os
|
|
import sys
|
|
|
|
import pytest
|
|
|
|
# Add src to sys.path
|
|
src_path = os.path.abspath("src")
|
|
sys.path.insert(0, src_path)
|
|
|
|
pytest.importorskip("lazyllm")
|
|
if not os.getenv("MEMU_QWEN_API_KEY"):
|
|
pytest.skip("requires MEMU_QWEN_API_KEY for optional LazyLLM integration test", allow_module_level=True)
|
|
|
|
from memu.llm.lazyllm_client import LazyLLMClient # noqa: E402
|
|
|
|
|
|
async def test_lazyllm_client():
|
|
"""Test LazyLLMClient with basic operations."""
|
|
|
|
print("LazyLLM Backend Test")
|
|
print("=" * 60)
|
|
|
|
# Get API key from environment
|
|
try:
|
|
client = LazyLLMClient(
|
|
llm_source="qwen",
|
|
vlm_source="qwen",
|
|
embed_source="qwen",
|
|
stt_source="qwen",
|
|
chat_model="qwen-plus",
|
|
vlm_model="qwen-vl-plus",
|
|
embed_model="text-embedding-v3",
|
|
stt_model="qwen-audio-turbo",
|
|
)
|
|
print("✓ LazyLLMClient initialized successfully")
|
|
except Exception as e:
|
|
print(f"❌ Failed to initialize LazyLLMClient: {e}")
|
|
return False
|
|
|
|
# Test 1: Summarization
|
|
print("\n[Test 1] Testing summarization...")
|
|
try:
|
|
test_text = "这是一段关于Python编程的文本。Python是一种高级编程语言,具有简单易学的语法。它被广泛用于数据分析、机器学习和Web开发。" # noqa: RUF001
|
|
result = await client.chat(test_text)
|
|
print("✓ Summarization successful")
|
|
print(f" Result: {result[:100]}...")
|
|
except Exception as e:
|
|
print(f"❌ Summarization failed: {e}")
|
|
import traceback
|
|
|
|
traceback.print_exc()
|
|
|
|
# Test 2: Embedding
|
|
print("\n[Test 2] Testing embedding...")
|
|
try:
|
|
test_texts = ["Hello world", "How are you", "Nice to meet you"]
|
|
embeddings = await client.embed(test_texts)
|
|
print("✓ Embedding successful")
|
|
print(f" Generated {len(embeddings)} embeddings")
|
|
if embeddings and embeddings[0]:
|
|
print(f" Embedding dimension: {len(embeddings[0])}")
|
|
except Exception as e:
|
|
print(f"❌ Embedding failed: {e}")
|
|
import traceback
|
|
|
|
traceback.print_exc()
|
|
|
|
# Test 3: Vision (requires image file)
|
|
print("\n[Test 3] Testing vision...")
|
|
test_image_path = "examples/resources/images/image1.png"
|
|
if os.path.exists(test_image_path):
|
|
try:
|
|
result, _ = await client.vision(prompt="描述这张图片的内容", image_path=test_image_path)
|
|
print("✓ Vision successful")
|
|
print(f" Result: {result[:100]}...")
|
|
except Exception as e:
|
|
print(f"❌ Vision failed: {e}")
|
|
import traceback
|
|
|
|
traceback.print_exc()
|
|
else:
|
|
print(f"⚠ Skipped: Test image not found at {test_image_path}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
success = asyncio.run(test_lazyllm_client())
|
|
sys.exit(0 if success else 1)
|