Mostly working

This commit is contained in:
2026-05-28 00:08:52 -07:00
parent 1cfba3a0ae
commit afa8d17f10
3 changed files with 45 additions and 4 deletions
+24 -2
View File
@@ -10,16 +10,38 @@ def main():
type=str,
help="Path to a PDF file to ingest into the RAG system",
)
parser.add_argument(
"--ingest-file",
type=str,
help="Path to a markdown file to ingest into the RAG system",
)
parser.add_argument(
"--ingest-dir",
type=str,
help="Path to a directory of markdown files to ingest into the RAG system",
)
args = parser.parse_args()
rag_manager = RAGManager()
if args.ingest_pdf:
print(f"Ingesting PDF: {args.ingest_pdf}...")
rag_manager = RAGManager()
rag_manager.ingest_pdf(args.ingest_pdf)
print("PDF ingestion complete.")
print("Hello from dnd-helpers!")
if args.ingest_file:
print(f"Ingesting File: {args.ingest_file}...")
rag_manager.ingest_file(args.ingest_file)
print("File ingestion complete.")
if args.ingest_dir:
print(f"Ingesting Directory: {args.ingest_dir}...")
rag_manager.ingest_directory(args.ingest_dir)
print("Directory ingestion complete.")
if not any([args.ingest_pdf, args.ingest_file, args.ingest_dir]):
print("Hello from dnd-helpers!")
if __name__ == "__main__":
+5 -2
View File
@@ -215,8 +215,11 @@ class PipelineOrchestrator:
# Persistence: Lore Updates
for lore_update in extraction_result.lore_updates:
await asyncio.to_thread(update_lore, lore_update)
logger.info(f"LLM Worker: Lore updated: {lore_update.entity_name}")
file_path = await asyncio.to_thread(update_lore, lore_update)
await asyncio.to_thread(self.rag_manager.ingest_file, file_path)
logger.info(
f"LLM Worker: Lore updated and ingested into RAG: {lore_update.entity_name}"
)
# Persistence: Character State Updates
for char_update in extraction_result.character_updates:
+16
View File
@@ -87,6 +87,22 @@ class RAGManager:
print(f"Successfully ingested {file_path} into the vector store.")
def ingest_directory(self, dir_path: str):
"""
Recursively loads all markdown files in a directory into the index.
"""
files_processed = 0
for root, _, files in os.walk(dir_path):
for file in files:
if file.endswith(".md"):
file_path = os.path.join(root, file)
self.ingest_file(file_path)
files_processed += 1
print(
f"Successfully ingested {files_processed} files from {dir_path} into the vector store."
)
def summarize_results(self, query: str, nodes: List[Any]) -> List[ContextUpdate]:
"""
Uses an LLM to transform raw snippets into concise "insights", filtering out irrelevant content.