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

陕西省信用建设官方网站今日头条军事新闻

陕西省信用建设官方网站,今日头条军事新闻,成都龙泉驿今日疫情,动态ip可以做网站导读 环境:OpenEuler、Windows 11、WSL 2、Python 3.12.3 langchain 0.3 背景:前期忙碌的开发阶段结束,需要沉淀自己的应用知识,过一遍LangChain 时间:20250220 说明:技术梳理,针对FewShotP…

导读

环境:OpenEuler、Windows 11、WSL 2、Python 3.12.3 langchain 0.3

背景:前期忙碌的开发阶段结束,需要沉淀自己的应用知识,过一遍LangChain

时间:20250220

说明:技术梳理,针对FewShotPromptTemplate专门来写一篇博客

概念说明

few-shot最初来源于机器学习的概念,还有one-shot、zero-shot概念,概念如下:

机器学习中的概念

Zero-Shot学习

在训练集中没有某个类别的样本,但在测试集中出现了这个类别。我们需要模型在训练过程中,即使没有接触过这个类别的样本,但仍然可以通过对这个类别的描述,对没见过的类别进行分类。

One-Shot学习

可以理解为用一条数据fine-tune模型。例如,在人脸识别场景里,你只提供一张照片,门禁就能认识各个角度的你。属于Few-Shot学习的特例。

Few-Shot学习

在模型训练过程中,如果每个类别只有少量样本(一个或几个),研究人员希望机器学习模型在学习了一定类别的大量数据后,对于新的类别,只需要少量的样本就能快速学习。

LangChain中的概念

zero-shot

仅通过提示词即可实现模型正确回答

one-shot

通过一个示例和提示词模型正确回答

few-shot

通过少量(大于1)示例和提示词模型正确回答

参数说明

examples

Optional[list[dict]] = None
示例格式化到提示词中,应提供examples 或 example_selector。

example_selector

Optional[BaseExampleSelector] = None

ExampleSelector 选择要格式化到提示符中的示例,应提供examples 或 example_selector。

validate_template

bool = False

是否尝试验证模板。

example_prompt

PromptTemplate

PromptTemplate 用于格式化单个示例。"

suffix

str

要放在示例后面的提示模板字符串。

example_separator

str = "\n\n"

用于连接前缀、示例和后缀的字符串分隔符。

prefix

str = ""

要放在示例前面的提示模板字符串。

template_format

Literal["f-string", "jinja2"] = "f-string"

提示模板的格式。选项包括:'f-string', 'jinja2'。

代码实战

 使用少量示例的prompt和大模型实现分类的功能

from langchain_core.prompts import PromptTemplate, FewShotPromptTemplate# 示例
examples = [{"question": "下面两个动物是同一种类吗?\n1:拉布拉多\n2:哈士奇","answer": "是"},{"question": "下面两个动物是同一种类吗?\n1:草鱼\n2:鲸鱼","answer": "不是"}
]# 示例提示
example_prompt = PromptTemplate(template="Question: {question}\n{answer}")# 整合后的提示词的前缀
prefix = "你是一个生物学家,判断用户提问的动物种类回答,就判断为同一种类, 回答'是',反之回答'不是'。\n下面是一些示例:"# 整合后的提示词的前缀
suffix = "Question: {input}"# 通过FewShotPromptTemplate整合提示词
prompt = FewShotPromptTemplate(prefix=prefix,examples=examples,example_prompt=example_prompt,suffix=suffix,# input_variables=["input"] # 可省略
)print(prompt.invoke("下面两种动物是同一种类吗?\n1:波斯猫\n2:英国短毛").to_string())# 输出
你是一个生物学家,判断用户提问的动物种类回答,就判断为同一种类, 回答'是',反之回答'不是'。
下面是一些示例:Question: 下面两个动物是同一种类吗?
1:拉布拉多
2:哈士奇
是Question: 下面两个动物是同一种类吗?
1:草鱼
2:鲸鱼
不是Question: 下面两种动物是同一种类吗?
1:波斯猫
2:英国短毛

 显然,promptvalue将提示词按照规则整合在一起了,并将用户提问放在最后

下面看下配置大模型后运行结果

from langchain_core.prompts import PromptTemplate, FewShotPromptTemplate
from langchain_openai import ChatOpenAI# 示例
examples = [{"question": "下面两个动物是同一种类吗?\n1:拉布拉多\n2:哈士奇","answer": "是"},{"question": "下面两个动物是同一种类吗?\n1:草鱼\n2:鲸鱼","answer": "不是"}
]# 示例提示
example_prompt = PromptTemplate(template="Question: {question}\n{answer}")# 整合后的提示词的前缀
prefix = "你是一个生物学家,判断用户提问的动物种类回答,就判断为同一种类, 回答'是',反之回答'不是'。\n下面是一些示例:"# 整合后的提示词的前缀
suffix = "Question: {input}"# 通过FewShotPromptTemplate整合提示词
prompt = FewShotPromptTemplate(prefix=prefix,examples=examples,example_prompt=example_prompt,suffix=suffix,# input_variables=["input"] # 可省略
)
# 大模型信息
# translate_llm = ChatOpenAI(base_url="https://llm.xxx.xxxx.com/v1/",openai_api_key="sk-xxxxxxxxxx",model_name="qwen2.5-instruct")translate_llm = ChatOpenAI(**llm_info)
translate_llm =  prompt | translate_llminput5 = "下面两种动物是同一种类吗?\n1:波斯猫\n2:英国短毛"response = translate_llm.invoke(input5)
print(response.content)# 输出
是注:虽然波斯猫和英国短毛猫是两种不同的猫品种,但它们同属于家猫(Felis catus),因此可认为是同一种类。

结束

http://www.hkea.cn/news/906271/

相关文章:

  • 企业做营销型网站手机如何制作网页
  • 连云港网站关键词优化seo自学教程
  • 网站全站出售淘宝关键词排名怎么查询
  • 龙口市规划建设局网站查询收录
  • 学校网站建设注意什么东莞网站营销推广
  • 网站设计模板是什么百度网盘人工客服电话多少
  • wordpress文章收缩长春seo优化企业网络跃升
  • 网站地图调用希爱力双效片骗局
  • 珠海网站建设维护友情链接买卖代理
  • 武汉企业网站推广外包网络广告营销案例分析
  • 深圳哪里有做网站的汕头seo排名收费
  • 如何用腾讯云主机做网站株洲发布最新通告
  • 中国建设银行官网站下载信息流广告投放公司
  • 合肥建站平台网络平台推广是干什么
  • 黄冈工程建设标准造价信息网优化工作流程
  • 怎么做服装外贸网站怎么去推广一个产品
  • 和各大网站做视频的工作总结软件推广赚佣金渠道
  • asp.net是做网站的吗企业文化培训
  • 有链接的网站怎么做seochan是什么意思
  • 开发公司 工程管理中存在问题seo人工智能
  • 网站卖给别人后做违法信息seo和点击付费的区别
  • 网站配色 绿色网络推广主要做什么
  • 个人网站制作多少钱公关公司的主要业务
  • 网站底备案号链接代码西安网络推广营销公司
  • 哪个网站开发是按月付费的百度指数是免费的吗
  • asp网站后台管理教程放单平台
  • 做网站毕设任务书网络营销网站建设案例
  • .net 企业网站 模版关键词seo深圳
  • 网站建设优化价格网站seo诊断
  • 网站设计详细设计有没有好用的网站推荐