Explorer
/proc/1357592/cwd/tmp/queue11_diagnose.py
← Zurück ↓ Download
import sqlite3,json,urllib.request
from pathlib import Path
Q='/opt/struktur/obsidian-graphiti-import/obsidian_graphiti_import.db'; R='/opt/struktur/graphiti/request-data/requests.db'; EVENTS='/opt/struktur/graphiti/request-data/processing-events.jsonl'
q=sqlite3.connect('file:'+Q+'?mode=ro',uri=True); q.row_factory=sqlite3.Row
row=dict(q.execute('select id,relative_path,status,attempts,last_attempt,last_error,last_error_phase,graphiti_status,graphiti_episode_name,graphiti_episode_uuid,updated_at,content_hash,import_key from files where id=11').fetchone()); q.close(); print('QUEUE',json.dumps(row,ensure_ascii=False))
r=sqlite3.connect('file:'+R+'?mode=ro',uri=True); r.row_factory=sqlite3.Row
reqs=[dict(x) for x in r.execute("select request_id,run_id,queue_id,started_at,completed_at,status,http_status,llm_request_count,model,provider,error_phase,error_message,terminal_reason,recovery_result,episode_uuid from graphiti_requests where queue_id='11' order by started_at")]; print('REQUESTS',json.dumps(reqs,ensure_ascii=False)); r.close()
target='req-7d4863afa51c3c33c70ecfc5'; ev=[]
for line in Path(EVENTS).read_text(errors='replace').splitlines():
 try:
  x=json.loads(line)
  if x.get('request_id')==target: ev.append(x)
 except: pass
print('EVENT_COUNT',len(ev))
for x in ev:
 print('EVENT',json.dumps({k:x.get(k) for k in ['timestamp','phase','graphiti_phase','llm_call_index','outcome','input_tokens','output_tokens','finish_reason','error_class','timeout_reason','duration_ms','started_at','completed_at','error_message','error_reason','edge_index','edge_total']},ensure_ascii=False))
row={'import_key':row['import_key'],'relative_path':row['relative_path'],'content_hash':row['content_hash']}
data=json.dumps({'name':'obsidian_'+row['import_key'],'import_key':row['import_key'],'obsidian_path':row['relative_path'],'content_hash':row['content_hash']}).encode(); u=urllib.request.Request('http://127.0.0.1:8644/episodes/check',data=data,headers={'Content-Type':'application/json'})
try: print('EPISODE_CHECK',urllib.request.urlopen(u,timeout=30).read().decode())
except Exception as e: print('EPISODE_CHECK_ERROR',repr(e))
print('BLOCK',Path('/opt/struktur/obsidian-graphiti-import/import_run_block.json').read_text())