From a8c45e53891bf1e7bac7d759cab42cf512d13191 Mon Sep 17 00:00:00 2001 From: Shabie Iqbal Date: Mon, 26 Aug 2024 00:38:37 +0200 Subject: [PATCH] fix: move doc to root --- .gitignore | 37 ----- site/404.html => 404.html | 0 .../CONTRIBUTING => CONTRIBUTING}/index.html | 0 README.md | 124 --------------- {site/assets => assets}/images/favicon.png | Bin .../javascripts/bundle.af256bd8.min.js | 0 .../javascripts/bundle.af256bd8.min.js.map | 0 .../javascripts/lunr/min/lunr.ar.min.js | 0 .../javascripts/lunr/min/lunr.da.min.js | 0 .../javascripts/lunr/min/lunr.de.min.js | 0 .../javascripts/lunr/min/lunr.du.min.js | 0 .../javascripts/lunr/min/lunr.el.min.js | 0 .../javascripts/lunr/min/lunr.es.min.js | 0 .../javascripts/lunr/min/lunr.fi.min.js | 0 .../javascripts/lunr/min/lunr.fr.min.js | 0 .../javascripts/lunr/min/lunr.he.min.js | 0 .../javascripts/lunr/min/lunr.hi.min.js | 0 .../javascripts/lunr/min/lunr.hu.min.js | 0 .../javascripts/lunr/min/lunr.hy.min.js | 0 .../javascripts/lunr/min/lunr.it.min.js | 0 .../javascripts/lunr/min/lunr.ja.min.js | 0 .../javascripts/lunr/min/lunr.jp.min.js | 0 .../javascripts/lunr/min/lunr.kn.min.js | 0 .../javascripts/lunr/min/lunr.ko.min.js | 0 .../javascripts/lunr/min/lunr.multi.min.js | 0 .../javascripts/lunr/min/lunr.nl.min.js | 0 .../javascripts/lunr/min/lunr.no.min.js | 0 .../javascripts/lunr/min/lunr.pt.min.js | 0 .../javascripts/lunr/min/lunr.ro.min.js | 0 .../javascripts/lunr/min/lunr.ru.min.js | 0 .../javascripts/lunr/min/lunr.sa.min.js | 0 .../lunr/min/lunr.stemmer.support.min.js | 0 .../javascripts/lunr/min/lunr.sv.min.js | 0 .../javascripts/lunr/min/lunr.ta.min.js | 0 .../javascripts/lunr/min/lunr.te.min.js | 0 .../javascripts/lunr/min/lunr.th.min.js | 0 .../javascripts/lunr/min/lunr.tr.min.js | 0 .../javascripts/lunr/min/lunr.vi.min.js | 0 .../javascripts/lunr/min/lunr.zh.min.js | 0 .../javascripts/lunr/tinyseg.js | 0 .../javascripts/lunr/wordcut.js | 0 .../workers/search.b8dbb3d2.min.js | 0 .../workers/search.b8dbb3d2.min.js.map | 0 .../stylesheets/main.3cba04c6.min.css | 0 .../stylesheets/main.3cba04c6.min.css.map | 0 .../stylesheets/palette.06af60db.min.css | 0 .../stylesheets/palette.06af60db.min.css.map | 0 docs/CONTRIBUTING.md | 19 --- docs/index.md | 121 -------------- .../humans-tell-me-how-to-grade.jpeg | Bin site/index.html => index.html | 0 mkdocs.yml | 38 ----- pyproject.toml | 95 ----------- {site/search => search}/search_index.json | 0 site/images/humans-tell-me-how-to-grade.jpeg | Bin 147500 -> 0 bytes site/sitemap.xml => sitemap.xml | 0 site/sitemap.xml.gz => sitemap.xml.gz | Bin src/grading_notes/__about__.py | 8 - src/grading_notes/__init__.py | 3 - src/grading_notes/main.py | 147 ------------------ tests/unit/__init__.py | 0 tests/unit/test_main.py | 57 ------- 62 files changed, 649 deletions(-) delete mode 100644 .gitignore rename site/404.html => 404.html (100%) rename {site/CONTRIBUTING => CONTRIBUTING}/index.html (100%) delete mode 100644 README.md rename {site/assets => assets}/images/favicon.png (100%) rename {site/assets => assets}/javascripts/bundle.af256bd8.min.js (100%) rename {site/assets => assets}/javascripts/bundle.af256bd8.min.js.map (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.ar.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.da.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.de.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.du.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.el.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.es.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.fi.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.fr.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.he.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.hi.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.hu.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.hy.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.it.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.ja.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.jp.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.kn.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.ko.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.multi.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.nl.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.no.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.pt.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.ro.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.ru.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.sa.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.stemmer.support.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.sv.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.ta.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.te.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.th.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.tr.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.vi.min.js (100%) rename {site/assets => assets}/javascripts/lunr/min/lunr.zh.min.js (100%) rename {site/assets => assets}/javascripts/lunr/tinyseg.js (100%) rename {site/assets => assets}/javascripts/lunr/wordcut.js (100%) rename {site/assets => assets}/javascripts/workers/search.b8dbb3d2.min.js (100%) rename {site/assets => assets}/javascripts/workers/search.b8dbb3d2.min.js.map (100%) rename {site/assets => assets}/stylesheets/main.3cba04c6.min.css (100%) rename {site/assets => assets}/stylesheets/main.3cba04c6.min.css.map (100%) rename {site/assets => assets}/stylesheets/palette.06af60db.min.css (100%) rename {site/assets => assets}/stylesheets/palette.06af60db.min.css.map (100%) delete mode 100644 docs/CONTRIBUTING.md delete mode 100644 docs/index.md rename {docs/images => images}/humans-tell-me-how-to-grade.jpeg (100%) rename site/index.html => index.html (100%) delete mode 100644 mkdocs.yml delete mode 100644 pyproject.toml rename {site/search => search}/search_index.json (100%) delete mode 100644 site/images/humans-tell-me-how-to-grade.jpeg rename site/sitemap.xml => sitemap.xml (100%) rename site/sitemap.xml.gz => sitemap.xml.gz (100%) delete mode 100644 src/grading_notes/__about__.py delete mode 100644 src/grading_notes/__init__.py delete mode 100644 src/grading_notes/main.py delete mode 100644 tests/unit/__init__.py delete mode 100644 tests/unit/test_main.py diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 65e3d8c..0000000 --- a/.gitignore +++ /dev/null @@ -1,37 +0,0 @@ -# Python -__pycache__/ -*.py[cod] -*.so - -# Virtual environments -venv/ -.venv/ -env/ -.env - -# IDEs and editors -.vscode/ -.idea/ -*.swp -*.swo -.ruff_cache/ - -# OS generated files -.DS_Store -Thumbs.db - -# Distribution / packaging -dist/ -build/ -*.egg-info/ - -# Test coverage -.coverage -htmlcov/ -.pytest_cache/ - -# Logs -*.log - -# Documentation -site/ \ No newline at end of file diff --git a/site/404.html b/404.html similarity index 100% rename from site/404.html rename to 404.html diff --git a/site/CONTRIBUTING/index.html b/CONTRIBUTING/index.html similarity index 100% rename from site/CONTRIBUTING/index.html rename to CONTRIBUTING/index.html diff --git a/README.md b/README.md deleted file mode 100644 index 96df3db..0000000 --- a/README.md +++ /dev/null @@ -1,124 +0,0 @@ -# Grading Notes - -
- Grading Notes -
- -Grading Notes is a Python package that leverages Large Language Models (LLMs) as automated judges for evaluating AI-generated answers against human-written grading criteria. The repo is based on the awesome post by [Databricks](https://www.databricks.com/blog/enhancing-llm-as-a-judge-with-grading-notes). The idea is to guide LLMs wtih simple grading notes rather than provide full ground truth answers thereby lowering the cost of creating ground truth data. - -Inspired by the awesome post by [Databricks](https://www.databricks.com/blog/enhancing-llm-as-a-judge-with-grading-notes) - -## Key Features - -- **LLM-powered Evaluation**: Harness the intelligence of LLMs guided by humans to evaluate AI-generated answers. -- **Flexible AI Providers**: Support for multiple LLM providers, including Anthropic's Claude and OpenAI's GPT models. -- **Bulk Processing**: Evaluate multiple questions and answers efficiently using CSV files. - -## Installation - -You can install the Grading Notes package using pip: - -```bash -pip install grading-notes -``` - -## Quick Start - -```python -from grading_notes import GradingNote, evaluate, get_judge - -# set ANTHROPIC_API_KEY and OPENAI_API_KEY env. variables - -# create a judge -judge = get_judge(provider="anthropic", model="claude-3-5-sonnet-20240620") - -# create a grading note -grade_note = GradingNote( - question="What is the capital of France?", - grading_note="Answer is 'Paris'. Accept case-insensitive variations." -) - -# evaluate an answer -result = evaluate(judge=judge, grading_note=grade_note, answer="Paris") -print(result) # True -``` - -### More complex examples - -Here is one complex example inspired from the Databricks post (answer generated by Gemini): - -```python -grade_note = GradingNote( -question="How do I drop all tables in a Unity Catalog schema?", - -grading_note="The response should contain steps to get all table names then \ -drop each of them. Alternatively the response can suggest dropping the entire \ -schema with risks explained. The response should not treat tables as views." -) - -answer = """Unfortunately, Unity Catalog doesn't currently provide a direct -way to drop all tables within a schema with a single command. You'll need to -list the tables in the schema and then drop them individually. - -Here's a breakdown of how you could approach this using Databricks SQL: - -1. List the Tables in the Schema using Python notebook - -You can use the SHOW TABLES command to get a list of tables within your schema: - -%sql -SHOW TABLES IN your_db_name.your_schema_name; - -2. Drop Each Table -You can use the DROP TABLE command to drop each table: - -tables = spark.sql("SHOW TABLES IN your_db_name.your_schema_name").collect() - -for table in tables: - table_name = table["tableName"] - spark.sql(f"DROP TABLE your_db_name.your_schema_name.{table_name}") -""" - -result = evaluate(judge=judge, grading_note=grade_note, answer=answer) -print(result) # True -``` - -## Main Components - -- `evaluate`: Function to evaluate an answer against a grading note. Optionally takes an answer. -- `evaluate_from_csv`: Function to evaluate multiple questions and answers from a CSV file. Optionally takes an answer. -- `GradingNote`: Represents the grading criteria for a specific question. -- `Judge`: Represents the judge client for different AI providers. -- `Evaluation`: Represents the evaluation result (Good or Bad). -- `get_judge`: Function to create an Judge for different AI providers. - -## CSV Evaluation - -You can evaluate multiple questions and answers using a CSV file: - -```python -from grading_notes import get_judge, evaluate_from_csv -judge = get_judge(provider="openai", model="gpt-4-turbo-preview") -results = evaluate_from_csv(judge=judge, csv_file="path/to/your/csv_file.csv") -``` - -The CSV file should have columns `question`, `grading_note`, and `answer`. - -## Customization - -The repo currently supports Anthropic and OpenAI through the instructor library. - -## Environment Variables - -Make sure to set the following environment variables: - -- `ANTHROPIC_API_KEY`: Your Anthropic API key -- `OPENAI_API_KEY`: Your OpenAI API key - -## License - -This project is licensed under the Apache 2.0 License. - -## Contributing - -We welcome contributions! Please see our [Contributing Guide](docs/CONTRIBUTING.md) for more details. diff --git a/site/assets/images/favicon.png b/assets/images/favicon.png similarity index 100% rename from site/assets/images/favicon.png rename to assets/images/favicon.png diff --git a/site/assets/javascripts/bundle.af256bd8.min.js b/assets/javascripts/bundle.af256bd8.min.js similarity index 100% rename from site/assets/javascripts/bundle.af256bd8.min.js rename to assets/javascripts/bundle.af256bd8.min.js diff --git a/site/assets/javascripts/bundle.af256bd8.min.js.map b/assets/javascripts/bundle.af256bd8.min.js.map similarity index 100% rename from site/assets/javascripts/bundle.af256bd8.min.js.map rename to assets/javascripts/bundle.af256bd8.min.js.map diff --git a/site/assets/javascripts/lunr/min/lunr.ar.min.js b/assets/javascripts/lunr/min/lunr.ar.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.ar.min.js rename to assets/javascripts/lunr/min/lunr.ar.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.da.min.js b/assets/javascripts/lunr/min/lunr.da.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.da.min.js rename to assets/javascripts/lunr/min/lunr.da.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.de.min.js b/assets/javascripts/lunr/min/lunr.de.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.de.min.js rename to assets/javascripts/lunr/min/lunr.de.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.du.min.js b/assets/javascripts/lunr/min/lunr.du.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.du.min.js rename to assets/javascripts/lunr/min/lunr.du.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.el.min.js b/assets/javascripts/lunr/min/lunr.el.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.el.min.js rename to assets/javascripts/lunr/min/lunr.el.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.es.min.js b/assets/javascripts/lunr/min/lunr.es.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.es.min.js rename to assets/javascripts/lunr/min/lunr.es.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.fi.min.js b/assets/javascripts/lunr/min/lunr.fi.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.fi.min.js rename to assets/javascripts/lunr/min/lunr.fi.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.fr.min.js b/assets/javascripts/lunr/min/lunr.fr.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.fr.min.js rename to assets/javascripts/lunr/min/lunr.fr.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.he.min.js b/assets/javascripts/lunr/min/lunr.he.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.he.min.js rename to assets/javascripts/lunr/min/lunr.he.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.hi.min.js b/assets/javascripts/lunr/min/lunr.hi.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.hi.min.js rename to assets/javascripts/lunr/min/lunr.hi.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.hu.min.js b/assets/javascripts/lunr/min/lunr.hu.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.hu.min.js rename to assets/javascripts/lunr/min/lunr.hu.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.hy.min.js b/assets/javascripts/lunr/min/lunr.hy.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.hy.min.js rename to assets/javascripts/lunr/min/lunr.hy.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.it.min.js b/assets/javascripts/lunr/min/lunr.it.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.it.min.js rename to assets/javascripts/lunr/min/lunr.it.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.ja.min.js b/assets/javascripts/lunr/min/lunr.ja.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.ja.min.js rename to assets/javascripts/lunr/min/lunr.ja.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.jp.min.js b/assets/javascripts/lunr/min/lunr.jp.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.jp.min.js rename to assets/javascripts/lunr/min/lunr.jp.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.kn.min.js b/assets/javascripts/lunr/min/lunr.kn.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.kn.min.js rename to assets/javascripts/lunr/min/lunr.kn.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.ko.min.js b/assets/javascripts/lunr/min/lunr.ko.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.ko.min.js rename to assets/javascripts/lunr/min/lunr.ko.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.multi.min.js b/assets/javascripts/lunr/min/lunr.multi.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.multi.min.js rename to assets/javascripts/lunr/min/lunr.multi.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.nl.min.js b/assets/javascripts/lunr/min/lunr.nl.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.nl.min.js rename to assets/javascripts/lunr/min/lunr.nl.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.no.min.js b/assets/javascripts/lunr/min/lunr.no.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.no.min.js rename to assets/javascripts/lunr/min/lunr.no.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.pt.min.js b/assets/javascripts/lunr/min/lunr.pt.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.pt.min.js rename to assets/javascripts/lunr/min/lunr.pt.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.ro.min.js b/assets/javascripts/lunr/min/lunr.ro.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.ro.min.js rename to assets/javascripts/lunr/min/lunr.ro.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.ru.min.js b/assets/javascripts/lunr/min/lunr.ru.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.ru.min.js rename to assets/javascripts/lunr/min/lunr.ru.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.sa.min.js b/assets/javascripts/lunr/min/lunr.sa.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.sa.min.js rename to assets/javascripts/lunr/min/lunr.sa.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js b/assets/javascripts/lunr/min/lunr.stemmer.support.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js rename to assets/javascripts/lunr/min/lunr.stemmer.support.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.sv.min.js b/assets/javascripts/lunr/min/lunr.sv.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.sv.min.js rename to assets/javascripts/lunr/min/lunr.sv.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.ta.min.js b/assets/javascripts/lunr/min/lunr.ta.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.ta.min.js rename to assets/javascripts/lunr/min/lunr.ta.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.te.min.js b/assets/javascripts/lunr/min/lunr.te.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.te.min.js rename to assets/javascripts/lunr/min/lunr.te.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.th.min.js b/assets/javascripts/lunr/min/lunr.th.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.th.min.js rename to assets/javascripts/lunr/min/lunr.th.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.tr.min.js b/assets/javascripts/lunr/min/lunr.tr.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.tr.min.js rename to assets/javascripts/lunr/min/lunr.tr.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.vi.min.js b/assets/javascripts/lunr/min/lunr.vi.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.vi.min.js rename to assets/javascripts/lunr/min/lunr.vi.min.js diff --git a/site/assets/javascripts/lunr/min/lunr.zh.min.js b/assets/javascripts/lunr/min/lunr.zh.min.js similarity index 100% rename from site/assets/javascripts/lunr/min/lunr.zh.min.js rename to assets/javascripts/lunr/min/lunr.zh.min.js diff --git a/site/assets/javascripts/lunr/tinyseg.js b/assets/javascripts/lunr/tinyseg.js similarity index 100% rename from site/assets/javascripts/lunr/tinyseg.js rename to assets/javascripts/lunr/tinyseg.js diff --git a/site/assets/javascripts/lunr/wordcut.js b/assets/javascripts/lunr/wordcut.js similarity index 100% rename from site/assets/javascripts/lunr/wordcut.js rename to assets/javascripts/lunr/wordcut.js diff --git a/site/assets/javascripts/workers/search.b8dbb3d2.min.js b/assets/javascripts/workers/search.b8dbb3d2.min.js similarity index 100% rename from site/assets/javascripts/workers/search.b8dbb3d2.min.js rename to assets/javascripts/workers/search.b8dbb3d2.min.js diff --git a/site/assets/javascripts/workers/search.b8dbb3d2.min.js.map b/assets/javascripts/workers/search.b8dbb3d2.min.js.map similarity index 100% rename from site/assets/javascripts/workers/search.b8dbb3d2.min.js.map rename to assets/javascripts/workers/search.b8dbb3d2.min.js.map diff --git a/site/assets/stylesheets/main.3cba04c6.min.css b/assets/stylesheets/main.3cba04c6.min.css similarity index 100% rename from site/assets/stylesheets/main.3cba04c6.min.css rename to assets/stylesheets/main.3cba04c6.min.css diff --git a/site/assets/stylesheets/main.3cba04c6.min.css.map b/assets/stylesheets/main.3cba04c6.min.css.map similarity index 100% rename from site/assets/stylesheets/main.3cba04c6.min.css.map rename to assets/stylesheets/main.3cba04c6.min.css.map diff --git a/site/assets/stylesheets/palette.06af60db.min.css b/assets/stylesheets/palette.06af60db.min.css similarity index 100% rename from site/assets/stylesheets/palette.06af60db.min.css rename to assets/stylesheets/palette.06af60db.min.css diff --git a/site/assets/stylesheets/palette.06af60db.min.css.map b/assets/stylesheets/palette.06af60db.min.css.map similarity index 100% rename from site/assets/stylesheets/palette.06af60db.min.css.map rename to assets/stylesheets/palette.06af60db.min.css.map diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md deleted file mode 100644 index 2e9c304..0000000 --- a/docs/CONTRIBUTING.md +++ /dev/null @@ -1,19 +0,0 @@ -# Contributing to Grading Notes - -We welcome contributions to the Grading Notes project! Here are some guidelines to help you get started. This repository uses the hatchling python project manager. - -## Reporting Issues - -If you find a bug or have a suggestion for improvement, please open an issue on our GitHub repository. - -## Submitting Pull Requests - -1. Fork the repository and create your branch from `main`. -2. If you've added code that should be tested, add tests. -3. Ensure the test suite passes. -4. Make sure your code lints. -5. Issue that pull request! - -## License - -By contributing, you agree that your contributions will be licensed \ No newline at end of file diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index e32b0c6..0000000 --- a/docs/index.md +++ /dev/null @@ -1,121 +0,0 @@ -# Grading Notes - -
- Grading Notes -
- -Grading Notes is a simple Python package that leverages Large Language Models (LLMs) as automated judges for evaluating AI-generated answers against human-written grading criteria. The repo is based on the awesome post by [Databricks](https://www.databricks.com/blog/enhancing-llm-as-a-judge-with-grading-notes). The idea is to guide LLMs wtih simple grading notes rather than provide full ground truth answers thereby lowering the cost of creating ground truth data. - -## Key Features - -- **LLM-powered Evaluation**: Harness the intelligence of LLMs guided by humans to evaluate AI-generated answers. -- **Flexible AI Providers**: Support for multiple LLM providers, including Anthropic's Claude and OpenAI's GPT models. -- **Bulk Processing**: Evaluate multiple questions and answers efficiently using CSV files. - -## Installation - -You can install the Grading Notes package using pip: - -```bash -pip install grading-notes -``` - -## Quick Start - -```python -from grading_notes import GradingNote, evaluate, get_judge - -# set ANTHROPIC_API_KEY and OPENAI_API_KEY env. variables - -# create a judge -judge = get_judge(provider="anthropic", model="claude-3-5-sonnet-20240620") - -# create a grading note -grade_note = GradingNote( - question="What is the capital of France?", - grading_note="Answer is 'Paris'. Accept case-insensitive variations." -) - -# evaluate an answer -result = evaluate(judge=judge, grading_note=grade_note, answer="Paris") -print(result) # True -``` -### More complex examples - -Here is one complex example inspired from the Databricks post (answer generated by Gemini): - -```python -grade_note = GradingNote( -question="How do I drop all tables in a Unity Catalog schema?", - -grading_note="The response should contain steps to get all table names then \ -drop each of them. Alternatively the response can suggest dropping the entire \ -schema with risks explained. The response should not treat tables as views." -) - -answer = """Unfortunately, Unity Catalog doesn't currently provide a direct -way to drop all tables within a schema with a single command. You'll need to -list the tables in the schema and then drop them individually. - -Here's a breakdown of how you could approach this using Databricks SQL: - -1. List the Tables in the Schema using Python notebook - -You can use the SHOW TABLES command to get a list of tables within your schema: - -%sql -SHOW TABLES IN your_db_name.your_schema_name; - -2. Drop Each Table -You can use the DROP TABLE command to drop each table: - -tables = spark.sql("SHOW TABLES IN your_db_name.your_schema_name").collect() - -for table in tables: - table_name = table["tableName"] - spark.sql(f"DROP TABLE your_db_name.your_schema_name.{table_name}") -""" - -result = evaluate(judge=judge, grading_note=grade_note, answer=answer) -print(result) # True -``` - -## Main Components - -- `evaluate`: Function to evaluate an answer against a grading note. Optionally takes an answer. -- `evaluate_from_csv`: Function to evaluate multiple questions and answers from a CSV file. Optionally takes an answer. -- `GradingNote`: Represents the grading criteria for a specific question. -- `Judge`: Represents the judge client for different AI providers. -- `Evaluation`: Represents the evaluation result (Good or Bad). -- `get_judge`: Function to create an Judge for different AI providers. - -## CSV Evaluation - -You can evaluate multiple questions and answers using a CSV file: - -```python -from grading_notes import get_judge, evaluate_from_csv -judge = get_judge(provider="openai", model="gpt-4-turbo-preview") -results = evaluate_from_csv(judge=judge, csv_file="path/to/your/csv_file.csv") -``` - -The CSV file should have columns `question`, `grading_note`, and `answer`. - -## Customization - -The repo currently supports Anthropic and OpenAI through the instructor library. - -## Environment Variables - -Make sure to set the following environment variables: - -- `ANTHROPIC_API_KEY`: Your Anthropic API key -- `OPENAI_API_KEY`: Your OpenAI API key - -## License - -This project is licensed under the Apache 2.0 License. - -## Contributing - -We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for more details. diff --git a/docs/images/humans-tell-me-how-to-grade.jpeg b/images/humans-tell-me-how-to-grade.jpeg similarity index 100% rename from docs/images/humans-tell-me-how-to-grade.jpeg rename to images/humans-tell-me-how-to-grade.jpeg diff --git a/site/index.html b/index.html similarity index 100% rename from site/index.html rename to index.html diff --git a/mkdocs.yml b/mkdocs.yml deleted file mode 100644 index 658e537..0000000 --- a/mkdocs.yml +++ /dev/null @@ -1,38 +0,0 @@ -site_name: Grading Notes -site_url: https://shabie.github.io/grading-notes -copyright: © 2024 Shabie -theme: - name: material - palette: - - scheme: default - primary: red - accent: red - toggle: - icon: material/brightness-7 - name: Switch to dark mode - - scheme: slate - primary: indigo - accent: indigo - toggle: - icon: material/brightness-4 - name: Switch to light mode - -nav: - - Home: index.md - - -markdown_extensions: - - admonition - - footnotes - - pymdownx.highlight: - anchor_linenums: true - - pymdownx.inlinehilite - - pymdownx.snippets - - pymdownx.superfences - - codehilite: - guess_lang: false - - toc: - permalink: true - -repo_name: shabie/grading-notes -repo_url: https://github.com/shabie/grading-notes \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 47398e5..0000000 --- a/pyproject.toml +++ /dev/null @@ -1,95 +0,0 @@ -[build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" - -[project] -name = "grading-notes" -dynamic = ["version"] -description = 'Guide LLM to judge an answer better using grading notes.' -readme = "README.md" -requires-python = ">=3.8" -license = "Apache-2.0" -keywords = [] -authors = [ - { name = "Shabie Iqbal", email = "shabieiqbal@gmail.com" }, -] -classifiers = [ - "Development Status :: 4 - Beta", - "Programming Language :: Python", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: Implementation :: CPython", - "Programming Language :: Python :: Implementation :: PyPy", -] -dependencies = [ - "python-dotenv", - "anthropic", - "instructor", - "openai", - "langchain", - "langchain-community", - "langchain-anthropic", -] - -[project.urls] -Documentation = "https://github.com/shabie/grading-notes#readme" -Issues = "https://github.com/shabie/grading-notes/issues" -Source = "https://github.com/shabie/grading-notes" - -[tool.hatch.version] -path = "src/grading_notes/__about__.py" - -[tool.hatch.envs.types] -extra-dependencies = [ - "mypy>=1.0.0", -] - -[tool.hatch.envs.test] -dependencies = [ - "pytest", - "ruff", -] - -[tool.hatch.envs.docs] -dependencies = [ - "mkdocs", - "mkdocs-material", -] - -[tool.hatch.envs.docs.scripts] -build = "mkdocs build --clean --strict" -serve = "mkdocs serve --dev-addr localhost:8000" - -[tool.hatch.envs.types.scripts] -check = "mypy --install-types --non-interactive {args:src/grading_notes tests}" - -[tool.coverage.run] -source_pkgs = ["grading_notes", "tests"] -branch = true -parallel = true -omit = [ - "src/grading_notes/__about__.py", -] - -[tool.coverage.paths] -grading-notes = ["src/grading_notes", "*/grading-notes/src/grading_notes"] -tests = ["tests", "*/grading_notes/tests"] - -[tool.coverage.report] -exclude_lines = [ - "no cov", - "if __name__ == .__main__.:", - "if TYPE_CHECKING:", -] - -[tool.hatch.build.targets.sdist] -include = [ - "README.md", -] -exclude = [ - "/.github", - "/docs", -] \ No newline at end of file diff --git a/site/search/search_index.json b/search/search_index.json similarity index 100% rename from site/search/search_index.json rename to search/search_index.json diff --git a/site/images/humans-tell-me-how-to-grade.jpeg b/site/images/humans-tell-me-how-to-grade.jpeg deleted file mode 100644 index bae42c0835f6031a2db5cbc6f39afcf5eb532fac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147500 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

R=@kvG|Z1?yXY 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 diff --git a/site/sitemap.xml b/sitemap.xml similarity index 100% rename from site/sitemap.xml rename to sitemap.xml diff --git a/site/sitemap.xml.gz b/sitemap.xml.gz similarity index 100% rename from site/sitemap.xml.gz rename to sitemap.xml.gz diff --git a/src/grading_notes/__about__.py b/src/grading_notes/__about__.py deleted file mode 100644 index 9c79138..0000000 --- a/src/grading_notes/__about__.py +++ /dev/null @@ -1,8 +0,0 @@ -__title__ = 'Grading Notes' -__description__ = 'Guide LLM to judge an answer better using grading notes.' -__url__ = 'https://github.com/shabie/grading-notes' -__version__ = '0.1.0' -__author__ = 'Shabie Iqbal' -__author_email__ = 'shabieiqbal@email.com' -__license__ = 'MIT' -__copyright__ = 'Copyright 2024 Shabie Iqbal' diff --git a/src/grading_notes/__init__.py b/src/grading_notes/__init__.py deleted file mode 100644 index 12a4ceb..0000000 --- a/src/grading_notes/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from .main import GradingNote, Judge, evaluate, get_judge, evaluate_from_csv - -__all__ = ["GradingNote", "Judge", "evaluate", "get_judge", "evaluate_from_csv"] \ No newline at end of file diff --git a/src/grading_notes/main.py b/src/grading_notes/main.py deleted file mode 100644 index f41c622..0000000 --- a/src/grading_notes/main.py +++ /dev/null @@ -1,147 +0,0 @@ -import csv -import os -from typing import Any, Literal - -import instructor -from anthropic import Anthropic -from openai import OpenAI -from pydantic import BaseModel, Field - - -class GradingNote(BaseModel): - """Represents the grading criteria for a question.""" - question: str = Field(..., description="The question to be evaluated.") - grading_note: str = Field(..., description="The desired attributes of a good answer.") - - -class Evaluation(BaseModel): - """Represents the evaluation of an answer against a grading note.""" - reasoning: str = Field(..., description="The reasoning for the evaluation verdict.") # said to improve performance of constrained generation - verdict: Literal ["Good", "Bad"] = Field(..., description="The evaluation verdict, either 'Good' or 'Bad'") - - -class Judge(BaseModel): - """Represents the client for the instructor library.""" - client: Any = Field(..., description="The client for the instructor library.") - properties: dict[str, Any] = Field(..., description="The properties of the instructor client.") - - -def evaluate(judge: Judge, grading_note: GradingNote, answer: str) -> bool: - """Evaluates an answer against a GradingNote.""" - response = judge.client.messages.create( - model=judge.properties["model"], - max_tokens=4000, - messages=[ - { - "role": "system", - "content": "You are a helpful assistant that evaluates AI generated answers against grading notes written by humans.", - }, - { - "role": "user", - "content": f"Question by the user: {grading_note.question}\nAnswer by the user: {answer}\nGrading Note for the question: {grading_note.grading_note}", - } - ], - response_model=Evaluation, - ) - return response.verdict == "Good" - - -def get_judge(provider: Literal["anthropic", "openai"] = "anthropic", model: str = None, **kwargs) -> Judge: - """Creates a Judge client for the instructor library.""" - if provider == "anthropic": - base_client = Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY")) - default_model = "claude-3-5-sonnet-20240620" - model = model or default_model - client = instructor.from_anthropic(base_client) - elif provider == "openai": - base_client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY")) - default_model = "gpt-4o-2024-08-06" - model = model or default_model - client = instructor.from_openai(base_client) - else: - raise ValueError("Invalid provider. Choose 'anthropic' or 'openai'.") - return Judge(client=client, properties={"model": model, **kwargs}) - - - -def evaluate_from_csv(judge: Judge, csv_file: str, answer_func=None) -> dict[str, bool]: - """Evaluates questions and grading notes from a CSV file.""" - results = {} - with open(csv_file) as file: - reader = csv.DictReader(file) - headers = reader.fieldnames - - if not set(headers).issuperset({'question', 'grading_note'}): - raise ValueError("CSV file must have 'question' and 'grading_note' columns") - - has_answers = 'answer' in headers - if not has_answers and answer_func is None: - raise ValueError("CSV file does not contain 'answer' column and no answer_func provided") - - for row in reader: - grading_note = GradingNote(question=row['question'], grading_note=row['grading_note']) - - if has_answers: - answer = row['answer'] - elif answer_func: - answer = answer_func(grading_note.question) - else: - raise ValueError(f"No answer provided for question: {grading_note.question}") - - results[grading_note.question] = evaluate(judge, grading_note, answer) - - return results - - -if __name__ == "__main__": - # Sanity check script - from dotenv import load_dotenv - load_dotenv() # Load environment variables from .env file - - # Create a judge - # judge = get_judge(provider="anthropic", model="claude-3-5-sonnet-20240620") - judge = get_judge(provider="openai", model="gpt-4o-2024-08-06") - - # Create a sample grading note - sample_note = GradingNote( - question="What is the capital of France?", - grading_note="The answer should be 'Paris'. Accept variations like 'paris' (case-insensitive)." - ) - - # Test cases - test_cases = [ - ("Paris", True), - ("paris", True), - ("London", False), - ("New York", False), - ] - - print("Running sanity check...") - for answer, expected in test_cases: - result = evaluate(judge, sample_note, answer) - print(f"Answer: '{answer}' - Expected: {expected}, Got: {result}") - assert result == expected, f"Mismatch for answer '{answer}'" - - print("Sanity check completed successfully!") - - # Optional: Test CSV functionality - import tempfile - - csv_content = """question,grading_note,answer -What is the capital of Japan?,The answer should be 'Tokyo'.,Tokyo -What is the largest planet in our solar system?,The answer should be 'Jupiter'.,Saturn""" - - with tempfile.NamedTemporaryFile(mode='w', delete=False, suffix='.csv') as temp_csv: - temp_csv.write(csv_content) - temp_csv_path = temp_csv.name - - print("\nTesting CSV functionality...") - csv_results = evaluate_from_csv(judge, temp_csv_path) - print("CSV Results:", csv_results) - - assert csv_results == { - "What is the capital of Japan?": True, - "What is the largest planet in our solar system?": False - }, "CSV results do not match expected output" - - print("CSV functionality test completed successfully!") diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/unit/test_main.py b/tests/unit/test_main.py deleted file mode 100644 index cb6eb8f..0000000 --- a/tests/unit/test_main.py +++ /dev/null @@ -1,57 +0,0 @@ -from unittest.mock import Mock, patch - -import pytest - -from grading_notes import GradingNote, Judge, evaluate_from_csv - - -@pytest.fixture -def mock_client(): - mock = Mock(spec=Judge) - mock.properties = {"model": "gpt-4o-2024-08-06"} - return mock - - -@pytest.fixture -def mock_evaluate(): - with patch('grading_notes.main.evaluate') as mock: - yield mock - - -def test_evaluate_from_csv__base_case(mock_client, mock_evaluate, tmp_path): - # Create a temporary CSV file - csv_content = """question,grading_note,answer -What is the capital of Pakistan?,The answer should be 'Islamabad'.,Islamabad -What is the largest planet in our solar system?,The answer should be 'Jupiter'.,Saturn -How many continents are there in the world?,The answer should be '7'.,Seven""" - - csv_file = tmp_path / "test.csv" - csv_file.write_text(csv_content) - - # Set up mock responses - mock_evaluate.side_effect = [True, False, True] - - results = evaluate_from_csv(mock_client, str(csv_file)) - assert results == { - "What is the capital of Pakistan?": True, - "What is the largest planet in our solar system?": False, - "How many continents are there in the world?": True, - } - - # Verify that evaluate was called with correct arguments - assert mock_evaluate.call_count == 3 - mock_evaluate.assert_any_call(mock_client, GradingNote(question='What is the capital of Pakistan?', grading_note="The answer should be 'Islamabad'."), 'Islamabad') - mock_evaluate.assert_any_call(mock_client, GradingNote(question='What is the largest planet in our solar system?', grading_note="The answer should be 'Jupiter'."), 'Saturn') - mock_evaluate.assert_any_call(mock_client, GradingNote(question='How many continents are there in the world?', grading_note="The answer should be '7'."), 'Seven') - - -def test_evaluate_from_csv__wrong_column_name_raises_error(tmp_path): - # Create a temporary CSV file - csv_content = """question,wrong_column""" - - csv_file = tmp_path / "test.csv" - csv_file.write_text(csv_content) - - # Check that the function raises a ValueError due to wrong column name - with pytest.raises(ValueError): - evaluate_from_csv(mock_client, str(csv_file))