42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
import argparse
|
||
import sys
|
||
from src.vector_store_utils import load_faq_to_chroma
|
||
from src.langchain_agent import create_agent
|
||
|
||
def run_preset_questions(preset: str, agent):
|
||
questions = [q.strip() for q in preset.split(",") if q.strip()]
|
||
for q in questions:
|
||
print(f"\nQuestion: {q}")
|
||
answer = agent.run(q)
|
||
print(f"Answer:\n{answer}")
|
||
|
||
def interactive_mode(agent):
|
||
print("Enter your question (type 'exit' to quit):")
|
||
while True:
|
||
q = input("> ")
|
||
if q.lower() in ("exit", "quit"):
|
||
break
|
||
answer = agent.run(q)
|
||
print(f"Answer:\n{answer}")
|
||
|
||
def main():
|
||
parser = argparse.ArgumentParser(description="FAQ Bot CLI")
|
||
parser.add_argument("--preset", type=str, help="Comma‑separated preset questions")
|
||
parser.add_argument("--interactive", action="store_true", help="Interactive mode")
|
||
args = parser.parse_args()
|
||
|
||
# Load vector store
|
||
collection = load_faq_to_chroma()
|
||
agent = create_agent(collection)
|
||
|
||
if args.preset:
|
||
run_preset_questions(args.preset, agent)
|
||
elif args.interactive:
|
||
interactive_mode(agent)
|
||
else:
|
||
print("No mode selected. Use --preset or --interactive.")
|
||
sys.exit(1)
|
||
|
||
if __name__ == "__main__":
|
||
main()
|