当前位置: 首页 > news >正文

基于mvc4商务网站开发如何整理做网站的素材

基于mvc4商务网站开发,如何整理做网站的素材,app手机网站,做界面的网站文章目录 一、提示词追加示例 FewShotPromptTemplate二、使用示例选择器 example_selector三、关键类介绍3.1 PromptTemplate3.2 FewShotPromptTemplate3.3 SemanticSimilarityExampleSelector 提示词中包含交互样本的作用是为了帮助模型更好地理解用户的意图,从而更…

文章目录

  • 一、提示词追加示例 FewShotPromptTemplate
  • 二、使用示例选择器 example_selector
  • 三、关键类介绍
    • 3.1 PromptTemplate
    • 3.2 FewShotPromptTemplate
    • 3.3 SemanticSimilarityExampleSelector

提示词中包含交互样本的作用是为了帮助模型更好地理解用户的意图,从而更好地回答问题或执行任务。
小样本提示模板是指使用一组少量的示例来指导模型处理新的输入。 这些示例可以用来训练模型,以便模型可以更好地理解和回答类似问题。


本章所有的大语言模型采用 deepseek-r1:7b

from langchain_ollama import ChatOllama
llm = ChatOllama(model="deepseek-r1:7b", 
)

一、提示词追加示例 FewShotPromptTemplate

下面定义一个examples示例数组,里面包含一组问答样例。

将examples都丢给大模型,大模型会参考examples内容,进行分析。有点像RAG。
相当于提前准备好一个知识库,llm根据知识库来做一些归纳总结。

from langchain_core.prompts import PromptTemplate, FewShotPromptTemplate
examples = [{"question": "穆罕默德·阿里和艾伦·图灵谁的寿命更长?","answer": """这里需要跟进问题吗?是的跟进: 穆罕默德·阿里去世时多大?中间答案: 穆罕默德·阿里去世时74岁跟进: 艾伦·图灵去世时多大?中间答案: 艾伦·图灵去世时41岁最终答案: 穆罕默德·阿里"""},{"question": "《大白鲨》和《007:皇家赌场》的导演都来自同一个国家吗?","answer": """这里需要跟进问题吗?是的跟进: 《大白鲨》的导演是谁?中间答案: 《大白鲨》的导演是Steven Spielberg跟进: Steven Spielberg来自哪里?中间答案: 美国跟进: 《007:皇家赌场》的导演是谁?中间答案: 007:皇家赌场》的导演是Martin Campbell跟进: Martin Campbell来自哪里?中间答案: 新西兰最终答案: 不是"""}
]example_template = """
问题:{question}
{answer} \\n
"""
# 实例化 PromptTemplate 模板example_template = PromptTemplate(input_variables=["question","answer"], # 包含模板中的所有变量template=example_template)  # 表示提示模板的字符串,待填充的变量位置# example_template.format(**examples[0])prompt = FewShotPromptTemplate(examples=examples,  # 多个示例,一般是一个字典prefix="问答题", ## 示例之前要添加的文本example_prompt=example_template, # 对象,为示例的格式suffix="问题:{input}", # 示例之后要添加的文本  input_variables=["input"],example_separator="\\n" # 用于分割多个示例
)
message = prompt.format(input="《大白鲨》的导演是谁")
print(prompt.format(input="《大白鲨》的导演是谁")) #将输入格式对象格式化为字符串提示
print(llm.invoke(message).content)

二、使用示例选择器 example_selector

将示例提供给ExampleSelector
这里将前一部分的示例集和提示词模板,但是不会将示例直接提供给FewShotPromptTemplate对象,
把全部示例插入到提示词中,而是将他们提供给一个ExampleSelector对象,插入部分示例

这里我们使用SemanticSimilarityExampleSelector类,该类根据与输入的相似性选择小样本示例。

它使用嵌入模型计算输入与小样本示例之间的相似性,然后使用向量数据库执行相似度搜索。

  • 提示:这里涉及向量计算、向量数据库,在AI领域这两个主要用于数据相似度搜索,列入查询相似文章内容、相似图片、视频等。
from langchain_ollama import OllamaEmbeddingsfrom langchain.prompts.example_selector import SemanticSimilarityExampleSelector #使用语义相似性实力选择器
from langchain_community.vectorstores import Chroma
deepseek_embedding = OllamaEmbeddings(model="deepseek-r1:7b", 
)example_selector = SemanticSimilarityExampleSelector.from_examples(examples, # 提供可选择的示例列表deepseek_embedding, # 用于生成嵌入的嵌入类Chroma,  # 用于存储嵌入和执行相似性搜索的VectorStore类k=1, # 这是生成的示例数
)dynamic_prompt = FewShotPromptTemplate(example_selector=example_selector,prefix="问答题", ## 示例之前要添加的文本example_prompt=example_template, # 对象,为示例的格式suffix="问题:{input}", # 示例之后要添加的文本  input_variables=["input"],example_separator="\\n" # 用于分割多个示例
)
message = prompt.format(input="《大白鲨》的导演是谁") #  最后生成的模板就包含跟问题相关的示例
print(prompt.format(input="《大白鲨》的导演是谁")) #将输入格式对象格式化为字符串提示
print(llm.invoke(message).content)

