From 1257196a39a70c003f463cecdd529052cd675760 Mon Sep 17 00:00:00 2001 From: Gustavo Araujo Costa Date: Mon, 29 Jul 2024 03:38:39 -0300 Subject: [PATCH] add tables and cols --- README.md | 11 +++---- poetry.lock | 2 +- pyproject.toml | 1 + simulacro_1.jpeg | Bin 0 -> 94423 bytes src/crucible/classes/Runner.py | 10 +------ src/crucible/streamlit_app.py | 53 +++++++++++++++++++++------------ src/crucible/utils/grading.py | 3 +- 7 files changed, 42 insertions(+), 38 deletions(-) create mode 100644 simulacro_1.jpeg diff --git a/README.md b/README.md index 8a6a270..b0486d7 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ Lightweight prompt evaluation package. -Uses [ollama](https://github.com/ollama/ollama-python) to run LLMs locally if needed. +Use online. Can also be used locally through streamlit. Can use [ollama](https://github.com/ollama/ollama-python) to run LLMs locally if necessary. -Cost estimation gives very rough estimates (input times 2). +Cost estimation is very rough (input \* 2). ## How to use @@ -59,11 +59,8 @@ Cost estimation gives very rough estimates (input times 2). ## TODO -- add 'get report' to runner -- fix: urgent does not call proper model -- turn query into an interface -- save logs in txt -- add [asyncio](https://github.com/ollama/ollama-python?tab=readme-ov-file#async-client) +- add tables +- add tests ## Resources diff --git a/poetry.lock b/poetry.lock index ef27650..ef85e68 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2009,4 +2009,4 @@ watchmedo = ["PyYAML (>=3.10)"] [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "39c1e5e8dd1c450ebbb17bc24b61903e750d4a6047c309a4f2155c2ab239758d" +content-hash = "a668f352b3903649e85fe345b9f540d5c855ebd1954b7fda00f0c20edfdba088" diff --git a/pyproject.toml b/pyproject.toml index a1fba77..6cceafe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,6 +14,7 @@ tiktoken = "^0.7.0" python-dotenv = "^1.0.1" ollama = "^0.2.1" streamlit = "^1.37.0" +pandas = "^2.2.2" [tool.poetry.group.dev.dependencies] diff --git a/simulacro_1.jpeg b/simulacro_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2dfe1f258805c5d68882ea0daa8da0f293fb9306 GIT binary patch literal 94423 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 L^8~8-Yy7_ek+dPh literal 0 HcmV?d00001 diff --git a/src/crucible/classes/Runner.py b/src/crucible/classes/Runner.py index d138a19..e45d80f 100644 --- a/src/crucible/classes/Runner.py +++ b/src/crucible/classes/Runner.py @@ -124,12 +124,4 @@ def calculate_costs(self) -> float: def _check_exists(self, *args) -> None: for arg in args: if arg is None: - raise ValueError(f"No globals provided for {arg}") - - def generate_report(self) -> str: - for task in self.tasks: - self.report.add_result(task) - - self.report.calculate_total_cost() - - return self.report.generate_report() + raise ValueError(f"No globals provided for {arg}") \ No newline at end of file diff --git a/src/crucible/streamlit_app.py b/src/crucible/streamlit_app.py index cabd995..d76463c 100644 --- a/src/crucible/streamlit_app.py +++ b/src/crucible/streamlit_app.py @@ -1,4 +1,6 @@ +import pandas as pd import streamlit as st + from crucible.utils.grading import GradingType from crucible.classes.Runner import Runner from crucible.classes.Model import Source @@ -22,8 +24,7 @@ st.caption("Lightweight prompt evaluation") st.caption("An AUTOMATON tool") -st.markdown("---") -st.subheader("Configuration") +st.header("Configuration") with st.expander("Models"): @@ -69,7 +70,7 @@ prompts.append(Prompt(prompt_id, prompt_slot, prompt_content)) -with st.expander("Variable"): +with st.expander("Variables"): n_var = st.number_input("Number of variables", min_value=1, max_value=20, value=2) variables = [] for i in range(int(n_var)): @@ -91,10 +92,11 @@ st.markdown("---") st.subheader("Other configs") -grading_type = st.selectbox( - "Select grading type", available_gradings, format_func=lambda x: x.name +a1, a2 = st.columns(2) +grading_type = a1.selectbox( + "Select grading type", available_gradings, format_func=lambda x: x.name.lower() ) -temperature = st.slider("Select temperature", 0.0, 1.0, 0.0, 0.2) +temperature = a2.slider("Select temperature", 0.0, 1.0, 0.0, 0.2) st.markdown("---") @@ -110,7 +112,7 @@ def click_button(): st.button("Compile", on_click=click_button) if st.session_state.compiled: - st.subheader("Summary:") + st.header("Summary:") runner = Runner( models=models, @@ -124,19 +126,20 @@ def click_button(): ) estimated_costs = runner.estimate_all_costs() - st.markdown("- **Models**") + c1, c2, c3 = st.columns(3) + c1.markdown("**Models**") for model in runner.models: - st.markdown(f"\t- {model.id}") + c1.markdown(f"\t- {model.id}") - st.markdown("- **Prompts**") + c2.markdown("**Prompts**") for prompt in runner.prompts: - st.markdown(f"\t- {prompt.id}") + c2.markdown(f"\t- {prompt.id}") - st.markdown("- **Variables**") + c3.markdown("**Variables**") for variable in runner.variables: - st.markdown(f"\t- {variable.id}") + c3.markdown(f"\t- {variable.id}") - st.markdown(f"**Grading Type**: {runner.grading_type}") + st.markdown(f"**Grading Type**: {runner.grading_type.name.lower()}") st.markdown(f"**Temperature**: {runner.temperature}") st.markdown(f"**Total cases**: {len(runner.tasks)}") st.markdown(f"**Estimated costs**: ${estimated_costs:.2f} USD") @@ -153,9 +156,21 @@ def click_button(): progress_bar.progress(progress, text="Running CRUCIBLE...") report = Report(runner) - result = report.__dict__ - st.subheader("Results:") - st.write(result) -# Uncomment and implement if needed -# st.download_button("Download report", file) + st.header("Results:") + col1, col2 = st.columns(2) + col1.metric("Cost (USD)", report.cost) + col2.metric("Time (seconds)", report.time) + + st.subheader("Per model:") + st.data_editor(pd.DataFrame(report.per_model)) + st.subheader("Per prompt:") + st.data_editor(pd.DataFrame(report.per_prompt)) + st.subheader("Per variable:") + st.data_editor(pd.DataFrame(report.per_variable)) + + st.subheader("All tasks:") + st.data_editor(pd.DataFrame(report.tasks)) + + st.subheader("Result(json):") + st.write(report.__dict__) diff --git a/src/crucible/utils/grading.py b/src/crucible/utils/grading.py index aee6b54..6284af4 100644 --- a/src/crucible/utils/grading.py +++ b/src/crucible/utils/grading.py @@ -41,11 +41,10 @@ def grade_response( content=GRADING_PROMPT.replace("{expected}", variable.expected[0]), ) - response = _model.query( + response, cost = _model.query( prompt=_prompt, variable=_variable, temp=0, - danger_mode=True, api_key=openai_api_key, )