teleprompt.LabeledFewShot
构造函数
构造函数初始化 LabeledFewShot
类并设置其属性,特别是定义了预测器要使用的 k
个样本数量。
class LabeledFewShot(Teleprompter):
def __init__(self, k=16):
self.k = k
参数:
k
(int): 每个预测器要使用的样本数量。默认为 16。
方法
compile(self, student, *, trainset)
此方法通过配置 student
预测器来编译 LabeledFewShot
实例。它将 trainset
的子集分配给每个学生预测器的 demos
属性。如果 trainset
为空,则该方法返回原始的 student
。
参数:
student
(Teleprompter): 要编译的学生预测器。trainset
(list): 用于与学生预测器编译的训练数据集。
返回:
- 经过编译的
student
预测器,为每个预测器分配了训练样本,或者如果trainset
为空,则返回原始的student
。
示例
import dspy
#假设已定义 trainset
class RAG(dspy.Module):
def __init__(self, num_passages=3):
super().__init__()
#声明检索和预测器模块
self.retrieve = dspy.Retrieve(k=num_passages)
self.generate_answer = dspy.ChainOfThought(GenerateAnswer)
#使用预测器和检索模块回答问题的流程
def forward(self, question):
context = self.retrieve(question).passages
prediction = self.generate_answer(context=context, question=question)
return dspy.Prediction(context=context, answer=prediction.answer)
#定义 teleprompter
teleprompter = LabeledFewShot()
# 编译!
compiled_rag = teleprompter.compile(student=RAG(), trainset=trainset)