三、关键类介绍

3.1 PromptTemplate

是 LangChain 中用于创建动态提示的核心类,它允许用户定义一个包含变量的模板字符串,并通过输入变量生成具体的提示内容

PromptTemplate 的主要功能是将模板字符串和输入变量结合,生成用于语言模型的提示。它支持动态填充变量,使得提示可以根据不同的输入生成不同的内容

主要属性

  • input_variables:一个字符串列表,指定模板中需要动态填充的变量名称
  • template:模板字符串,其中可以包含占位符(如 {variable_name}),用于动态替换

主要方法

  • format():根据输入变量的值,将模板字符串中的占位符替换为实际值,生成最终的提示内容。
  • from_template():类方法,通过模板字符串直接创建 PromptTemplate 实例,LangChain 会自动推断 input_variables。

3.2 FewShotPromptTemplate

是 LangChain 中用于构建带有少量示例(Few-shot examples)的提示模板的类。它通过向语言模型提供一些示例输入和对应的输出,帮助模型更好地理解任务要求,从而生成更准确的响应。

主要功能是将少量示例与用户输入结合,生成一个完整的提示,供语言模型使用。这些示例作为上下文信息,帮助模型理解任务的模式和要求。

主要属性

  • examples:一个包含示例的列表,每个示例是一个字典,包含输入和输出。
  • example_prompt:一个 PromptTemplate 对象,用于格式化每个示例。
  • prefix:在所有示例之前添加的文本,通常用于说明任务要求。
  • suffix:在所有示例之后添加的文本,通常包含用户输入的占位符。
  • input_variables:用户输入的变量名称列表。
  • example_separator:用于分隔示例的字符串,默认为换行符。

主要方法

  • format():根据输入变量和示例生成完整的提示。
  • invoke():调用语言模型,生成响应。

3.3 SemanticSimilarityExampleSelector

根据语义相似度动态选择示例的工具。它通过计算输入与示例之间的余弦相似度,选择与输入最相关的示例。
主要功能是根据输入的语义相似度动态选择示例。它通过以下步骤实现:

  1. 使用嵌入模型(如 OpenAIEmbeddings)将输入和示例转换为嵌入向量。
  2. 计算输入嵌入与示例嵌入之间的余弦相似度。
  3. 根据相似度选择最相关的示例。

主要属性

  • k:表示要选择的示例数量,默认为 4。
  • vectorstore:用于存储嵌入向量并执行相似度搜索的向量存储类。
  • input_keys:可选参数,指定用于搜索的输入变量。
  • example_keys:可选参数,指定过滤示例的键。

主要方法

  • from_examples():用于创建 SemanticSimilarityExampleSelector 实例。它需要提供示例列表、嵌入模型和向量存储类。
  • add_example():向向量存储中添加新的示例。
  • select_examples():根据输入变量选择最相关的示例
select_examples = example_selector.select_examples({"question": "穆罕默德·阿里和艾伦·图灵谁的寿命更长"})
http://www.dtcms.com/a/526206.html

相关文章:

  • 杭州认证网站建设中国效能建设网站
  • 三所高校撤销地理科学类专业
  • 做视频网站用什么云盘好怎么做刷qq业务网站
  • 网址收录网站建设网站需要什么硬件
  • 做网站推广汉狮网络建医疗网站步骤
  • 课程微网站开发技术家装设计公司起名
  • 网站全屏轮播代码成都网站建设龙兵
  • 江苏建设厅网站电话多少三星网上商城投诉电话
  • wordpress网站 华为易企秀官网
  • 3建网站微信表情开放平台官网
  • 手机做网站的软件青岛百度seo代理
  • 网站定制与开发做网站没有成本费用如何做账
  • 网站首页关键如何优化商业授权
  • 网站交互技术设计个人网站的步骤
  • 可以做网页的网站鑫鼎信长春网站建设
  • 广州网站建设天维网站cn域名注册
  • 每日一个网络知识点:应用层FTP协议
  • 贵州快速整站优化漯河市住房建设局网站
  • 网站后台登陆破解关键词优化哪个好
  • 怎么在网上查网站空间是双线还是单线在什么网站做调查问卷
  • opencv学习笔记6:SVM分类器
  • 网络服务器建设WordPress标签seo
  • 网站开发前台 后台技术安庆集团网站建设
  • 微网站是什么意思网络运营商自动选择
  • Python里的内置函数
  • 赚钱做任务的网站新版wordpress编辑框
  • 廊坊网站制作策划网站建设与管理教程
  • 佛山微信网站开发网站放视频代码
  • html网站发布网页界面设计方法
  • 南京做公司网站wordpress修改404页面