"""Command‑line interface for the FAQ‑bot. Examples: python cli.py --question "What topics are covered in week 3?" python cli.py --question "What is the course schedule?" If no question is supplied, an interactive prompt is started. """ import argparse import asyncio from .agent import create_agent_executor async def main(): parser = argparse.ArgumentParser(description="FAQ‑bot CLI") parser.add_argument("--question", type=str, help="Question to ask the bot") args = parser.parse_args() executor = await create_agent_executor() if args.question: state = {"input": args.question} result = await executor.ainvoke(state) print("\nAnswer:") print(result["answer"]) print(f"\nSource: {result['source']}") else: print("Enter a question (Ctrl‑D to exit):") while True: try: q = input("> ") except EOFError: break if not q.strip(): continue state = {"input": q} result = await executor.ainvoke(state) print("\nAnswer:") print(result["answer"]) print(f"\nSource: {result['source']}") print("\n---") if __name__ == "__main__": asyncio.run(main())