Spaces:
Sleeping
Sleeping
File size: 2,498 Bytes
b840b29 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | import os
import json
import argparse
from dotenv import load_dotenv
from src.agents.agent_director import AgentDirector
# Load environment variables
load_dotenv()
def main():
"""Example script demonstrating the Agentic Defensor RAG system with multiple agents."""
# Parse command line arguments
parser = argparse.ArgumentParser(description="Agentic Defensor Multi-Agent Example")
parser.add_argument("--query", type=str, default="En qué tomo se encuentra Contrato Andrea Monsalve",
help="The legal query to process")
parser.add_argument("--top-k", type=int, default=50, help="Number of chunks to retrieve")
parser.add_argument("--model", type=str, default=None, help="OpenAI model to use")
parser.add_argument("--save", action="store_true", help="Save results to file")
parser.add_argument("--output", type=str, default="agentic_results.json", help="Output file")
args = parser.parse_args()
# Initialize the agent director
print("Initializing agent director...")
director = AgentDirector(top_k=args.top_k, model=args.model)
# Process the query
print(f"\nProcessing query: {args.query}")
result = director.process_query(args.query)
# Display the result
print("\n" + "="*80)
print("QUERY:")
print(args.query)
print("\nANSWER:")
print(result["answer"])
print("="*80)
# Display processing steps
print("\nPROCESSING STEPS:")
if "query_analysis" in result:
print("1. Query Analysis: Completed")
structured_analysis = result["query_analysis"].get("structured_analysis", "")
if structured_analysis:
print(f" - Extracted structured information from the query")
print(f"2. Retrieved {result.get('num_chunks_retrieved', 0)} document chunks")
if "context_aggregation" in result:
agg = result["context_aggregation"]
print("3. Context Aggregation:")
print(f" - Processed {agg.get('num_raw_content_items', 0)} content items")
print(f" - Organized context: {agg.get('has_organized_content', False)}")
print(f"4. Answer Generation: Completed")
# Save results if requested
if args.save:
print(f"\nSaving results to {args.output}...")
with open(args.output, "w", encoding="utf-8") as f:
json.dump(result, f, ensure_ascii=False, indent=2)
print(f"Results saved successfully.")
if __name__ == "__main__":
main() |