import os import gradio as gr from langchain_community.utilities.sql_database import SQLDatabase from langchain_community.agent_toolkits import create_sql_agent from langchain_openai import ChatOpenAI ccms_db_loc = 'ccms.db' ccms_db = SQLDatabase.from_uri(f"sqlite:///{ccms_db_loc}") gpt4o = ChatOpenAI( model_name='gpt-4o', api_key=os.environ["OPENAI_API_KEY"], temperature=0 ) gpt35 = ChatOpenAI( model_name='gpt-3.5-turbo', api_key=os.environ["OPENAI_API_KEY"], temperature=0 ) sqlite_agent = create_sql_agent( gpt4o, db=ccms_db, agent_type="openai-tools", agent_executor_kwargs={'handle_parsing_errors':True}, verbose=True ) def predict(user_input): try: response = sqlite_agent.invoke(user_input) prediction = response['output'] except Exception as e: prediction = e return prediction textbox = gr.Textbox(placeholder="Enter your query here", lines=6) schema = 'The schema for the database is presented below: \n \n (Source: https://github.com/shrivastavasatyam/Credit-Card-Management-System)' demo = gr.Interface( inputs=textbox, fn=predict, outputs="text", title="Query a Credit Card Database", description="This web API presents an interface to ask questions on information stored in a credit card database.", article=schema, examples=[["Who are the top 5 merchants by total transactions?", ""]], cache_examples=False, concurrency_limit=8 ) demo.queue() demo.launch(auth=("demouser", os.getenv('PASSWD')))