PandasAI, OpenAI and Streamlit - Analyzing File Uploads with User Prompts

Поделиться
HTML-код
  • Опубликовано: 30 ноя 2024

Комментарии • 95

  • @CarlosArranz-b1v
    @CarlosArranz-b1v Год назад +11

    I was actually going to ask how to display graphs on the web before i finished the video, but i did manage to figure it out on my own. You have to set PandasAI(llm,save_charts=True), then have code in the display anser logic that detects if the number of files in the folder where the images are stored changes, and display the latest image. You would need to do something else like checking for the specific filenames if you had concurrent users in your app but for now it's enough.
    answer=pandas_ai.run(st.session_state.df,question)
    if st.session_state.count

    • @aniketwdubey
      @aniketwdubey 14 дней назад

      Even though it renders on the UI, it also opens in a new window. How can I stop this behavior?

  • @shuntera
    @shuntera Год назад +4

    This is awesome. Have never heard of streamlit before and my mind is racing with what I can do with this on top of Pandas and ChatGPT

    • @bugbytes3923
      @bugbytes3923  Год назад

      Thanks! Lots of possibilities with Streamlit and these other tools.

  • @roberthuff3122
    @roberthuff3122 Год назад +3

    Great! Very well done. I don't see the project in the GitHub repo.

  • @pereganranwei2153
    @pereganranwei2153 Год назад +2

    Great resource would love more content relating to deploying Open AI ML solutions on streamlit

  • @danquixote6072
    @danquixote6072 Год назад +2

    This was really good. Would certainly be keen to know how to extend the functionality of this - for example, allow other users to input their own Open AI keys. Would also like to see how this is done in Flask too.

  • @zac1427
    @zac1427 Год назад +2

    thank you! I had this idea in my head and found this video on youtube!

    • @bugbytes3923
      @bugbytes3923  Год назад +1

      You're welcome! Thanks for watching.

  • @mocanada304
    @mocanada304 Год назад +3

    Hi,
    Thanks for the amazing video. I tried very hard to give you an answer while asking ChatGPT for help.
    The issue I see and ChatGPT 4 acknowledges too, is that the answer provided by chatgpt is not in the format that one can use to display the graph within the streamlit directly. Maybe you need to add a check condition if the data is plottable then use st.pyplot() ?
    Below is the code snippet for displaying charts using streamlit in the browswer.
    ---
    import streamlit as st
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    # Create a random DataFrame for demonstration
    df = pd.DataFrame({
    'A': np.random.rand(50),
    'B': np.random.rand(50) + 1
    })
    # Create a figure and axes
    fig, ax = plt.subplots(figsize=(10, 5))
    # Plot a bar chart using the DataFrame
    ax.bar(df.index, df['A'], label='A')
    ax.bar(df.index, df['B'], bottom=df['A'], label='B')
    ax.legend(loc='upper left')
    ax.set_title("Bar Chart")
    ax.set_xlabel("Index")
    ax.set_ylabel("Value")
    # Display the chart with Streamlit
    st.pyplot(fig)

    • @bugbytes3923
      @bugbytes3923  Год назад

      Thanks! And yeah, good idea! I'll have a play around with it, and see if I can get it working.

    • @ordaflash
      @ordaflash Год назад +1

      please can you give some more details about your solution ?
      i cannot handle how from the response generated, we could print it as a plot
      in the example you have given, you creates a new chart. but in our case we need to display the chart generated by the AI no ?
      Thank you !

  • @ciprianchamps
    @ciprianchamps Год назад +1

    hi @BugBytes , i have this error when i try to upload the file: "AxiosError: Request failed with status code 403" and i put correctly the API-keyand the libs, any idea?

  • @techitint.9100
    @techitint.9100 7 месяцев назад

    Well explained and straight to the point, thanks so much for your video.

  • @SOHAILKHAN-iu8fu
    @SOHAILKHAN-iu8fu Год назад +1

    One of the best channel on youtube

  • @graczew
    @graczew Год назад +2

    Good stuff as always. 👍👍👍

  • @premmanu6557
    @premmanu6557 4 месяца назад +1

    What version of pandas ai did you use, because i keep getting a error when using from pandas import pandasia

  • @aniketwdubey
    @aniketwdubey 14 дней назад

    It triggers download of the image instead of displaying it(let's say on a streamlit app). I expected the image to be shown directly in my application. Is there a way?
    response = df.chat(user_input) # Get response from SmartDataframe
    st.image(response, use_container_width=True)
    The above code renders on the UI but also opens a new window. How can I stop this behavior?

  • @sowjanya656
    @sowjanya656 2 месяца назад

    Hi Its awesome video. Very informative. I have doubt. Can we use DEV_GENAI_API_KEY instead of OPENAI_API_KEY. will it work as this is working

  • @SANJIVRAI6693
    @SANJIVRAI6693 Год назад +1

    Great tutorial, can you show us how to do this with a offline LLM Model where the data is private and processed locally.

  • @JiteshPatil518
    @JiteshPatil518 6 месяцев назад +1

    Hi...Getting below error while running the app
    ImportError: cannot import name ‘PandasAI’ from ‘pandasai’ (C:\Users\RONALD AINEBYONA\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandasai_init_.py)

    • @abhishekbhattacherjee8873
      @abhishekbhattacherjee8873 6 месяцев назад

      same error facing. were you able resolve this.

    • @aniketwdubey
      @aniketwdubey 14 дней назад

      @@abhishekbhattacherjee8873 you need to use use SmartDataframe

  • @jpcam4781
    @jpcam4781 Год назад

    Bloody brilliant! Is it trivial to scale this to 'read' a pdf with multiple tables and converting the tables into csvs? I am thinking of a use case where the user uploads a pdf of financial statements? Have you try your example using st.session_state? And conversation buffer memory or does this not work with pandasai?

  • @WhySoBroke
    @WhySoBroke 8 месяцев назад

    Great video!! Have you found any updated way or easier to run Pandas AI to analyze data? Many thanks in advance!

  • @TheLbachtschin
    @TheLbachtschin Год назад +1

    Great job! Thanks!!

    • @bugbytes3923
      @bugbytes3923  Год назад

      You're welcome - thank you for watching!

  • @yenaung7643
    @yenaung7643 5 месяцев назад

    Which pandasai version do you use?

  • @rodrigokitsuro5753
    @rodrigokitsuro5753 Год назад +1

    Amazing content! 🦾 As a 'not developer' that is just starting with Python and OpenAI for work, this video was so helpful, i really apreciate it!
    In order to ad a new text_area for a new prompt, related to the last PandasAI response, which would be the next code lines i should use to achieve this?

    • @bugbytes3923
      @bugbytes3923  Год назад +1

      Thank you Rodrigo! Glad it was helpful.
      Given the response, you could store that in a variable, and use the response as part of the prompt for the next call to pandas_ai.run().
      The rest of the prompt can be constructed with another text_area from Streamlit.
      There's also a helpful library called "langchain" that's good for building apps with multiple calls to LLMs. Not sure at the moment how well it integrates with PandasAI, but I'll do a video on langchain soon too.
      Thanks again!

    • @rodrigokitsuro5753
      @rodrigokitsuro5753 Год назад

      @@bugbytes3923 Thank you a lot again!! I'll be waiting this video! 🙌

  • @Ego_Maritm
    @Ego_Maritm Год назад +1

    Great Job bro💪

  • @EmptyNonsens
    @EmptyNonsens Год назад

    Private LLM tut would be amazing

  • @Diana-zo2ut
    @Diana-zo2ut 6 месяцев назад

    Thanks, Can we do this with images?

  • @evansmwakughu8562
    @evansmwakughu8562 8 месяцев назад

    Hello BugBytes, can you create a video instead of connecting to open AI you use open source llms? That could be great thank you.

  • @glory_vn7085
    @glory_vn7085 Год назад

    For Generating Charts,we can make a tricky:
    llm = OpenAI()
    df = SmartDataframe(df, config={"llm": llm})
    df.chat('Plot the histogram of countries showing for each the gdp')
    from PIL import Image
    image = Image.open('exports/charts/temp_chart.png')
    st.image(image, caption='')
    #########
    'exports/charts/temp_chart.png', this can be found from "print(df.last_code_generated)"

    • @ordaflash
      @ordaflash Год назад

      please can you give more details about your solution ?

    • @jamesstover718
      @jamesstover718 11 месяцев назад +1

      This code works, but with latest pandasai the filename now that I get is a long unique file name. So, I had to add code to extract the relative path to my app with the unique filename and then display it. Wish this was handled better by the pandasai library, but it works. I have an issue though when plotting some charts like a horizontal bar chart where the png image file is chopping off the front of the y-axis labels. Always something to battle.

    • @karthikvb1293
      @karthikvb1293 10 месяцев назад

      Even though it's rendering on UI, Still it also opens in new window. How to stop that?

    • @aniketwdubey
      @aniketwdubey 14 дней назад

      @@karthikvb1293 Have you managed to figure this out?

  • @vashisht1
    @vashisht1 Год назад

    On pandasai Github page under security the guy has given some info if you want to keep your data privacy. I think one can use that..

  • @SuperLiberty2008
    @SuperLiberty2008 Год назад

    how to set up function description? you have pop-up clue for every function

  • @gustavomonne4921
    @gustavomonne4921 Год назад +1

    Awseme video, thanks

  • @mohammedabdelgalil5860
    @mohammedabdelgalil5860 Год назад

    Thank you so much for the help! I was not able to get it to work on streamlit cloud though only locally any info there? I would truly appreciate it

  • @visheshgupta2048
    @visheshgupta2048 Год назад +1

    That is Awesome, I also created something similar, but I was wondering if we can plot this visualization inside the streamlit application instead of separately. Is there any other way ?

    • @bugbytes3923
      @bugbytes3923  Год назад +1

      Thanks! Not found a way to do this yet, but I'm sure it's possible.

    • @visheshgupta2048
      @visheshgupta2048 Год назад

      @@bugbytes3923 okay thanks for your reply

    • @binoyxbabu
      @binoyxbabu Год назад +1

      ​@@bugbytes3923could you pls find that way and do another video or comment here...that wil be awesome

    • @binoyxbabu
      @binoyxbabu 11 месяцев назад

      I have found it and it worked well (use pyplot figure method)

  • @RedCloudServices
    @RedCloudServices Год назад +1

    I built a streamlit app with a Folium map can you make a video which interacts with a Folium map? that would be an interesting use case.

    • @bugbytes3923
      @bugbytes3923  Год назад +1

      Good idea! Will look into that one.

  • @onnot701
    @onnot701 Год назад +1

    this is great!

  • @Ashmanpan
    @Ashmanpan 10 месяцев назад

    Possible to do pandasAi with opensourse models?

  • @techystu5823
    @techystu5823 Год назад

    Everything was working fine until I added the from pandasai import PandasAI and then i get an error on my streamlit page says No module named 'bs4'. Can you please help

    • @bugbytes3923
      @bugbytes3923  Год назад

      Not sure why that is, but you can try installing that library with the command:
      pip install BeautifulSoup4

  • @latestmoviesforall
    @latestmoviesforall Год назад

    how can i create a virtual environment? using windows. when i creat the two file main.py and .env, i don't seen the ( venv-llm) PS: any help plz.
    thanks for the knowledge you shared

    • @bugbytes3923
      @bugbytes3923  Год назад +1

      Hey - you can try the following:
      1. python -m venv ./venv-llm
      2. ./venv-llm/Scripts/activate
      3. pip install (enter the package names you want to use)

    • @latestmoviesforall
      @latestmoviesforall Год назад

      thank you@@bugbytes3923 , I put the code in a new terminal in the C path at the end , and it gives me this message : "Python not found. Run without arguments to proceed." what should I do please ?

  • @vinaysr6617
    @vinaysr6617 8 месяцев назад +1

    Some of these have been revised. PadasAI is imported as smartdataframe

    • @bugbytes3923
      @bugbytes3923  8 месяцев назад +1

      Thanks for pointing that out. Might try and do a follow-up!

    • @abhishekbhattacherjee8873
      @abhishekbhattacherjee8873 6 месяцев назад

      can you send the revised code using the Smartdataframe

  • @MahalingamBalasubramanian
    @MahalingamBalasubramanian 10 месяцев назад

    It seems this code is not supporting graphs, I am getting below response
    Generating an answer, please wait...
    The bar chart for the top 3 Organization Names by Number of employees is displayed on the axes with coordinates (0.125,0.11) and a size of 0.775x0.77.

  • @jaysonmagdamit4784
    @jaysonmagdamit4784 Год назад

    how can i create a virtual environment? using mac - Thanks!

    • @bugbytes3923
      @bugbytes3923  Год назад

      Hey Jayson - you can run the following commands (change 'my-venv' to any name you like):
      --
      python3 -m venv my-venv
      source my-venv/bin/activate
      --
      The first command will create the environment using Python's built-in "venv" module.
      The second command activates the environment - once activated, you can install external packages into this environment.

  • @zac1427
    @zac1427 Год назад

    Guys ! I found a way to show plot in web app !
    if st.button("Generate"):
    if prompt:
    with st.spinner("Generating response..."):
    answer = pandas_ai.run(st.session_state.df,prompt)
    fig_number = plt.get_fignums()
    if fig_number:
    st.pyplot(plt.gcf())
    else:
    st.write(answer)

    • @bugbytes3923
      @bugbytes3923  Год назад +1

      Nice! Thanks for sharing that!

    • @visheshgupta2048
      @visheshgupta2048 Год назад

      Hi, I used your code, and it is working on the local machine. But this code does not satisfy requirements after deploying it. Do you have any idea about this ?

    • @zac1427
      @zac1427 Год назад

      @@visheshgupta2048 did you use aws ? make sure you let your virtual machine download all the packages in the requirement. It took me a while to fix the bug when I deploy it on AWS

    • @visheshgupta2048
      @visheshgupta2048 Год назад

      @@zac1427 no, I used github and streamlit to deploy. Does AWS works? To show graph in the deployed server.

  • @iwhiteside
    @iwhiteside Год назад

    Hi Bugbytes I am new to python your videos are great I am getting an error from your code PandasAI is not defined I am sure I did something wrong

    • @AshWickramasinghe
      @AshWickramasinghe Год назад

      the library got updated and the new version isn't using the PandasAI

  • @anupgeorge2261
    @anupgeorge2261 Год назад

    Super

  • @binoyxbabu
    @binoyxbabu Год назад

    Bro, i really liked your video but could you reply or do another video that how could we bring graphs also to our streamlit page rather showing it in a seperate window like in this video. I think with that its 100% and a complete product....i know you said that its possible but matter of finding it how 😊

  • @anouarben779
    @anouarben779 Год назад

    Are OpenAI API keys free or what,
    Mine requires credits is it the same for everyone?!

    • @unl0ck998
      @unl0ck998 Год назад

      OpenAI API is not free

  • @barutistudio1397
    @barutistudio1397 Год назад

    Can we get the code?

  • @betenu1
    @betenu1 Год назад +1

    The women and children were more likely to survive because they were put on the lifeboats first.

  • @pidswing5334
    @pidswing5334 Год назад

    Hey BugBytes! The responses provided by my model were very raw for example, when asked about the fare price, I received the response, "32.204207968574636". Can you help me with why is this the case?

  • @shekarshekar4988
    @shekarshekar4988 Год назад

    Hi Mate,
    In the below comments,@zac1427 found a way to display the charts on the frontend.
    But I have played around with the code he/she mentoined. But It hasn't worked.
    import matplotlib.pyplot as plt
    if st.button("Submit"):
    if a:
    with st.spinner("Please Wait....."):
    b=Pandas_ai.run(df, prompt = a)
    fig_number = plt.get_fignums()
    if fig_number:
    st.pyplot(plt.gcf())
    else:
    st.write(b)
    I am receiving the below warning and couldn't not able to display charts.
    UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so it cannot show the figure. Please let us know if it's worked or if you have found any other way.