Sakil's picture
Update app.py
b14297b verified
import streamlit as st
import pandas as pd
import logging
from IPython.display import Markdown, display
from llama_index.core.query_engine import PandasQueryEngine
from llama_index.llms.anthropic import Anthropic
logging.basicConfig(level=logging.INFO)
def main():
st.title('CSV Data Query Tool')
# Description
st.write("""
This app helps you query tabular data using natural language.
Upload a CSV file, enter your ANTHROPIC_API_KEY, ask a question about the data, and get a response!
""")
# Upload CSV file
uploaded_file = st.file_uploader("Upload CSV file", type=['csv'])
if uploaded_file is not None:
df = pd.read_csv(uploaded_file)
# Input API Key
api_key = st.text_input("Enter your ANTHROPIC_API_KEY:")
# Initialize Anthropic
if api_key:
llm = Anthropic(temperature=0.0, model='claude-3-opus-20240229', api_key=api_key)
query_engine = PandasQueryEngine(df=df, llm=llm, verbose=True)
# Input user question
question = st.text_input("Ask a question about the data:")
if st.button("Submit"):
if question:
response = query_engine.query(question)
st.markdown(f"**Response:** {response}")
if __name__ == "__main__":
main()