import asyncio import inspect from Util.LightRagUtil import configure_logging, initialize_rag, print_stream from lightrag import QueryParam # 化学 data = [ {"NAME": "Chemistry", "Q": "氧化铁与硝酸的化学反应方程式是什么", "ChineseName": "化学"}, {"NAME": "Math", "Q": "氧化铁与硝酸的化学反应方程式是什么", "ChineseName": "数学"}, {"NAME": "Chinese", "Q": "氧化铁与硝酸的化学反应方程式是什么", "ChineseName": "语文"}] # 准备查询的科目 KEMU = "Chemistry" # 查找索引号 idx = [i for i, d in enumerate(data) if d["NAME"] == KEMU][0] async def main(): try: rag = await initialize_rag('Topic/' + data[idx]["NAME"]) resp = await rag.aquery( data[idx]["Q"], param=QueryParam(mode="hybrid", stream=True), ) if inspect.isasyncgen(resp): await print_stream(resp) else: print(resp) except Exception as e: print(f"An error occurred: {e}") finally: if rag: await rag.finalize_storages() if __name__ == "__main__": configure_logging() asyncio.run(main())