import click import uvicorn import sentry_sdk from app.core.settings import DEBUG, SENTRY_DSN from app.evaluation.evals import Evaluation, DEFAULT_TIDB_AI_CHAT_ENGINE if not DEBUG: sentry_sdk.init( dsn=SENTRY_DSN, # Set traces_sample_rate to 1.0 to capture 100% # of transactions for performance monitoring. traces_sample_rate=1.0, # Set profiles_sample_rate to 1.0 to profile 100% # of sampled transactions. # We recommend adjusting this value in production. profiles_sample_rate=1.0, ) @click.group(context_settings={'max_content_width': 150}) def cli(): pass @cli.command() @click.option('--host', default='127.0.0.1', help="Host, default=127.0.0.1") @click.option('--port', default=3000, help="Port, default=3000") def runserver(host, port): uvicorn.run( "app.main:app", host=host, port=port, reload=DEBUG, log_level="debug" ) @cli.command() @click.option('--dataset', default='regression', help="Dataset name, default=regression") @click.option('--llm-provider', default='openai', help="LLM provider, default=openai, options=[openai, google]") @click.option('--run-name', default=None, help="Run name, default=None") @click.option('--tidb-ai-chat-engine', default=DEFAULT_TIDB_AI_CHAT_ENGINE, help=f"TiDB AI chat engine, default={DEFAULT_TIDB_AI_CHAT_ENGINE}") def runeval(dataset, llm_provider, run_name, tidb_ai_chat_engine): eval = Evaluation( dataset_name=dataset, llm_provider=llm_provider, run_name=run_name, tidb_ai_chat_engine=tidb_ai_chat_engine, ) eval.run() if __name__ == '__main__': cli()