Anda sekarang dapat menghasilkan dataset dari contoh-contoh ini.
Yang perlu Anda lakukan adalah menyimpan input Anda.
from langchain import hubfrom langchain_openai import ChatOpenAIfrom langsmith.schemas import Example, Runfrom langchain_core.prompts import PromptTemplatefrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.pydantic_v1 import BaseModel, Fieldfrom langsmith.evaluation import evaluatedefevaluate_pairwise(runs:list,example) ->dict:""" Evaluator sederhana untuk jawaban pasangan yang memberikan skor berdasarkan keterlibatan """# Menyimpan skor scores ={}for i, run inenumerate(runs): scores[run.id]= i# Pasangan eksekusi untuk setiap contoh answer_a = runs[0].outputs["answer"] answer_b = runs[1].outputs["answer"] question = example.inputs["question"]# Menggunakan LLM dengan pemanggilan fungsi, model dengan kinerja terbaik llm =ChatOpenAI(model="gpt-4o-mini", temperature=0)# Prompt terstruktur grade_prompt = PromptTemplate.from_template(""" Anda adalah juri LLM. Bandingkan kedua jawaban berikut untuk suatu pertanyaan dan tentukan mana yang lebih baik.
Jawaban yang lebih baik adalah yang lebih rinci dan informatif. Jika jawaban tidak terkait dengan pertanyaan, itu bukan jawaban yang baik. # Pertanyaan:{question} # Jawaban A: {answer_a} # Jawaban B: {answer_b} Output harus berupa `A` atau `B`. Pilih jawaban yang lebih baik. #Preferensi: """ ) answer_grader = grade_prompt | llm |StrOutputParser()# Mendapatkan skor score = answer_grader.invoke( {"question": question,"answer_a": answer_a,"answer_b": answer_b, } )# score = score["Preference"]# Pemetaan alokasi eksekusi berdasarkan skorif score =="A":# Preferensi Asisten A scores[runs[0].id]=1 scores[runs[1].id]=0elif score =="B":# Preferensi Asisten B scores[runs[0].id]=0 scores[runs[1].id]=1else: scores[runs[0].id]=0 scores[runs[1].id]=0return{"key":"ranked_preference","scores": scores}
Lakukan evaluasi komparatif.
from langsmith.evaluation import evaluate_comparative# Sesuaikan array nama atau ID eksperimenevaluate_comparative( ["GROUNDNESS_OPENAI_SUMMARY_EVAL-379e50f7", "GROUNDNESS_OPENAI_SUMMARY_EVAL-c7e4a182"],# Array evaluator evaluators=[evaluate_pairwise],)