Explorer
/tmp/test_graphiti_qwen.py
← Zurück ↓ Download
#!/usr/bin/env python3
"""Test Qwen 3.7 Flash via the same worker process that Graphiti uses."""

import subprocess, json, time

key = ""
with open("/etc/graphiti/graphiti.env") as f:
    for line in f:
        if line.startswith("OPENROUTER_API_KEY="):
            key = line.split("=", 1)[1].strip()
            break

payload = {
    "model": "qwen/qwen3.7-flash",
    "messages": [{"role": "user", "content": '{"test": true}'}],
    "effective_timeout": 60,
    "api_key": key,
    "base_url": "https://openrouter.ai/api/v1",
    "graphiti_phase": "test_llm_call",
    "llm_call_index": 0,
}

result = subprocess.run(
    ['docker', 'exec', 'graphiti-service', 'python3', '-c', 
     '''
import asyncio, json, sys
sys.path.insert(0, '/app')
async def test():
    from llm_call_worker import call
    result = await call(sys.argv[1] if len(sys.argv) > 1 else "")
    return result

payload = json.loads(''' + json.dumps(payload).replace('"', '\\"') + ''')
result = asyncio.run(test())
print(json.dumps(result, indent=2))
'''],
    capture_output=True, text=True, timeout=90, cwd='/opt/struktur/graphiti'
)

print("STDOUT:")
try:
    out = result.stdout.strip()
    data = json.loads(out)
    print(f"OK: {data.get('ok')}")
    print(f"Raw content present: {bool(data.get('raw'))}")
    print(f"Content length: {len(data.get('raw',''))}")
    print(f"Content preview: {repr(data.get('raw','')[:200])}")
    print(f"Provider: {data.get('provider_request_id','N/A')}")
    print(f"Input tokens: {data.get('input_tokens')}")
    print(f"Output tokens: {data.get('output_tokens')}")
except:
    print(f"Error parsing JSON. Output: {out[:500]}")

if result.stderr:
    print(f"\nSTDERR:\n{result.stderr[:300]}")