Mulai penelusuran langsmith.
[nama project]
Structured-Output-Chain
Menerapkan proses pembuatan kuis empat pilihan pada topik tertentu.
Kelas Quiz mendefinisikan pertanyaan, tingkat kesulitan, dan empat pilihan untuk kuis.
Instance ChatOpenAI melakukan pemrosesan bahasa alami menggunakan model GPT-4o, dan ChatPromptTemplate mendefinisikan petunjuk interaktif untuk pembuatan kuis.
from langchain.chains.openai_functions import create_structured_output_runnablefrom langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.pydantic_v1 import BaseModel, Fieldfrom typing import ListclassQuiz(BaseModel):"""Menangkap informasi kuis pilihan ganda 4 jawaban""" question:str=Field(..., description="Pertanyaan kuis") level:str=Field( ..., description="Menunjukkan tingkat kesulitan kuis. (Mudah, Sedang, Sulit)" ) options: List[str]=Field(..., description="4 pilihan untuk kuis.")llm =ChatOpenAI(model="gpt-4o", temperature=0.1)prompt = ChatPromptTemplate.from_messages( [ ("system","Anda adalah seorang kuizer terkenal di dunia dan menghasilkan kuis dalam format terstruktur.", ), ("human", "Silakan buat kuis pilihan ganda 4 jawaban yang terkait dengan isi TOPIC. Jika ada soal ujian yang sudah ada, buatlah soal yang serupa."
" Namun, jangan sertakan informasi atau konten tentang TOPIC dalam soal. \nTOPIC:\n{topic}", ), ("human", "Tip: Pastikan untuk menjawab dalam format yang benar"), ])# Membuat model untuk output terstrukturllm_with_structured_output = llm.with_structured_output(Quiz)# Membuat rantai untuk menghasilkan kuischain = prompt | llm_with_structured_output
# Mencetak kuis yang dihasilkanprint(f"{generated_quiz.question} (Tingkat Kesulitan: {generated_quiz.level})\n")for i, opt inenumerate(generated_quiz.options):print(f"{i+1}) {opt}")
Apa yang dimaksud dengan 'data mining'? (Tingkat Kesulitan: Sedang)
1) Proses mengumpulkan data dari berbagai sumber
2) Proses menganalisis data untuk menemukan pola atau hubungan
3) Proses menyimpan data dalam basis data
4) Proses membersihkan data dari kesalahan atau duplikasi