"""Synthetic search QA: one published entry, unpublished entries and an empty account.""" from pathlib import Path import os,sys,json sys.path.insert(0,'C:/wechat_rpa') for key in ('KNOWLEDGE_QDRANT_URL','KNOWLEDGE_EMBEDDING_URL','KNOWLEDGE_EMBEDDING_MODEL'): os.environ[key]='' import admin_backend,admin_api from archive_store import ArchiveStore from knowledge_store import KnowledgeStore from test_knowledge_review import FullReviewTest folder=Path(__file__).resolve().parent db=admin_backend.Database(folder/'backend.db') if not db.path.exists(): db.initialize('InitialAdmin123') actor=db.authenticate('admin','InitialAdmin123')['id'] db.change_password(actor,'InitialAdmin123','KnowledgeQA@2026','') store=KnowledgeStore(db);store.initialize() fixture=FullReviewTest();fixture.db=db;fixture.store=store;fixture.actor=actor;fixture.archive=ArchiveStore(db) accounts=[] for index in range(2): _,account=db.create_desktop_session({'user_id':f'search-qa-{index}','sn':f'SQ00{index+1}', 'nickname':['检索验收客服','空知识验收客服'][index]},f'search-qa-device-{index}','QA','1.0','127.0.0.1') if index==0: ids=fixture.seed(3,account['tenant_id']) for item_id in ids[:2]: item=store.detail(account['tenant_id'],item_id) store.transition(account['tenant_id'],item_id,item['revision'],'approve',actor,'',True) store.publish(account['tenant_id'],ids[0],item['revision'],actor,'') accounts.append({'id':account['id'],'tenant_id':account['tenant_id']}) (folder/'fixture.json').write_text(json.dumps(accounts),encoding='utf-8') app=admin_api.create_app(db.path) if __name__=='__main__': import uvicorn uvicorn.run(app,host='127.0.0.1',port=18871,log_level='warning')