Spaces:
Paused
Paused
File size: 1,413 Bytes
a39c45e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
from promptsplitembed import create_qamodel, create_prompt
from extractjson import extract_json
from langchain_openai import ChatOpenAI
qa_chat_model = create_qamodel(model="gpt-4o-mini", temperature=0)
def process_reference(reference_document, ref_prompt):
ref_prompt_template = create_prompt(ref_prompt)
ref_generation_chain = ref_prompt_template | qa_chat_model
result = ref_generation_chain.invoke({"source": reference_document})
ref_gen_tokens = result.usage_metadata["total_tokens"]
reference = dict(extract_json(result)[0])
answers = {}
for key in reference:
if key.startswith('Question'):
question_number = key.split('#')[1]
answer_key = f'Answer #{question_number}'
answers[key] = reference[answer_key]
print("Processed reference document")
return reference, answers, ref_gen_tokens
def process_student(documents, reference, student_prompt):
test_doc = documents[0]
student_prompt_template = create_prompt(student_prompt)
student_response_chain = student_prompt_template | qa_chat_model
student_result = student_response_chain.invoke({"source": reference.keys(),"student": test_doc })
student_gen_tokens = student_result.usage_metadata["total_tokens"]
student_result = dict(extract_json(student_result)[0])
print("Processed student document")
return student_result, student_gen_tokens |