""" | |
LightRAG meets Amazon Bedrock ⛰️ | |
""" | |
import os | |
import logging | |
from lightrag import LightRAG, QueryParam | |
from lightrag.llm import bedrock_complete, bedrock_embedding | |
from lightrag.utils import EmbeddingFunc | |
logging.getLogger("aiobotocore").setLevel(logging.WARNING) | |
WORKING_DIR = "./dickens" | |
if not os.path.exists(WORKING_DIR): | |
os.mkdir(WORKING_DIR) | |
rag = LightRAG( | |
working_dir=WORKING_DIR, | |
llm_model_func=bedrock_complete, | |
llm_model_name="Anthropic Claude 3 Haiku // Amazon Bedrock", | |
embedding_func=EmbeddingFunc( | |
embedding_dim=1024, max_token_size=8192, func=bedrock_embedding | |
), | |
) | |
with open("./book.txt", "r", encoding="utf-8") as f: | |
rag.insert(f.read()) | |
for mode in ["naive", "local", "global", "hybrid"]: | |
print("\n+-" + "-" * len(mode) + "-+") | |
print(f"| {mode.capitalize()} |") | |
print("+-" + "-" * len(mode) + "-+\n") | |
print( | |
rag.query("What are the top themes in this story?", param=QueryParam(mode=mode)) | |
) | |