Example selectors
https://python.langchain.com/docs/concepts/#example-selectors
示例选择器 - 一种常见的提示技巧是将示例作为提示的一部分来提高性能,这被称为少样本提示(few-shot prompting)。这为语言模型提供了具体的行为示例。
有时这些示例是硬编码到提示中的,但在更高级的情况下,可能需要动态选择它们。示例选择器是负责选择并将示例格式化为提示(prompts)的类。
有关如何使用示例选择器的具体说明,请参阅此处的相关操作指南。
classDiagram
class PromptTemplate {
+input_variables: list
+template: str
}
class FewShotPromptTemplate {
+example_selector: ExampleSelector
+example_prompt: PromptTemplate
+prefix: str
+suffix: str
+input_variables: list
}
class BaseExampleSelector {
+add_example(example: dict)
+select_examples(input_variables: dict): list
}
class LengthBasedExampleSelector {
+examples: list
+example_prompt: PromptTemplate
+max_length: int
+get_text_length: Callable
}
FewShotPromptTemplate --> BaseExampleSelector
FewShotPromptTemplate --> PromptTemplate
LengthBasedExampleSelector --|> BaseExampleSelector
LengthBasedExampleSelector --> PromptTemplate
class MaxMarginalRelevanceExampleSelector {
+examples: list
+embedding: Embeddings
+vectorstore: VectorStore
+k: int
}
MaxMarginalRelevanceExampleSelector --|> BaseExampleSelector
class SemanticSimilarityExampleSelector {
+examples: list
+embedding: Embeddings
+vectorstore: VectorStore
+k: int
}
SemanticSimilarityExampleSelector --|> BaseExampleSelector
class NGramOverlapExampleSelector {
+examples: list
+example_prompt: PromptTemplate
+threshold: float
}
NGramOverlapExampleSelector --|> BaseExampleSelector