admin_bot: attach sample test image when testing vision-enabled provider

This commit is contained in:
mamad
2026-08-28 21:21:41 +03:30
parent cdbb43b79c
commit 410b238abb
+24 -2
View File
@@ -1867,19 +1867,41 @@ class AdminBotService:
repo=self.repo
)
t0 = time.time()
test_prompt = "Say hello and return JSON with keys: status (ok), message (Hello from Copykar), and ping (pong)."
test_img_path = None
if getattr(prof, "supports_vision", False):
test_img_path = "/app/data/media/vision_test.jpg" if os.path.exists("/app") else "/projects/telegram-bots/copykar/data/media/vision_test.jpg"
if not os.path.exists(test_img_path):
try:
from PIL import Image, ImageDraw
os.makedirs(os.path.dirname(test_img_path), exist_ok=True)
img = Image.new('RGB', (400, 200), color=(240, 240, 240))
d = ImageDraw.Draw(img)
d.rectangle([(20, 20), (380, 180)], outline=(0, 120, 215), width=4)
d.text((50, 80), 'CODE: COPYKAR-TEST-7799', fill=(200, 30, 30))
img.save(test_img_path)
except Exception:
test_img_path = None
if test_img_path:
test_prompt = "Say hello, analyze the attached image, and return JSON with keys: status (ok), message (Hello from Copykar), ping (pong), and image_seen (describe what text/code is visible in the image)."
else:
test_prompt = "Say hello and return JSON with keys: status (ok), message (Hello from Copykar), and ping (pong)."
try:
res = await test_client.generate_json(
prompt=test_prompt,
system_prompt="You are a test agent. Always reply with valid JSON only.",
action_name="test_provider_profile"
action_name="test_provider_profile",
image_path=test_img_path
)
latency = time.time() - t0
res_text = json.dumps(res, ensure_ascii=False, indent=2)
vision_info = "🟢 ارسال و با تصویر پردازش شد" if test_img_path else "⚪️ فقط متن (غیرفعال)"
card = (
f"🧪 <b>نتیجه تست ارائه‌دهنده «{prof.name}»:</b>\n\n"
f"• 🔌 <b>Provider:</b> <code>{prof.provider_type}</code>\n"
f"• 🏷 <b>Model:</b> <code>{prof.model}</code>\n"
f"• 🖼 <b>پردازش تصویر:</b> {vision_info}\n"
f"• ⏱ <b>مدت زمان:</b> {latency:.2f}s\n"
f"• 📊 <b>وضعیت:</b> ✅ موفق (Success)\n\n"
f"📥 <b>Input Prompt:</b>\n<code>{test_prompt}</code>\n\n"