Final_Assignment_Template / test_vision.py
Paperbag's picture
fix vision
f1a7daa
import os
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
import base64
from dotenv import load_dotenv
load_dotenv()
def test_vision():
# Use a tiny 1x1 base64 image for testing
tiny_img = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg=="
msg = HumanMessage(content=[{"type": "text", "text": "what is in this image?"}, {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{tiny_img}"}}])
models = [
{"name": "OpenRouter-Gemini-2.0", "provider": "openai", "model": "google/gemini-2.0-flash-001", "base_url": "https://openrouter.ai/api/v1", "key": "OPENROUTER_API_KEY"},
{"name": "NVIDIA-Llama-3.2", "provider": "openai", "model": "nvidia/llama-3.2-nv-vision-70b", "base_url": "https://integrate.api.nvidia.com/v1", "key": "NVIDIA_API_KEY"},
{"name": "NVIDIA-Qwen-VL", "provider": "openai", "model": "nvidia/qwen-vl-max", "base_url": "https://integrate.api.nvidia.com/v1", "key": "NVIDIA_API_KEY"},
{"name": "Vercel-Vision", "provider": "openai", "model": "gpt-4o-mini", "base_url": "https://gateway.ai.vercel.com/v1", "key": "VERCEL_API_KEY"},
]
for m in models:
key = os.getenv(m['key'])
if not key:
print(f"Skip {m['name']} (no key)")
continue
try:
print(f"Testing {m['name']} ({m['model']})...")
llm = ChatOpenAI(model=m['model'], openai_api_key=key, openai_api_base=m['base_url'], temperature=0)
res = llm.invoke([msg])
print(f"Success: {res.content}")
except Exception as e:
print(f"Fail: {e}")
if __name__ == "__main__":
test_vision()