- install uv if needed: https://docs.astral.sh/uv/getting-started/installation/
- install python environment:
uv sync - Fill in API keys in .env file
- Run streamlit via
uv run streamlit run main.py
- data is not sent to LLM, just the description of the data
- LLM is instructed to generate code, code is run in user's python environment with
exec, which is not the best practice but is the only way I know how to get the code to run
- handle multiple data files for one analysis: data.csv, sample_info.csv
- files workspace should look more like a regular file browser ex) NerdTree, Finder...
- fix right pane output -- currently uses streamlit's st.pyplot, which captures latest output; need to save output to disk in agreed layout (folder structure) so results are portable
- implement chat / code / output history
- everything should be saved to disk
- streamlit should not have in-memory state wrt data / code / output, it should be pure function of workspace
- use case: user wants to modify data, they can do it themselves or ask LLM to do it and save it
- option to use current code output as context, or start from scratch: currently every generation starts from scratch
- error handling: when visualization fails (usually due to error in code), agent should automatically try to rerun, at least a couple times
- new library -- handle PyComplexHeatmap, which generates nicer heatmaps but requires
- currently, code executor just returns plt.gcf() and any print statements. Is there a good way to get one agent to write code to save figures to disk, and another agent to consolidate output to a report?
- include documentation for most common figures (heatmap, clustermap) as context
- add mermaid plot in explanation tab
- 사용자가 작성한 채팅에 대해 ‘ex) heatmap 그려줘 등‘ AI가 파악하여 heatmap에 필요한 정보들을 사용자에게 힌트 목록을 제시해준다.
- 참고할 레퍼런스(그래프나 그림, 글?)를 삽입하여 정확도를 높인다. 보통 연구자들은 논문에 구현된 figure를 따라 그리기 때문
- implement letter by letter writing animation for generated code
- enable streaming in API calls
- set up server endpoint to stream response
- create frontend component to rcv stream and update display char by char
- css transitions
- voice input -- talk to LLM
