|
import os |
|
import json |
|
import time |
|
import asyncio |
|
|
|
from lightrag import LightRAG |
|
from lightrag.kg.shared_storage import initialize_pipeline_status |
|
|
|
|
|
def insert_text(rag, file_path): |
|
with open(file_path, mode="r") as f: |
|
unique_contexts = json.load(f) |
|
|
|
retries = 0 |
|
max_retries = 3 |
|
while retries < max_retries: |
|
try: |
|
rag.insert(unique_contexts) |
|
break |
|
except Exception as e: |
|
retries += 1 |
|
print(f"Insertion failed, retrying ({retries}/{max_retries}), error: {e}") |
|
time.sleep(10) |
|
if retries == max_retries: |
|
print("Insertion failed after exceeding the maximum number of retries") |
|
|
|
|
|
cls = "agriculture" |
|
WORKING_DIR = f"../{cls}" |
|
|
|
if not os.path.exists(WORKING_DIR): |
|
os.mkdir(WORKING_DIR) |
|
|
|
|
|
async def initialize_rag(): |
|
rag = LightRAG(working_dir=WORKING_DIR) |
|
|
|
await rag.initialize_storages() |
|
await initialize_pipeline_status() |
|
|
|
return rag |
|
|
|
|
|
def main(): |
|
|
|
rag = asyncio.run(initialize_rag()) |
|
insert_text(rag, f"../datasets/unique_contexts/{cls}_unique_contexts.json") |
|
|
|
|
|
if __name__ == "__main__": |
|
main() |
|
|