Skip to content

Commit 1be7f4c

Browse files
committed
add support for examples
1 parent b481f03 commit 1be7f4c

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

API.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
* `code`: The code to assess. Required.
1919
* `prompt`: The system prompt. Required.
2020
* `rubric`: The rubric, as a CSV. Required.
21+
* `examples`: Array of pairs of code (js) and openai response (tsv).
2122
* `remove-comments`: When `1`, attempts to strip comments out of the code before assessment. Default: 0
2223
* `num-responses`: The number of times it should ask the AI model. It votes on the final answer. Default: 1
2324
* `num-passing-grades`: The number of grades to consider 'passing'. Defaults: 2 (pass fail)

lib/assessment/assess.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
compute_accuracy
2323
)
2424

25-
def grade(code, prompt, rubric, api_key='', llm_model='gpt-4', num_responses=1, temperature=0.2, num_passing_grades=2, remove_comments=False):
25+
def grade(code, prompt, rubric, examples=[], api_key='', llm_model='gpt-4', num_responses=1, temperature=0.2, num_passing_grades=2, remove_comments=False):
2626
OPENAI_API_KEY = api_key
2727

2828
# Set the key
@@ -36,7 +36,8 @@ def grade(code, prompt, rubric, api_key='', llm_model='gpt-4', num_responses=1,
3636

3737
grade = Grade()
3838
return grade.grade_student_work(
39-
prompt, rubric, code, "student", [],
39+
prompt, rubric, code, "student",
40+
examples=examples,
4041
use_cached=False,
4142
write_cached=False,
4243
num_responses=num_responses,

src/assessment.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import os
77
import openai
8+
import json
89

910
# Our assessment code
1011
from lib.assessment import assess
@@ -31,11 +32,14 @@ def post_assessment():
3132
if request.values.get("rubric", None) == None:
3233
return "`rubric` is required", 400
3334

35+
examples = json.loads(request.values.get("examples", "[]"))
36+
3437
try:
3538
grades = assess.grade(
3639
code=request.values.get("code", ""),
3740
prompt=request.values.get("prompt", ""),
3841
rubric=request.values.get("rubric", ""),
42+
examples=examples,
3943
api_key=request.values.get("api-key", openai.api_key),
4044
llm_model=request.values.get("model", "gpt-4"),
4145
remove_comments=(request.values.get("remove-comments", "0") != "0"),

0 commit comments

Comments
 (0)