Ewaluacja łańcuchów tekstowych
Czas na rzetelną ewaluację końcowego wyniku – porównasz go z odpowiedzią przygotowaną przez eksperta dziedzinowego. Do tego porównania użyjesz klasy LangChainStringEvaluator z biblioteki LangSmith.
prompt_template na potrzeby ewaluacji łańcuchów tekstowych jest już gotowy:
You are an expert professor specialized in grading students' answers to questions.
You are grading the following question:{query}
Here is the real answer:{answer}
You are grading the following predicted answer:{result}
Respond with CORRECT or INCORRECT:
Grade:
Wynik działania łańcucha RAG jest przechowywany jako predicted_answer, a odpowiedź eksperta jako ref_answer.
Wszystkie niezbędne klasy zostały już zaimportowane.
To ćwiczenie jest częścią kursu
Retrieval Augmented Generation (RAG) z LangChain
Instrukcje do ćwiczenia
- Utwórz ewaluator QA dla łańcuchów tekstowych w LangSmith, korzystając z podanych obiektów
eval_llmiprompt_template. - Przeprowadź ewaluację wyniku RAG (
predicted_answer), porównując go z odpowiedzią eksperta na pytaniequery, która jest przechowywana jakoref_answer.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Create the QA string evaluator
qa_evaluator = ____(
"____",
config={
"llm": ____,
"prompt": ____
}
)
query = "How does RAG improve question answering with LLMs?"
# Evaluate the RAG output by evaluating strings
score = qa_evaluator.evaluator.____(
prediction=____,
reference=____,
input=____
)
print(f"Score: {score}")