Cli with ping for llamaindex
This commit is contained in:
61
services/rag/llamaindex/cli.py
Normal file
61
services/rag/llamaindex/cli.py
Normal file
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
CLI entry point for the RAG solution using LlamaIndex and Qdrant.
|
||||
"""
|
||||
|
||||
import click
|
||||
from loguru import logger
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def setup_logging():
|
||||
"""Setup logging with loguru to file and stdout."""
|
||||
# Create logs directory if it doesn't exist
|
||||
logs_dir = Path("logs")
|
||||
logs_dir.mkdir(exist_ok=True)
|
||||
|
||||
# Remove default logger to customize it
|
||||
logger.remove()
|
||||
|
||||
# Add file handler with rotation
|
||||
logger.add(
|
||||
"logs/dev.log",
|
||||
rotation="10 MB",
|
||||
retention="10 days",
|
||||
level="INFO",
|
||||
format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {file}:{line} | {message}"
|
||||
)
|
||||
|
||||
# Add stdout handler
|
||||
logger.add(
|
||||
sys.stdout,
|
||||
level="INFO",
|
||||
format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}",
|
||||
colorize=True
|
||||
)
|
||||
|
||||
|
||||
@click.group()
|
||||
@click.version_option(version='1.0.0')
|
||||
def main():
|
||||
"""Main CLI entry point for the RAG solution."""
|
||||
setup_logging()
|
||||
logger.info("Starting RAG solution CLI")
|
||||
|
||||
|
||||
@main.command(help="Basic connectivity test that returns 'pong'")
|
||||
@click.option('--verbose', '-v', is_flag=True, help="Enable verbose output")
|
||||
def ping(verbose):
|
||||
"""Ping command that outputs 'pong'."""
|
||||
if verbose:
|
||||
logger.info("Executing ping command")
|
||||
click.echo("pong")
|
||||
logger.info("Ping command completed successfully")
|
||||
else:
|
||||
click.echo("pong")
|
||||
logger.info("Ping command executed")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user