Pokebot / app.py
jchauhan's picture
Added detoxio obervability
3095540
import os
from typing import List
import argparse
from pokebot.rag import RAGApp, AssistantRole
from traceloop.sdk import Traceloop
from traceloop.sdk.decorators import workflow, task
Traceloop.init(app_name="pokebot", disable_batch=False)
def _read_urls_from_file(filepath):
# If seed is provided, parse and load the URLs in an array
seed_list = []
if filepath:
with open(filepath, 'r') as file:
seed_list = [line.strip() for line in file.readlines()]
return seed_list
ASSISTANTS = {
"healthcare": AssistantRole("Your Healthcare AI Assistant",
_read_urls_from_file("data/med/articles/healthcare.txt"),
"diabetes"),
"diabetes": AssistantRole("Your Diabetes AI Assistant",
_read_urls_from_file("data/med/articles/diabetes.txt"),
"diabetes"),
"default": AssistantRole("Your Diabetes Lite AI Assistant",
["https://www.niddk.nih.gov/health-information/diabetes/overview/what-is-diabetes"],
"diabetes"),
}
def _start_vuln_rag(args):
assistant = ASSISTANTS.get(args.assistant_type, "default")
# Initialize and run the RAGApp
app = RAGApp(assistant=assistant)
app.run()
def main():
# Parse command-line arguments
parser = argparse.ArgumentParser(description='RAG App with command-line options.')
# Creating subparsers
subparsers = parser.add_subparsers(title='command', dest='command', description='Choose a command to start the app.')
# Subparser for the start command
rag_parser = subparsers.add_parser('rag', help='Manage the RAG app')
rag_subparser = rag_parser.add_subparsers(title='subcommand', dest='subcommand', description='Choose a sub command to start the app.')
rag_start_parser = rag_subparser.add_parser("start", help="Start the rag app")
rag_start_parser.add_argument('--assistant-type', type=str,
choices=["healthcare", "diabetes"],
default="default",
help='Assistant Type')
args = parser.parse_args()
args.command = 'rag'
args.subcommand = 'start'
args.assistant_type = 'healthcare'
if args.command == 'rag' and args.subcommand == 'start':
_start_vuln_rag(args)
else:
print("Please specify a valid subcommand.")
if __name__ == "__main__":
main()